GP Coder

Trang chia sẻ kiến thức lập trình Java

  • Java Core
    • Basic Java
    • OOP
    • Exception Handling
    • Multi-Thread
    • Java I/O
    • Networking
    • Reflection
    • Collection
    • Java 8
  • Design pattern
    • Creational Pattern
    • Structuaral Pattern
    • Behavior Pattern
  • Web Service
    • SOAP
    • REST
  • JPA
  • Java library
    • Report
    • Json
    • Unit Test
  • Message Queue
    • ActiveMQ
    • RabbitMQ
  • All
Trang chủ Message Queue Giới thiệu CloudAMQP – Một RabbitMQ server trên Cloud

Giới thiệu CloudAMQP – Một RabbitMQ server trên Cloud

Đăng vào 02/10/2020 . Được đăng bởi GP Coder . 7046 Lượt xem . Toàn màn hình

Trong các bài viết trước, tôi đã giới thiệu với các bạn cách tự cài đặt RabbitMQ. Trong bài này, tôi sẽ giới thiệu với các bạn CloudAMQP – một RabbitMQ Server trên nền tảng Cloud.

Nội dung

  • 1 CloudAMQP là gì?
  • 2 Đăng ký tài khoản miễn phí CloudAMQP
  • 3 Sử dụng CloudAMQP

CloudAMQP là gì?

CloudAMQP cung cấp một RabbitMQ Server trên nền tảng Cloud. CloudAMQP tự động hóa toàn bộ quá trình thiết lập, vận hành và mở rộng quy mô của các RabbitMQ Cluster. CloudAMQP cung cấp giao diện quản lý trực quan, cung cấp hệ thống giám sát, thông báo RabbitMQ thông qua email, webhook, external service.

Khi sử dụng CloudAMQP, chúng ta không cần quan tâm về hạ tầng để quản lý RabbitMQ serrver, chúng ta chỉ tập trung vào phần business của mình. Giá thành của CloudAMQP khá linh động tuỳ thuộc vào nhu cầu sử dụng của bạn.

Trong bài viết này, tôi sẽ hướng dẫn các bạn đăng ký gói dịch vụ miễn phí của CloudAMQP. Gói này thích hợp cho các bạn developer, muốn tìm hiểu về RabbitMQ nhưng không muốn setup server RabbitMQ riêng.

Đăng ký tài khoản miễn phí CloudAMQP

Vào trang đăng ký: https://www.cloudamqp.com/plans.html

Kéo về cuối trang chọn gói FREE:

Các bạn điền các thông tin đăng ký.

Sau khi hoàn thành đăng ký, ở trang kế tiếp, chúng ta sẽ điền các thông tin để đăng ký RabbitMQ instance mà chúng ta sẽ sử dụng.

Chọn Region là Singapore hay HongKong. Ở đây mình chọn HongKong –> chọn Review.

Kiểm tra lại thông tin đăng ký, và chọn Create instance.

Chọn RabbitMQ Manager để vào trang quản lý RabbitMQ.

Chúng ta có một trang quản lý RabbitMQ như tự setup RabbitMQ Server ở các bài viết trước.

Tại trang danh sách Instance, các bạn click vào tên của instance để vào trang thông tin chi tiết instance của bạn trên CloudAMQP.

Sử dụng CloudAMQP

Các khái niệm và cách sử dụng RabbitMQ tôi đã giới thiệu với các bạn ở các bài viết trước hoàn toàn có thể sử dụng với CloudAMQP.

Đầu tiên, chúng ta cần thêm thư viện RabbitMQ AMQP client:

<dependency>
  <groupId>com.rabbitmq</groupId>
  <artifactId>amqp-client</artifactId>
  <version>5.8.0</version>
</dependency>

Tôi sẽ sử dụng lại ví dụ ở bài viết “Kết nối AMQP Client với RabbitMQ Server” để thử kết nối đến CloudAMQP.

Producer

package com.gpcoder.cloudamqp;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Producer {

    private static final String CLOUDAMQP_URL = "amqps://evncuivu:<your_secret_url>.rmq.cloudamqp.com/evncuivu";
    private static final String QUEUE_NAME = "gpcoder-queue";

    public static void main(String[] argv) throws Exception {
        System.out.println("Create a ConnectionFactory");
        ConnectionFactory factory = new ConnectionFactory();
        factory.setUri(CLOUDAMQP_URL);
        factory.setRequestedHeartbeat(30);
        factory.setConnectionTimeout(30000);

        System.out.println("Create a Connection");
        System.out.println("Create a Channel");
        try ( Connection connection = factory.newConnection();
              Channel channel = connection.createChannel() ) {
            System.out.println("Create a queue " + QUEUE_NAME);
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);

            System.out.println("Start sending messages ... ");
            try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in));) {
                String message;
                do {
                    System.out.print("Enter message: ");
                    message = br.readLine().trim();
                    channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
                    System.out.println(" [x] Sent: '" + message + "'");
                } while (!message.equalsIgnoreCase("close"));
            }
        } finally {
            System.out.println("Close connection and free resources");
        }
    }

}

Consumer:

package com.gpcoder.cloudamqp;

import com.rabbitmq.client.*;

public class Consumer {

    private static final String CLOUDAMQP_URL = "amqps://evncuivu:<your_secret_url>.rmq.cloudamqp.com/evncuivu";
    private static final String QUEUE_NAME = "gpcoder-queue";

    public static void main(String[] argv) throws Exception {
        System.out.println("Create a ConnectionFactory");
        ConnectionFactory factory = new ConnectionFactory();
        factory.setUri(CLOUDAMQP_URL);
        factory.setRequestedHeartbeat(30);
        factory.setConnectionTimeout(30000);

        System.out.println("Create a Connection");
        System.out.println("Create a Channel");
        Connection connection = factory.newConnection();

        Channel channel = connection.createChannel();

        System.out.println("Create a queue " + QUEUE_NAME);
        channel.queueDeclare(QUEUE_NAME, false, false, false, null);
        System.out.println(" [*] Waiting for messages. To exit press CTRL+C");

        System.out.println("Start receiving messages ... ");
        DeliverCallback deliverCallback = (consumerTag, delivery) -> {
            String message = new String(delivery.getBody(), "UTF-8");
            System.out.println(" [x] Received: '" + message + "'");
        };
        CancelCallback cancelCallback = consumerTag -> { };
        String consumerTag = channel.basicConsume(QUEUE_NAME, true, deliverCallback, cancelCallback);
        System.out.println("consumerTag: " + consumerTag);
    }
}

CLOUDAMQP_URL: các bạn lấy từ trang thông tin chi tiết instance của CloudAMQP.

Chạy thử ứng dụng để kiểm tra kết quả. Tham khảo bài viết trước: https://gpcoder.com/6885-ket-noi-amqp-client-voi-rabbitmq-server/#Chay_ung_dung

Chạy Producer và gửi một vài message:

Chạy Consumer, các bạn sẽ thấy các Message được Consume:

Vào trang quản lý RabbitMQ, bạn có thể thấy một Queue được tạo và các Message được gửi đến Queue này.

Trên đây là hướng dẫn cơ bản về CloudAMQP, các bạn có thể nhanh chóng tìm hiểu RabbitMQ mà không cần setup RabbitMQ server riêng. Còn rất nhiều tính năng khác được hỗ trợ bởi CloudAMQP, các bạn có thể tìm hiểu thêm ở link bên dưới.

Tài liệu tham khảo:

  • https://www.cloudamqp.com/docs/index.html
5.0
29
Nếu bạn thấy hay thì hãy chia sẻ bài viết cho mọi người nhé! Và Donate tác giả

Shares

Chuyên mục: Message Queue Được gắn thẻ: CloudAMQP, JMS, RabbitMQ

Kết nối RabbitMQ sử dụng Web STOMP Plugin
Clean code

Có thể bạn muốn xem:

  • Kết nối JMS Client với ActiveMQ (07/05/2020)
  • Sử dụng Topic Exchange (Publish/Subscribe) trong RabbitMQ (01/06/2020)
  • Sử dụng publisher confirm trong RabbitMQ (16/06/2020)
  • Giới thiệu RabbitMQ Management Interface (17/05/2020)
  • Sử dụng Dead Letter Exchange trong RabbitMQ (13/06/2020)

Bình luận

bình luận

Tìm kiếm

Bài viết mới

  • Clean code 13/01/2024
  • Giới thiệu CloudAMQP – Một RabbitMQ server trên Cloud 02/10/2020
  • Kết nối RabbitMQ sử dụng Web STOMP Plugin 19/06/2020
  • Sử dụng publisher confirm trong RabbitMQ 16/06/2020
  • Sử dụng Dead Letter Exchange trong RabbitMQ 13/06/2020

Xem nhiều

  • Hướng dẫn Java Design Pattern – Factory Method (98055 lượt xem)
  • Hướng dẫn Java Design Pattern – Singleton (97695 lượt xem)
  • Giới thiệu Design Patterns (87756 lượt xem)
  • Lập trình đa luồng trong Java (Java Multi-threading) (86426 lượt xem)
  • Giới thiệu về Stream API trong Java 8 (83828 lượt xem)

Nội dung bài viết

  • 1 CloudAMQP là gì?
  • 2 Đăng ký tài khoản miễn phí CloudAMQP
  • 3 Sử dụng CloudAMQP

Lưu trữ

Thẻ đánh dấu

Annotation Authentication Basic Java Behavior Pattern Collection Creational Design Pattern Cấu trúc điều khiển Database Dependency Injection Design pattern Eclipse Exception Executor Service Google Guice Gson Hibernate How to Interceptor IO Jackson Java 8 Java Core JDBC JDK Jersey JMS JPA json JUnit JWT Message Queue Mockito Multithreading OOP PowerMockito RabbitMQ Reflection Report REST SOAP Structuaral Pattern Swagger Thread Pool Unit Test Webservice

Liên kết

  • Clean Code
  • JavaTpoint
  • Refactoring Guru
  • Source Making
  • TutorialsPoint
  • W3Schools Online Web Tutorials

Giới thiệu

GP Coder là trang web cá nhân, được thành lập với mục đích lưu trữ, chia sẽ kiến thức đã học và làm việc của tôi. Các bài viết trên trang này chủ yếu về ngôn ngữ Java và các công nghệ có liên quan đến Java như: Spring, JSF, Web Services, Unit Test, Hibernate, SQL, ...
Hi vọng góp được chút ít công sức cho sự phát triển cộng đồng Coder Việt.

Donate tác giả

Tìm kiếm các bài viết của GP Coder với Google Search

Liên hệ

Các bạn có thể liên hệ với tôi thông qua:
  • Trang liên hệ
  • Linkedin: gpcoder
  • Email: contact@gpcoder.com
  • Skype: ptgiang56it

Follow me

Copyright 2025 © GP Coder · All Rights Reserved · Giới thiệu · Chính sách · Điều khoản · Liên hệ ·

Share

Blogger
Delicious
Digg
Email
Facebook
Facebook messenger
Flipboard
Google
Hacker News
Line
LinkedIn
Mastodon
Mix
Odnoklassniki
PDF
Pinterest
Pocket
Print
Reddit
Renren
Short link
SMS
Skype
Telegram
Tumblr
Twitter
VKontakte
wechat
Weibo
WhatsApp
X
Xing
Yahoo! Mail

Copy short link

Copy link