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

1821

Bài viết được sự cho phép của tác giả Giang Phan

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.

  Bí kíp tạo website nhờ vào GitHub và Cloudflare
  Cloud Computing - Xu hướng toàn cầu đang thâm nhập và thống trị tại thị trường Việt Nam

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:

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

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.

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

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

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

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

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

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

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

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

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

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.

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

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:

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

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

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

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.

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

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:

Bài viết gốc được đăng tải tại gpcoder.com

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev