Cài đặt và Cấu hình RabbitMQ trên CentOS 8

1. Cập nhật hệ thống CentOS 8

Trước khi bắt đầu triển khai RabbitMQ, việc đảm bảo hệ thống CentOS 8 của bạn được cập nhật là vô cùng quan trọng. Cập nhật hệ thống giúp bạn có được các bản vá bảo mật mới nhất và cải thiện hiệu suất, điều này thiết yếu để đảm bảo cơ sở hạ tầng cài đặt ổn định và an toàn.

Đầu tiên, mở terminal và thực thi lệnh sau để cập nhật hệ thống:

sudo dnf upgrade --refresh

Lệnh này sẽ kiểm tra tất cả các gói có thể cập nhật và nâng cấp chúng lên phiên bản mới nhất. Tùy chọn --refresh được sử dụng để cập nhật bộ nhớ đệm cục bộ, đảm bảo chúng ta nhận được thông tin gói phần mềm mới nhất.

Sau khi hoàn tất, để đảm bảo tính sẵn sàng và độ tin cậy của hệ thống, việc khởi động lại hệ thống là một thực hành tốt:

sudo reboot

Hoàn thành các bước trên, hệ thống CentOS 8 của bạn đã sẵn sàng cho việc cài đặt RabbitMQ. Quá trình này đảm bảo hệ thống ở trạng thái tối ưu và cung cấp một nền tảng vận hành ổn định cho các bước tiếp theo. Tiếp theo, chúng ta sẽ chuẩn bị cho việc cài đặt RabbitMQ.

2. Chuẩn bị môi trường cài đặt RabbitMQ

Trước khi chính thức đi vào cài đặt và cấu hình RabbitMQ, việc tìm hiểu một số công tác chuẩn bị là rất hữu ích để đảm bảo toàn bộ quá trình diễn ra suôn sẻ. Phần này sẽ chia thành hai mục chính: thêm kho lưu trữ YUM chính thức của RabbitMQ và chuẩn bị môi trường cài đặt.

2.1. Thêm kho lưu trữ YUM của RabbitMQ

2.1.1. Định nghĩa và vai trò của kho lưu trữ YUM

YUM (Yellowdog Updater Modified) là một trình quản lý gói phần mềm cho các hệ thống dựa trên RPM. Kho lưu trữ YUM là một kho chứa các gói phần mềm, thường là trực tuyến hoặc cục bộ, nơi bạn có thể lưu trữ, truy xuất và cài đặt phần mềm. Kho lưu trữ YUM giúp việc cài đặt, cập nhật và gỡ bỏ phần mềm trở nên dễ dàng hơn vì nó tự động xử lý các vấn đề phụ thuộc giữa các gói.

Trước khi cài đặt RabbitMQ, bạn thường cần thêm kho lưu trữ YUM chính thức của nó, điều này mang lại một số lợi ích rõ ràng:

  • Đảm bảo cài đặt phiên bản RabbitMQ mới nhất.
  • Tự động giải quyết các phụ thuộc giữa các gói phần mềm.
  • Đảm bảo nguồn phần mềm an toàn thông qua kênh chính thức.

2.1.2. Cách thêm kho lưu trữ vào CentOS 8

Để thêm kho lưu trữ YUM chính thức của RabbitMQ vào hệ thống CentOS 8, hãy làm theo các bước sau:

  1. Đầu tiên, đảm bảo hệ thống đã cài đặt công cụ curl, được dùng để tải tệp từ mạng. Bạn có thể cài đặt nó bằng cách chạy lệnh sau (nếu chưa có):
sudo dnf install -y curl
  1. Tiếp theo, tạo một tệp kho lưu trữ YUM mới. Sử dụng trình soạn thảo văn bản (ví dụ vi) để tạo tệp:
sudo vi /etc/yum.repos.d/rabbitmq-erlang.repo
  1. Trong tệp đó, nhập nội dung sau để thêm kho lưu trữ Erlang (vì RabbitMQ được viết bằng Erlang, nên thường cần thêm kho lưu trữ của Erlang). Sau đó lưu và thoát:
[erlang]
name=CentOS $releasever - Erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/8/\$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
        https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
sslclientkey=/etc/pki/tls/private/atomic_nanoserver.key
sslclientcert=/etc/pki/tls/certs/atomic_nanoserver.crt
  1. Sau đó, thêm kho lưu trữ RabbitMQ bằng cách tạo một tệp kho lưu trữ YUM khác:
sudo vi /etc/yum.repos.d/rabbitmq-server.repo
  1. Thêm nội dung sau vào tệp mới, sau đó lưu và thoát:
# Trong /etc/yum.repos.d/rabbitmq-server.repo
[bintray-rabbitmq-server]
name=bintray-rabbitmq-server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/\$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# Khóa repository của PackageCloud và khóa ký gói RabbitMQ
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
       https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
sslclientkey=/etc/pki/tls/private/atomic_nanoserver.key
sslclientcert=/etc/pki/tls/certs/atomic_nanoserver.crt
  1. Làm sạch bộ nhớ đệm YUM để nó có thể nhận diện các kho lưu trữ mới được thêm vào:
sudo dnf makecache

Với các bước trên, chúng ta đã thêm thành công kho lưu trữ YUM chính thức của RabbitMQ vào hệ thống CentOS 8, sẵn sàng cho việc cài đặt tiếp theo.

2.2. Chuẩn bị môi trường cài đặt

Trước khi bắt đầu cài đặt RabbitMQ, còn một số công việc chuẩn bị môi trường quan trọng cần hoàn thành. Các bước này giúp đảm bảo RabbitMQ được cài đặt suôn sẻ và hoạt động bình thường.

2.2.1. Kiểm tra và cài đặt phần mềm phụ thuộc cần thiết

RabbitMQ phụ thuộc vào một số gói phần mềm như Erlang OTP và các phụ thuộc khác. Bạn có thể sử dụng các lệnh sau để cài đặt các phụ thuộc bắt buộc này:

sudo dnf install -y erlang
sudo dnf install -y socat

Ở đây, chúng ta sử dụng lệnh dnf để cài đặt Erlang cũng như socat (một tiện ích cho kết nối TCP/IP), chúng là những yếu tố cần thiết để RabbitMQ hoạt động.

2.2.2. Đảm bảo đồng bộ thời gian hệ thống

Tính chính xác của thời gian hệ thống là rất quan trọng đối với hàng đợi tin nhắn, vì tin nhắn có thể phụ thuộc vào dấu thời gian để xác định độ ưu tiên hoặc thời gian hết hạn. RabbitMQ khuyến nghị sử dụng dịch vụ chronyd để duy trì độ chính xác của thời gian hệ thống. Hãy làm theo các bước sau để cài đặt và khởi động dịch vụ chronyd:

sudo dnf install -y chrony
sudo systemctl enable chronyd
sudo systemctl start chronyd

Khi dịch vụ chronyd đã chạy, bạn có thể sử dụng lệnh chronyc sources để kiểm tra trạng thái máy chủ NTP và xác nhận rằng thời gian hệ thống đang được đồng bộ.

Sau khi thực hiện các thao tác trên, môi trường cần thiết để cài đặt RabbitMQ đã sẵn sàng. Chương tiếp theo, chúng ta sẽ tìm hiểu quá trình cài đặt và khởi động RabbitMQ.

3. Cài đặt và Khởi động RabbitMQ

3.1. Tải và cài đặt gói RPM của RabbitMQ

3.1.1. Giới thiệu về gói RPM của RabbitMQ và các đặc điểm

RabbitMQ là một phần mềm môi giới tin nhắn mã nguồn mở được triển khai dựa trên AMQP (Advanced Message Queuing Protocol). Máy chủ RabbitMQ được viết bằng ngôn ngữ lập trình Erlang, và gói RPM của nó (định dạng gói phần mềm được sử dụng bởi hệ thống quản lý gói RPM) được thiết kế cho Red Hat và các hệ thống phái sinh như CentOS, nhằm đơn giản hóa quá trình cài đặt và quản lý.

Gói RPM của RabbitMQ có các đặc điểm sau:

  • Dễ cài đặt: Người dùng không cần tải xuống và cấu hình thủ công; có thể dễ dàng cài đặt thông qua lệnh dnf.
  • Dễ bảo trì: Gói RPM có thể được nâng cấp, gỡ bỏ, v.v. thông qua các công cụ quản lý gói tích hợp của hệ thống.
  • Quản lý phụ thuộc: Tự động xử lý các phụ thuộc cần thiết để RabbitMQ hoạt động.

3.1.2. Sử dụng dòng lệnh để tải và cài đặt RabbitMQ

Trên hệ thống CentOS, các bước để tải và cài đặt gói RPM của RabbitMQ bằng công cụ dòng lệnh như sau:

# Nhập khóa ký của RabbitMQ
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

# Cài đặt cấu hình kho lưu trữ RabbitMQ
rpm -Uvh https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-el8-1.noarch.rpm

# Cài đặt máy chủ RabbitMQ
dnf install -y rabbitmq-server

Phân tích logic các lệnh:

  • Lệnh rpm --import được sử dụng để nhập khóa GPG của RabbitMQ, đảm bảo tính xác thực của gói phần mềm.
  • Lệnh rpm -Uvh dùng để cài đặt tệp cấu hình kho lưu trữ YUM của RabbitMQ. Các tham số -Uvh lần lượt đại diện cho việc nâng cấp gói đã tồn tại, hiển thị quá trình cài đặt chi tiết, và xác minh giá trị băm của gói cài đặt.
  • Lệnh dnf install -y dùng để cài đặt máy chủ RabbitMQ. Tham số -y có nghĩa là tự động chấp nhận tất cả các lời nhắc trong quá trình cài đặt DNF mà không cần can thiệp thủ công.

Trước khi thực hiện các lệnh trên, bạn cần xác nhận rằng trình quản lý gói dnf của hệ thống đã sẵn sàng. Nếu hệ thống của bạn không được cấu hình kết nối mạng hoặc không đủ quyền, bạn có thể gặp lỗi. Đảm bảo tài khoản của bạn có các quyền cần thiết để thực hiện các lệnh trên.

Sau khi cài đặt xong, dịch vụ RabbitMQ sẽ không tự động khởi động. Bạn có thể cần cấu hình RabbitMQ theo nhu cầu của mình, sau đó khởi động dịch vụ thủ công.

3.2. Khởi động và cài đặt dịch vụ RabbitMQ tự khởi động

3.2.1. Phương pháp khởi động dịch vụ RabbitMQ

Sau khi cài đặt RabbitMQ, bạn cần khởi động dịch vụ thủ công. Dưới đây là các lệnh để khởi động dịch vụ RabbitMQ:

# Khởi động dịch vụ RabbitMQ
systemctl start rabbitmq-server

# Kiểm tra trạng thái dịch vụ RabbitMQ
systemctl status rabbitmq-server

Phân tích logic các lệnh:

  • Lệnh systemctl start được dùng để khởi động dịch vụ RabbitMQ.
  • Lệnh systemctl status được dùng để kiểm tra trạng thái hoạt động của dịch vụ, giúp bạn xác nhận dịch vụ đã khởi động thành công và trạng thái hiện tại của nó.

3.2.2. Cài đặt RabbitMQ tự khởi động cùng hệ thống

Để đảm bảo dịch vụ RabbitMQ tự động khởi động sau khi hệ thống khởi động lại, bạn cần cài đặt dịch vụ tự khởi động:

# Cài đặt RabbitMQ tự khởi động khi boot
systemctl enable rabbitmq-server

Phân tích logic lệnh:

  • Lệnh systemctl enable được dùng để cài đặt dịch vụ tự khởi động cùng hệ thống, có nghĩa là mỗi khi hệ thống khởi động, dịch vụ RabbitMQ sẽ tự động chạy.

Trong thực tế, bạn có thể cần điều chỉnh các lệnh này tùy theo môi trường hệ thống của mình. Thông thường, trong hệ thống CentOS 8, các lệnh này là tiêu chuẩn. Trong môi trường sản xuất, nên kết hợp với các công cụ giám sát và quản lý nhật ký thực tế để đảm bảo tính ổn định và bảo mật của dịch vụ.

Xin lưu ý, vì lý do bảo mật, trước khi triển khai trong môi trường sản xuất, bạn nên cài đặt và cấu hình trong môi trường thử nghiệm trước, xác nhận không có lỗi sau đó mới triển khai vào môi trường sản xuất.

4. Quản lý người dùng và quyền hạn RabbitMQ

4.1. Tạo và cấu hình người dùng mặc định của RabbitMQ

Trong môi trường sản xuất thực tế, để đảm bảo an toàn cho hệ thống hàng đợi tin nhắn, cần kiểm soát chặt chẽ người dùng truy cập RabbitMQ. Việc tạo người dùng và cấu hình quyền hạn tương ứng là các bước quan trọng để đảm bảo an ninh hệ thống.

4.1.1. Quy trình tạo người dùng mới

Bạn có thể tạo người dùng mới thông qua công cụ dòng lệnh quản lý của RabbitMQ. Trước khi bắt đầu, bạn cần xác nhận rằng dịch vụ RabbitMQ đã được cài đặt và khởi động đúng cách.

Đầu tiên, chúng ta cần mở một cửa sổ terminal và sử dụng lệnh sau để đăng nhập vào giao diện quản lý của RabbitMQ:

rabbitmqctl add_user <tên_người_dùng> <mật_khẩu>

Ở đây, <tên_người_dùng><mật_khẩu> lần lượt là tên người dùng và mật khẩu bạn muốn tạo. Ví dụ:

rabbitmqctl add_user user_demo matkhau_an_toan

Lệnh này sẽ thêm một người dùng mới có tên user_demo với mật khẩu là matkhau_an_toan.

4.1.2. Cấu hình quyền hạn cơ bản cho người dùng

Để người dùng có thể thực hiện một số thao tác, chúng ta cần cấp cho họ các quyền hạn tương ứng. Quyền hạn trong RabbitMQ được chia thành ba loại: đọc (read), ghi (write) và cấu hình (configure). Mỗi người dùng có thể được cấp hoặc từ chối quyền truy cập riêng lẻ vào các tài nguyên cụ thể.

Lệnh sau đây sẽ cấp cho người dùng user_demo quyền đọc và ghi trên tất cả các tài nguyên:

rabbitmqctl set_permissions -p / user_demo ".*" ".*" ".*"
  • -p / chỉ định virtual host (vhost) của RabbitMQ, trong ví dụ này là virtual host gốc.
  • Tham số thứ hai ".*" là mẫu khớp tài nguyên cho các hoạt động đọc.
  • Tham số thứ ba ".*" là mẫu khớp tài nguyên cho các hoạt động ghi.
  • Tham số thứ tư ".*" là mẫu khớp tài nguyên cho các hoạt động cấu hình.

Sau khi lệnh được thực thi, user_demo sẽ có quyền thực hiện các thao tác đọc, ghi và cấu hình trên virtual host mặc định.

4.2. Thiết lập truy cập và quyền hạn giao diện quản lý RabbitMQ

Sau khi kích hoạt giao diện quản lý của RabbitMQ, chúng ta cần cấu hình nó để đảm bảo chỉ những người dùng được ủy quyền mới có thể truy cập.

4.2.1. Thiết lập truy cập giao diện quản lý

Giao diện quản lý của RabbitMQ mặc định được cung cấp qua dịch vụ HTTP trên cổng 15672. Đảm bảo tường lửa của máy chủ cho phép truy cập cổng này và RabbitMQ đã khởi động plugin quản lý.

Lệnh để kích hoạt plugin giao diện quản lý như sau:

rabbitmq-plugins enable rabbitmq_management

Đảm bảo plugin quản lý đã được kích hoạt, khi đó bạn có thể truy cập bảng điều khiển quản lý RabbitMQ qua giao diện web.

4.2.2. Cấu hình chi tiết vai trò và quyền hạn người dùng

Vai trò người dùng định nghĩa phạm vi các thao tác mà người dùng có thể thực hiện. RabbitMQ có ba vai trò được định nghĩa trước:

  • administrator: Có thể quản lý virtual hosts, người dùng, quyền hạn, v.v.
  • monitoring: Có thể truy cập trạng thái máy chủ, thông tin thống kê.
  • policymaker: Có thể quản lý chính sách, nhưng không thể quản lý người dùng hoặc virtual hosts.

Bạn có thể gán vai trò cho người dùng bằng lệnh sau:

rabbitmqctl set_user_tags <tên_người_dùng> administrator

Ở đây, <tên_người_dùng> là tên người dùng bạn muốn gán vai trò.

Bạn cũng có thể gán vai trò cho người dùng và thiết lập các quyền hạn chi tiết hơn thông qua bảng điều khiển quản lý. Điều này liên quan đến việc đặt các quy tắc quyền hạn cụ thể cho các tài nguyên khác nhau (như exchange, queue), thao tác cụ thể là chọn người dùng tương ứng trong giao diện quản lý, sau đó chỉnh sửa các quy tắc quyền hạn của họ.

Ví dụ thao tác

Giả sử chúng ta cần đặt quyền chỉ đọc cho người dùng user_demo trên virtual host myvhost, có thể sử dụng lệnh sau:

rabbitmqctl set_permissions -p myvhost user_demo ".*" ".*" "amq\.queue\.get"

Lệnh này sẽ cho phép user_demo chỉ có thể thực hiện thao tác lấy (get) trên các hàng đợi trong myvhost, mà không thể thực hiện các thao tác xuất bản (put) hoặc các thao tác nâng cao khác.

Thực tiễn tốt nhất về quản lý quyền hạn

  • Cấp cho người dùng quyền hạn tối thiểu cần thiết. Không cấp cho người dùng những quyền mà họ không cần.
  • Định kỳ xem xét và cập nhật quyền hạn người dùng để phản ánh nhu cầu kinh doanh và bảo mật hiện tại.
  • Đối với môi trường sản xuất, khuyến nghị mạnh mẽ sử dụng mã hóa TLS/SSL cho giao tiếp của giao diện quản lý.

Thông qua các bước trên, bạn có thể quản lý hiệu quả người dùng và quyền hạn của RabbitMQ, đảm bảo an toàn và ổn định cho hệ thống tin nhắn.

5. Bảo mật và Cấu hình Nâng cao RabbitMQ

Khi xây dựng một hệ thống hàng đợi tin nhắn đáng tin cậy, bảo mật và cấu hình nâng cao là hai khía cạnh không thể bỏ qua. RabbitMQ, với tư cách là một phần mềm môi giới tin nhắn mã nguồn mở đã trưởng thành, cung cấp nhiều tùy chọn bảo mật và cấu hình để đảm bảo tính ổn định của hệ thống và an toàn dữ liệu. Phần này sẽ giới thiệu các khuyến nghị cơ bản về bảo mật của RabbitMQ và một số cấu hình nâng cao quan trọng.

5.1. Khuyến nghị về bảo mật

5.1.1. Nguyên tắc cơ bản về bảo mật mạng

Trước khi thảo luận về bảo mật RabbitMQ, cần nhấn mạnh một số nguyên tắc cơ bản về bảo mật mạng:

  • Chỉ cho phép giao tiếp mạng cần thiết.
  • Sử dụng mã hóa cho tất cả các truyền dữ liệu, chẳng hạn như TLS/SSL.
  • Sử dụng mật khẩu mạnh và cơ chế xác thực phức tạp.
  • Hạn chế truy cập vào giao diện quản lý.
  • Tuân thủ nguyên tắc quyền tối thiểu, tức là chỉ cấp cho người dùng các quyền cần thiết để hoàn thành công việc.

5.1.2. Cấu hình bảo mật đặc trưng của RabbitMQ

RabbitMQ hỗ trợ các cấu hình bảo mật cụ thể sau:

  • Hỗ trợ TLS/SSL: RabbitMQ có thể mã hóa giao tiếp giữa client và server thông qua SSL/TLS. Bằng cách tạo chứng chỉ và khóa SSL, và cấu hình RabbitMQ sử dụng các chứng chỉ này, bạn có thể bảo vệ hiệu quả an toàn truyền dữ liệu.
  • Xác thực và ủy quyền người dùng: RabbitMQ cho phép kiểm soát quyền hạn chi tiết cho người dùng. Mặc định, RabbitMQ sử dụng tên người dùng và mật khẩu tích hợp để xác thực, nhưng cũng có thể tích hợp các cơ chế xác thực bên ngoài, như LDAP hoặc PAM. Ủy quyền được thực hiện bằng cách cấu hình quyền hạn người dùng, ví dụ: người dùng nào có thể xuất bản hoặc đăng ký vào các hàng đợi cụ thể, hoặc họ có thể thực hiện những tác vụ quản lý nào.
  • Virtual hosts (vhost): vhost cung cấp một cách phân tách logic, cho phép bạn chạy nhiều môi trường biệt lập trong một instance RabbitMQ duy nhất. Mỗi vhost có thể có người dùng và quyền hạn, exchanges và queues riêng.
  • Quy tắc tường lửa: Cần thiết lập các quy tắc tường lửa để hạn chế truy cập vào các cổng của RabbitMQ. RabbitMQ mặc định lắng nghe trên cổng 5672 (kết nối không mã hóa) và cổng 5671 (kết nối mã hóa). Tùy thuộc vào nhu cầu của bạn, các cổng này chỉ nên được mở cho các địa chỉ IP đáng tin cậy.

5.2. Khuyến nghị về cấu hình nâng cao

5.2.1. Cấu hình tin nhắn bền vững (Persistence) và chính sách High Availability (HA)

Để đảm bảo tin nhắn không bị mất khi máy chủ gặp sự cố, bạn cần cấu hình các tin nhắn và hàng đợi bền vững. Điều này có nghĩa là tin nhắn sẽ được ghi vào đĩa. Bạn có thể khai báo exchanges và queues là bền vững (durable) khi tạo chúng. Ngoài ra, trong các hệ thống yêu cầu tính sẵn sàng cao, việc thiết lập chính sách nhân bản hàng đợi cũng rất quan trọng.

rabbitmqctl set_policy ha-mirrored-queues "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

Lệnh trên thiết lập một chính sách có tên "ha-mirrored-queues" (hoặc bất kỳ tên nào khác), chính sách này sẽ làm cho tất cả các hàng đợi khớp với mẫu "^" (tất cả các hàng đợi) trở thành hàng đợi được nhân bản (mirrored queue) trên tất cả các node trong một cụm RabbitMQ ("ha-mode":"all") và tự động đồng bộ hóa chúng ("ha-sync-mode":"automatic"). Điều này đảm bảo tính bền vững của tin nhắn ngay cả khi một node bị lỗi, vì chúng được sao chép qua các node khác.

5.2.2. Thiết lập thuộc tính hàng đợi nâng cao

Các thuộc tính nâng cao của hàng đợi có thể được tối ưu hóa cho các kịch bản ứng dụng cụ thể. Ví dụ, bạn có thể đặt thời gian hết hạn tin nhắn (message expiration), cờ tự động xóa (auto-delete), độ dài tối đa (max length) hoặc độ ưu tiên tối đa (max priority), v.v.

rabbitmqctl set_policy queue-config "^expired_queue$" '{"message-ttl":5000,"expires":10000,"dead-letter-exchange":"my_dlx"}'

Lệnh này thiết lập một chính sách mới cho hàng đợi có tên "expired_queue" (hoặc bất kỳ hàng đợi nào khớp với "^expired_queue$"), làm cho các tin nhắn trong hàng đợi hết hạn sau 5000 mili giây, và hàng đợi sẽ tự động bị xóa sau 10000 mili giây nếu không có hoạt động. Các tin nhắn hết hạn sẽ được gửi đến exchange "my_dlx" (Dead Letter Exchange).

5.2.3. Cấu hình cụm và hàng đợi được nhân bản (Mirrored Queues)

Khi ứng dụng yêu cầu tính sẵn sàng cao hơn, việc xây dựng một cụm RabbitMQ là một thực hành tốt. Thông qua cụm, dữ liệu có thể được sao chép giữa các node và cung cấp khả năng chuyển đổi dự phòng. Hàng đợi được nhân bản là một loại hàng đợi đặc biệt trong RabbitMQ, cho phép tự động sao chép hàng đợi đến nhiều node.

rabbitmqctl set_policy ha-active-passive "^my_app_queue" '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

Lệnh này cấu hình chính sách "ha-active-passive" cho các hàng đợi có tên bắt đầu bằng "my_app_queue". Nó sẽ tạo một hàng đợi được nhân bản và đảm bảo tin nhắn được đồng bộ hóa giữa chính xác hai node ("ha-params":2) trong cụm. Lưu ý rằng cần ít nhất hai node để kích hoạt tính năng hàng đợi được nhân bản một cách hiệu quả.

Thông qua các cấu hình trên, bạn có thể cải thiện đáng kể tính bảo mật của môi trường RabbitMQ cũng như cung cấp các tính năng và sự ổn định cao cấp hơn. Đối với những người dùng muốn nâng cao hiệu suất và độ tin cậy, những cấu hình nâng cao này là kiến thức quan trọng cần nắm vững.

Thẻ: rabbitmq CentOS8 Erlang MessageQueue AMQP

Đăng vào ngày 21 tháng 7 lúc 07:47