Thứ năm, 19/12/2013 | 00:00 GMT+7

Cách cài đặt và quản lý RabbitMQ

Tạm dừng mọi việc trong một thời gian thay vì làm ngay có thể bị coi là lười biếng. Trong thực tế, hầu hết thời gian có lẽ là như vậy. Tuy nhiên, có những lúc đó là điều hoàn toàn đúng đắn. Đôi khi, một người cần phải trì hoãn một công việc tốn thời gian trong một thời gian; nó cần được xếp hàng để thực hiện trong tương lai để có thể xử lý một việc quan trọng hơn. Để điều này xảy ra, bạn cần một người broker : một người sẽ chấp nhận các tin nhắn (ví dụ: công việc, nhiệm vụ) từ nhiều người gửi khác nhau (tức là một ứng dụng web), xếp chúng vào hàng đợi và phân phối chúng cho các bên liên quan (tức là người lao động) để sử dụng chúng - tất cả đều không đồng bộ và theo yêu cầu.


Trong bài viết DigitalOcean này, ta muốn giới thiệu với bạn về dự án RabbitMQ : một ứng dụng broker thông điệp open-souce triển khai Giao thức xếp hàng thư nâng cao (AMQP) để xử lý toàn bộ tình huống mà ta đã giải thích ở trên.

Nhắn tin, Người message broker và Hàng đợi


Nhắn tin là một cách trao đổi dữ liệu nhất định giữa các quy trình, ứng dụng và server (ảo và vật lý). Những thông điệp này được trao đổi, giúp đáp ứng các nhu cầu kỹ thuật nhất định, có thể bao gồm bất kỳ thứ gì từ tin nhắn văn bản thuần túy đến các đốm dữ liệu binary phục vụ để giải quyết các nhu cầu khác nhau. Để điều này hoạt động, cần có một giao diện được quản lý bởi chương trình bên thứ ba (một phần mềm trung gian)… chào mừng các nhà message broker .

Nhà message broker thường là ứng dụng với các phần chuyên dụng bao gồm từng giai đoạn của cài đặt trao đổi. Từ việc chấp nhận một thông điệp tới xếp hàng nó và phân phối nó đến bên yêu cầu, broker xử lý các nhiệm vụ mà thông thường sẽ được rườm rà nhiều hơn nữa với các giải pháp phi chuyên dụng hoặc hacks đơn giản như sử dụng một database , công việc cron, vv Họ chỉ đơn giản là công việc của giao dịch với các hàng đợi về mặt kỹ thuật tạo thành cache vô hạn, để đưa tin nhắn và bật và gửi chúng sau đó sẽ được xử lý tự động hoặc bằng cách bỏ phiếu.

Tại sao sử dụng chúng?


Các giải pháp phân tích thông điệp này hoạt động giống như một người trung gian cho các dịch vụ khác nhau (ví dụ: ứng dụng web của bạn). Chúng được dùng để giảm đáng kể tải và thời gian phân phối của các server ứng dụng web vì các việc thường mất khá nhiều thời gian để xử lý, có thể được ủy quyền cho bên thứ ba có công việc duy nhất là thực hiện chúng (ví dụ: công nhân). Chúng cũng có ích khi cần có sự bền bỉ “đảm bảo” hơn để truyền thông tin từ nơi này sang nơi khác.

Khi nào sử dụng chúng?


Tất cả kết hợp lại với nhau, chức năng cốt lõi được giải thích mở rộng để bao gồm vô số lĩnh vực, bao gồm nhưng-không-giới-hạn-ở:

  • Cho phép web server phản hồi các yêu cầu một cách nhanh chóng thay vì bị buộc phải thực hiện các quy trình tốn nhiều tài nguyên ngay tại chỗ

  • Phân phối một tin nhắn cho nhiều người nhận để sử dụng (ví dụ: xử lý)

  • Cho phép các bên offline (tức là user bị ngắt kết nối) tìm nạp dữ liệu sau đó thay vì bị mất vĩnh viễn

  • Giới thiệu chức năng hoàn toàn không đồng bộ cho hệ thống backend

  • Sắp xếp thứ tự và ưu tiên nhiệm vụ

  • Cân bằng tải giữa các công nhân

  • Tăng đáng kể độ tin cậy và thời gian hoạt động của ứng dụng của bạn

  • và nhiều hơn nữa

RabbitMQ


RabbitMQ là một trong những giải pháp message broker phổ biến hơn trên thị trường, được cung cấp với giấy phép nguồn mở (Mozilla Public License v1.1) như một triển khai của Giao thức xếp hàng tin nhắn nâng cao. Được phát triển bằng ngôn ngữ Erlang, nó thực sự tương đối dễ sử dụng và bắt đầu. Nó được xuất bản lần đầu tiên vào đầu năm 2007 và kể từ đó đã được phát triển tích cực với bản phát hành mới nhất là phiên bản 3.2.2 (tháng 12 năm 2013).

Làm thế nào nó hoạt động?


RabbitMQ hoạt động bằng cách cung cấp một giao diện, kết nối người gửi tin nhắn (Nhà xuất bản) với người nhận (Người tiêu dùng) thông qua trao đổi (Nhà broker ) phân phối dữ liệu đến các danh sách có liên quan (Hàng đợi tin nhắn).

APPLICATION       EXCHANGE        TASK LIST        WORKER    [DATA] -------> [DATA] ---> [D]+[D][D][D] --->  [DATA]  Publisher        EXCHANGE          Queue         Consumer  

Nó khác với những cái khác gì ?


RabbitMQ, không giống như một số giải pháp khác, là một ứng dụng chính thức (tức là một nhà message broker ). Nó cung cấp cho bạn tất cả các công cụ bạn cần để làm việc, thay vì hoạt động như một khuôn khổ để bạn thực hiện của riêng mình. Đang cực kỳ phổ biến, thật sự dễ dàng để sử dụng RabbitMQ và tìm câu trả lời cho các câu hỏi của bạn trực tuyến.

Tóm tắt Giao thức xếp hàng thư nâng cao (AMQP)


AMQP là một tiêu chuẩn nguồn mở được chấp nhận rộng rãi để phân phối và chuyển các thông điệp từ nguồn đến đích. Là một giao thức và tiêu chuẩn, nó đặt nền tảng chung cho các ứng dụng khác nhau và phần mềm trung gian message broker để tương tác với nhau mà không gặp phải các vấn đề do các quyết định thiết kế được cài đặt riêng lẻ.

Cài đặt RabbitMQ


Các gói RabbitMQ được phân phối trên cả hệ thống dựa trên CentOS / RHEL & Ubuntu / Debian. Tuy nhiên, chúng - giống như với hầu hết các ứng dụng - đã lỗi thời. Do đó, cách được khuyến khích để có RabbitMQ trên hệ thống của bạn là download gói trực tuyến và cài đặt theo cách thủ công.

Lưu ý: Ta sẽ thực hiện cài đặt của bạn và thực hiện các hành động được liệt kê ở đây trên một VPS mới và mới được tạo do nhiều lý do. Nếu bạn đang tích cực phục vụ khách hàng và có thể đã sửa đổi hệ thống của bạn , để không làm hỏng bất kỳ thứ gì hoạt động và không gặp sự cố, bạn nên thử các hướng dẫn sau trên hệ thống mới.

Cài đặt trên hệ thống dựa trên CentOS 6 / RHEL


Trước khi cài đặt RabbitMQ, ta cần lấy các phụ thuộc chính của nó như Erlang. Tuy nhiên, trước hết ta nên cập nhật hệ thống của bạn và các ứng dụng mặc định của nó.

Chạy phần sau để cập nhật server của ta :

yum -y update 

Và hãy sử dụng các lệnh dưới đây để tải Erlang trên hệ thống của ta :

# Add and enable relevant application repositories: # Note: We are also enabling third party remi package repositories. wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm  # Finally, download and install Erlang: yum install -y erlang 

Sau khi có Erlang, ta có thể tiếp tục cài đặt RabbitMQ:

# Download the latest RabbitMQ package using wget: wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.2/rabbitmq-server-3.2.2-1.noarch.rpm  # Add the necessary keys for verification: rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc  # Install the .RPM package using YUM: yum install rabbitmq-server-3.2.2-1.noarch.rpm 

Cài đặt trên hệ thống dựa trên Ubuntu 13 / Debian 7


Quá trình download và cài đặt RabbitMQ trên Ubuntu và Debian sẽ tương tự như CentOS do ta mong muốn có version mới hơn.

Hãy bắt đầu với việc cập nhật bộ công cụ ứng dụng mặc định của hệ thống của ta :

apt-get    update  apt-get -y upgrade 

Bật kho ứng dụng RabbitMQ:

echo "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.list 

Thêm khóa xác minh cho gói:

curl http://www.rabbitmq.com/rabbitmq-signing-key-public.asc | sudo apt-key add - 

Cập nhật các nguồn với bổ sung mới của ta từ bên trên:

apt-get update 

Và cuối cùng, download và cài đặt RabbitMQ:

sudo apt-get install rabbitmq-server 

Để quản lý số lượng kết nối tối đa khi chạy , hãy mở và chỉnh sửa file cấu hình sau bằng nano :

sudo nano /etc/default/rabbitmq-server 

Bỏ comment limit (tức là xóa # ) trước khi lưu và thoát bằng cách nhấn CTRL + X theo sau là Y.

Quản lý RabbitMQ


Như ta đã đề cập trước đây, RabbitMQ rất đơn giản để bắt đầu. Sử dụng các hướng dẫn bên dưới cho hệ thống của bạn, bạn có thể nhanh chóng quản lý quy trình của nó và để nó chạy khi khởi động hệ thống (tức là khởi động).

Bật Control panel quản lý


Control panel quản lý RabbitMQ là một trong những plugin có sẵn cho phép bạn giám sát quá trình server [RabbitMQ] thông qua giao diện user đồ họa dựa trên web (GUI).

Sử dụng console này, bạn có thể:

  • Quản lý trao đổi, hàng đợi, ràng buộc, user

  • Giám sát hàng đợi, tỷ lệ tin nhắn, kết nối

  • Gửi và nhận tin nhắn

  • Giám sát các quy trình Erlang, sử dụng bộ nhớ

  • Và nhiều hơn nữa

Để bật Control panel quản lý RabbitMQ, hãy chạy như sau:

sudo rabbitmq-plugins enable rabbitmq_management 

Khi bạn đã bật console , bạn có thể truy cập console bằng trình duyệt web yêu thích của bạn bằng cách truy cập: http://[your server's IP]:15672/ .

Tên user và password mặc định đều được đặt là "khách" cho đăng nhập.

Lưu ý : Nếu bạn bật console này sau khi chạy dịch vụ, bạn cần phải khởi động lại console để các thay đổi có hiệu lực. Xem phần quản lý liên quan bên dưới để biết hệ điều hành của bạn có thể làm được điều đó.

Quản lý trên hệ thống dựa trên CentOS / RHEL


Khi cài đặt ứng dụng, RabbitMQ không được đặt để khởi động khi server khởi động hệ thống theo mặc định.

Để bắt đầu RabbitMQ làm daemon theo mặc định, hãy chạy như sau:

chkconfig rabbitmq-server on 

Để bắt đầu, dừng, khởi động lại và kiểm tra trạng thái ứng dụng, hãy sử dụng như sau:

# To start the service: /sbin/service rabbitmq-server start  # To stop the service: /sbin/service rabbitmq-server stop  # To restart the service: /sbin/service rabbitmq-server restart  # To check the status: /sbin/service rabbitmq-server status 

Quản lý trên hệ thống dựa trên Ubuntu / Debian


Để bắt đầu, dừng, khởi động lại và kiểm tra trạng thái ứng dụng trên Ubuntu và Debian, hãy sử dụng cách sau:

# To start the service: service rabbitmq-server start  # To stop the service: service rabbitmq-server stop  # To restart the service: service rabbitmq-server restart  # To check the status: service rabbitmq-server status 

Và đó là nó! Đến đây bạn có hàng đợi tin nhắn của riêng mình hoạt động trên server ảo của bạn.

Cấu hình RabbitMQ


RabbitMQ theo mặc định chạy với cấu hình tiêu chuẩn của nó. Nói chung, nó không đòi hỏi nhiều ủ với hầu hết các nhu cầu miễn là mọi thứ chạy trơn tru.

Để tìm hiểu về cách cấu hình nó cho các nhu cầu tùy chỉnh, hãy xem tài liệu về Cấu hình .

<div class = “author”> Gửi bởi: <a
href = “https://twitter.com/ostezer”> Hệ điều hành Tezer </a> </div>


Tags:

Các tin liên quan