RocketMQ là một trung gian tin nhắn mã nguồn mở của Alibaba, nổi tiếng với khả năng xử lý tốc độ cao, độ trễ thấp và khả năng mở rộng. Bài viết này hướng dẫn bạn cài đặt và cấu hình RocketMQ 4.8.0 cùng với giao diện quản lý trực quan trên hệ điều hành Windows.
1. Chuẩn Bị Môi Trường
Trước khi bắt đầu quá trình cài đặt, hãy đảm bảo rằng hệ thống Windows của bạn đáp ứng các yêu cầu sau:
- JDK 1.8+: RocketMQ 4.8.0 yêu cầu Java 8 hoặc phiên bản mới hơn. Sử dụng lệnh
java -versionđể kiểm tra. - Maven 3.2+: Được sử dụng để xây dựng RocketMQ Dashboard. Kiểm tra bằng lệnh
mvn -v. - Đường dẫn hệ thống không chứa khoảng trắng: Đây là điểm thường bị bỏ qua bởi người mới bắt đầu. Đường dẫn cài đặt JDK không được chứa khoảng trắng (ví dụ:
C:\Program Files\Java), nếu không RocketMQ sẽ không khởi động được.
Lưu ý:
- Nếu JDK được cài đặt ở đường dẫn có khoảng trắng, hãy sao chép nó đến một đường dẫn không chứa khoảng trắng (ví dụ:
C:\Java\jdk1.8.0_291) và cập nhật biến môi trườngJAVA_HOME. - Xác nhận rằng biến môi trường
Pathbao gồm thư mụcbincủa JDK và Maven.
2. Cài Đặt Và Cấu Hình RocketMQ 4.8.0
2.1 Tải Về Và Giải Nén
Tải về phiên bản 4.8.0 từ trang web chính thức của RocketMQ:
https://archive.apache.org/dist/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip
Giải nén vào một thư mục địa phương, ví dụ: D:\rocketmq-4.8.0.
2.2 Thiết Lập Biến Môi Trường Quan Trọng
Thiết lập biến môi trường ROCKETMQ_HOME trỏ đến thư mục giải nén:
- Kích chuột phải vào "My Computer" → Properties → Advanced system settings → Environment Variables
- Tạo một biến hệ thống mới:
- Tên biến:
ROCKETMQ_HOME - Giá trị biến:
D:\rocketmq-4.8.0(thay đổi theo đường dẫn thực tế)
- Tên biến:
- Thêm vào
Path:%ROCKETMQ_HOME%\bin
Kiểm tra xem cấu hình có hiệu lực hay không:
echo %ROCKETMQ_HOME%
2.3 Sửa Chữa Các Tập Tin kịch Bản Khóa
Để tránh lỗi phổ biến, cần chỉnh sửa hai tập tin kịch bản:
- Sửa tập tin
%ROCKETMQ_HOME%\bin\runbroker.cmd:- Tìm dòng
set "JAVA_OPT=%JAVA_OPT% -cp %CLASSPATH%" - Thay đổi thành:
set "JAVA_OPT=%JAVA_OPT% -cp "%CLASSPATH%""
- Tìm dòng
- Sửa tập tin
%ROCKETMQ_HOME%\bin\runserver.cmdtương tự.
3. Khởi Động Dịch Vụ RocketMQ
3.1 Khởi Động NameServer
NameServer là trung tâm đăng ký của RocketMQ, quản lý thông tin định tuyến của Broker.
- Mở Command Prompt, chuyển đến thư mục bin của RocketMQ:
cd /d %ROCKETMQ_HOME%\bin - Khởi động NameServer:
start mqnamesrv.cmd
Sau khi thành công, một cửa sổ mới sẽ xuất hiện với thông báo "The Name Server boot success..."
3.2 Khởi Động Broker
Broker là thành phần lưu trữ và chuyển tiếp tin nhắn.
- Mở thêm một cửa sổ Command Prompt trong cùng thư mục bin.
- Chạy lệnh khởi động:
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
Sau khi thành công, hiển thị "The broker[broker tên, 127.0.0.1:10911] boot success..."
4. Cấu Hình Giao Diện Quản Lý Tầm Nhìn
RocketMQ Dashboard cung cấp giao diện giám sát và quản lý trực quan.
4.1 Tải Về Và Xây Dựng Dashboard
- Clone mã nguồn Dashboard mới nhất từ GitHub:
hoặc tải về gói ZIP và giải nén.git clone https://github.com/apache/rocketmq-dashboard.git - Vào thư mục dự án, sử dụng Maven để xây dựng:
mvn clean package -Dmaven.test.skip=true
4.2 Khởi Động Dashboard
Sau khi xây dựng thành công, vào thư mục target để khởi chạy ứng dụng:
java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar
Mặc định khởi động tại cổng 8080, truy cập:
http://localhost:8080
4.3 Cấu Hình Tùy Chỉnh
Có thể điều chỉnh cấu hình bằng cách sửa tập tin application.yml:
server:
port: 8080 # Thay đổi cổng
rocketmq:
config:
namesrvAddrs: 127.0.0.1:9876 # Địa chỉ NameServer
dataPath: ./data # Đường dẫn lưu trữ dữ liệu
5. Cấu Hình Nâng Cao Và Tối Ưu Hóa
5.1 Cấu Hình Nhiều Broker
Để cấu hình nhiều Broker, sao chép conf/broker.conf và chỉnh sửa:
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0 # 0 cho Master, >0 cho Slave
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911 # Mỗi Broker sử dụng cổng khác nhau
storePathRootDir=D:/rocketmq/store-a # Mỗi Broker sử dụng đường dẫn lưu trữ khác nhau
5.2 Tham Số Tối Ưu Hóa Hiệu Suất
Trong runbroker.cmd, có thể điều chỉnh các tham số JVM:
set "JAVA_OPT=%JAVA_OPT% -server -Xms8g -Xmx8g -Xmn4g"
set "JAVA_OPT=%JAVA_OPT% -XX:+UseG1GC -XX:G1HeapRegionSize=16m"
5.3 Cấu Hình Nhật Ký
Sửa conf/logback_broker.xml và conf/logback_namesrv.xml để điều chỉnh mức độ nhật ký và cách thức đầu ra.
6. Giải Quyết Vấn Đề Thường Gặp
Vấn đề 1: Khi khởi động báo lỗi "Please set the ROCKETMQ_HOME variable in your environment!"
- Giải pháp: Đảm bảo biến môi trường
ROCKETMQ_HOMEđã được thiết lập đúng và có hiệu lực.
Vấn đề 2: Broker khởi động sau đó tắt ngay lập tức
- Lí do có thể là thiếu bộ nhớ hoặc xung đột cổng.
- Giải pháp: Điều chỉnh các tham số bộ nhớ trong
runbroker.cmd, kiểm tra xem cổng nào đang bị chiếm dụng.
Vấn đề 3: Dashboard không kết nối được với NameServer
- Kiểm tra NameServer có đang chạy bình thường.
- Xác nhận rằng địa chỉ
namesrvAddrstrong cấu hình Dashboard trùng khớp với địa chỉ thực tế của NameServer.
Vấn đề 4: Gửi/nhận tin nhắn thất bại
- Kiểm tra chủ đề đã được tạo (hoặc kích hoạt
autoCreateTopicEnable). - Xác minh cấu hình GroupName của người sản xuất và người tiêu thụ.