RabbitMQ là phần mềm môi giới tin nhắn doanh nghiệp mã nguồn mở và miễn phí. Phần mềm được viết bằng Erlang và triển khai Giao thức xếp hàng tin nhắn nâng cao (AMQP). Phần mềm cung cấp thư viện máy khách bằng tất cả các ngôn ngữ lập trình chính. Phần mềm hỗ trợ nhiều giao thức nhắn tin, xếp hàng tin nhắn, xác nhận giao hàng, định tuyến linh hoạt đến hàng đợi, nhiều loại trao đổi. Phần mềm cũng cung cấp HTTP-API dễ sử dụng, công cụ dòng lệnh và giao diện người dùng web để quản lý RabbitMQ.
Trong hướng dẫn này, chúng ta sẽ cài đặt RabbitMQ trên máy chủ CentOS 7.
Điều kiện tiên quyết
Sau khi hệ thống của bạn được cập nhật, hãy tiến hành cài đặt Erlang.
Bây giờ hãy cài đặt Erlang bằng lệnh sau.
Bây giờ bạn có thể kiểm tra phiên bản Erlang bằng lệnh sau.
Bạn sẽ nhận được kết quả sau.
Để chuyển sang shell Erlang, bạn có thể nhập lệnh sau.
Shell sẽ thay đổi và bạn sẽ nhận được kết quả sau.
Bạn có thể thoát khỏi shell bằng cách nhấn ctrl + C hai lần. Erlang hiện đã được cài đặt trên hệ thống của bạn, giờ bạn có thể tiến hành cài đặt RabbitMQ.
Nếu bạn chưa cài đặt wget, bạn có thể chạy lệnh yum -y install wget. Bạn luôn có thể tìm thấy liên kết đến phiên bản mới nhất của trang tải xuống RabbitMQ.
Nhập khóa GPG bằng cách chạy:
Cài đặt gói RPM bằng cách chạy:
RabbitMQ hiện đã được cài đặt trên hệ thống của bạn.
Để tự động khởi động RabbitMQ khi khởi động, hãy chạy lệnh sau lệnh.
Để kiểm tra trạng thái của máy chủ RabbitMQ, hãy chạy:
Bạn sẽ nhận được đầu ra sau nếu khởi động thành công.
Nếu bạn đã bật SELinux, bạn sẽ phải chạy lệnh sau để cho phép dịch vụ RabbitMQ.
Cấp quyền sở hữu các tệp RabbitMQ cho người dùng RabbitMQ bằng cách chạy:
Bây giờ bạn sẽ cần tạo một người dùng quản trị cho bảng điều khiển quản lý web RabbitMQ. Chạy các lệnh sau để thực hiện tương tự.
Đổi admin thành tên người dùng bạn muốn cho người dùng quản trị viên. Hãy chắc chắn thay đổi StrongPassword thành một mật khẩu rất mạnh.
Để truy cập bảng quản trị của RabbitMQ, hãy sử dụng trình duyệt web yêu thích của bạn và mở URL sau.
Bạn sẽ thấy trang đăng nhập sau.
Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển quản trị.
Bạn có thể tìm thấy danh sách người dùng, máy chủ ảo, chính sách tại tab Quản trị của bảng điều khiển. Bạn nên xóa người dùng Khách vì lý do bảo mật.
Bạn có thể tìm thấy danh sách hàng đợi tin nhắn tại tab Hàng đợi. Bạn có thể tạo hàng đợi mới hoặc xóa hàng đợi hiện có thông qua giao diện này.
Bạn có thể tìm danh sách kết nối hiện tại trên tab Kết nối
Tương tự, bạn có thể tìm các kênh và trao đổi tại các tab tương ứng của chúng.
Trong hướng dẫn này, chúng ta sẽ cài đặt RabbitMQ trên máy chủ CentOS 7.
Điều kiện tiên quyết
- Máy chủ CentOS 7 tối thiểu
- Quyền root. Hướng dẫn này được viết dưới dạng người dùng root, nếu bạn đăng nhập dưới dạng người dùng sudo, hãy chạy sudo -i.
Cập nhật Hệ thống Cơ sở
Trước khi cài đặt bất kỳ gói nào, bạn nên cập nhật các gói và kho lưu trữ bằng lệnh sau.
Mã:
yum -y update
Cài đặt Erlang
RabbitMQ được viết bằng Ngôn ngữ Erlang, trong hướng dẫn này, chúng ta sẽ cài đặt phiên bản mới nhất của Erlang vào máy chủ. Erlang không có trong kho lưu trữ YUM mặc định, do đó bạn sẽ cần cài đặt kho lưu trữ EPEL. Chạy lệnh sau để thực hiện tương tự.
Mã:
yum -y install epel-release
Mã:
yum -y update
Mã:
yum -y install erlang socat
Mã:
erl -version
Mã:
[root@liptan-pc ~]# erl -versionErlang (ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
Mã:
erl
Mã:
Erlang R16B03-1 (erts-5.10.4) [nguồn] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]Eshell V5.10.4 (hủy bằng ^G)1>
Cài đặt RabbitMQ
RabbitMQ cung cấp gói RPM cho các hệ thống Linux doanh nghiệp được biên dịch trước và có thể cài đặt trực tiếp. Yêu cầu phụ thuộc duy nhất là cài đặt Erlang vào hệ thống. Vì chúng tôi đã cài đặt Erlang nên chúng tôi có thể tiến hành tải RabbitMQ. Tải xuống gói Erlang RPM bằng cách chạy lệnh.
Mã:
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
Nhập khóa GPG bằng cách chạy:
Mã:
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
Mã:
rpm -Uvh rabbitmq-server-3.6.10-1.el7.noarch.rpm
Khởi động RabbitMQ
Bạn có thể khởi động quy trình máy chủ RabbitMQ bằng cách chạy lệnh sau.
Mã:
systemctl start rabbitmq-server
Mã:
systemctl enable rabbitmq-server
Mã:
systemctl status rabbitmq-server
Mã:
? rabbitmq-server.service - RabbitMQ broker Đã tải: đã tải (/usr/lib/systemd/system/rabbitmq-server.service; đã bật; cài đặt trước của nhà cung cấp: đã tắt) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2017-07-15 18:59:14 UTC; 3 phút 22 giây trước PID chính: 29006 (beam.smp) Trạng thái: "Đã khởi tạo" CGroup: /system.slice/rabbitmq-server.service ??29006 /usr/lib64/erlang/erts-9.0/bin/beam.smp -W w -A 64 -P 1048576 -t 5000000 -stbt db -zdbbl 32000 -K tr... ??29149 /usr/lib64/erlang/erts-9.0/bin/epmd -daemon ??29283 erl_child_setup 1024 ??29303 inet_gethost 4 ??29304 inet_gethost 415 tháng 7 18:59:13 centos rabbitmq-server[29006]: Đang khởi động broker...15 tháng 7 18:59:14 centos rabbitmq-server[29006]: đơn vị systemd để kiểm tra kích hoạt: "rabbitmq-server.service"15 tháng 7 18:59:14 centos systemd[1]: Đã khởi động RabbitMQ broker.15 tháng 7 18:59:14 centos rabbitmq-server[29006]: đã hoàn thành với 0 plugin.
Sửa đổi Firewall và SELinux Rules
Nếu bạn đã cài đặt và chạy firewalld, bạn sẽ phải cho phép cổng 8161 đi qua tường lửa. Chạy lệnh sau để thực hiện tương tự.
Mã:
firewall-cmd --zone=public --permanent --add-port=4369/tcp
firewall-cmd --zone=public --permanent --add-port=25672/tcp
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp
firewall-cmd --zone=public --permanent --add-port=15672/tcp
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp
firewall-cmd --zone=public --permanent --add-port=1883/tcp
firewall-cmd --zone=public --permanent --add-port=8883/tcp
Mã:
firewall-cmd --reload
Mã:
setsebool -P nis_enabled 1
Truy cập Bảng điều khiển web
Bật bảng điều khiển quản lý web RabbitMQ bằng cách chạy:
Mã:
rabbitmq-plugins enable rabbitmq_management
Mã:
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
Mã:
rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Để truy cập bảng quản trị của RabbitMQ, hãy sử dụng trình duyệt web yêu thích của bạn và mở URL sau.
Mã:
http://Your_Server_IP:15672/
Sau khi đăng nhập, bạn sẽ thấy bảng điều khiển quản trị.
Bạn có thể tìm thấy danh sách người dùng, máy chủ ảo, chính sách tại tab Quản trị của bảng điều khiển. Bạn nên xóa người dùng Khách vì lý do bảo mật.
Bạn có thể tìm thấy danh sách hàng đợi tin nhắn tại tab Hàng đợi. Bạn có thể tạo hàng đợi mới hoặc xóa hàng đợi hiện có thông qua giao diện này.
Bạn có thể tìm danh sách kết nối hiện tại trên tab Kết nối
Tương tự, bạn có thể tìm các kênh và trao đổi tại các tab tương ứng của chúng.