“水杉在线”集成RocketMQ(一、部署及测试)

您所在的位置:网站首页 gitlab-ce配置外部署数据库 “水杉在线”集成RocketMQ(一、部署及测试)

“水杉在线”集成RocketMQ(一、部署及测试)

2023-04-30 19:19| 来源: 网络整理| 查看: 265

“水杉在线”-RocketMQ集成(一、部署及测试)1、拉取镜像

这里我们选择了前两天刚刚发布的最新版本5.1.0版本,听说有很多提升,相比于版本4来说。

1234# 拉取rocketmq docker pull apache/rocketmq:5.1.0# 拉取rocketmq-dashboarddocker pull styletang/rocketmq-console-ng:latest 2、环境配置

目前本地以及测试环境主要是单机部署 ,因此namesrv和broker都部署在一个机器上,同时请注意端口映射以及防火墙以及数据卷挂载的目录,以及broker的配置文件,同时command命令注意使broker.conf配置生效。对于内存分配如果是生产环境尽量大一些,比如8G起步。

**注意执行 chmod 777 -R your_rocketmq_dir给你挂载的数据卷写入的权限,否则日志和数据等写不进来。

12345678910111213141516171819202122232425262728293031323334353637version: "3"services: namesrv: image: apache/rocketmq:5.1.0 container_name: rocketmq-namesrv ports: - "9876:9876" environment: JAVA_OPT: -server -Xms2g -Xmx2g -Xmn1g command: sh mqnamesrv volumes: - your_namesrv_logs_dir:/home/rocketmq/logs/rocketmqlogs broker: image: apache/rocketmq:5.1.0 container_name: rocketmq-broker ports: - "10911:10911" - "10909:10909" - "10912:10912" environment: JAVA_OPT_EXT: -server -Xms2g -Xmx2g -Xmn1g command: sh mqbroker -n rocketmq-namesrv:9876 -c /home/rocketmq/rocketmq-5.1.0/conf/broker.conf depends_on: - namesrv volumes: - .your_broker_conf_dir:/home/rocketmq/rocketmq-5.1.0/conf/broker.conf - your_namesrv_logs_dir:/home/rocketmq/logs/rocketmqlogs - your_namesrv_store_dir:/home/rocketmq/store dashboard: image: styletang/rocketmq-console-ng:latest container_name: rocketmq-dashboard ports: - "8086:8080" environment: - rocketmq.config.namesrvAddr=rocketmq-namesrv:9876 3、启动RocketMQ

请注意使用docker-compose up -d来启动,在broker.conf中建议明确brokerIP

broker.conf配置如下:

1234567891011brokerClusterName = DefaultClusterbrokerName = broker-a brokerId = 0deleteWhen = 04fileReservedTime = 48brokerRole = ASYNC_MASTERflushDiskType = ASYNC_FLUSHbrokerIP1 = your_broker_ip # 这个ip一般就是你宿主机的外网ip 不要localhost/127.0.0.1 可能在springboot测试 时无法连接listenPort = 10911autoCreateTopicEnable = trueautoCreateSubscriptionGroup = true

启动成功后可以通过docker logs -f [container_id] 查看相关日志 确定是否成功

也可以通过dashboard来进行测试,如下图所示:

image-20230429163335112

你可以通过这个dashboard来进行一些消息的生产和消费以确定是否可以正常收发消息。

4、SpringCloud整合RocketMQ4.1、pom.xml引入依赖12345678910 org.apache.rocketmq rocketmq-client 4.9.4 org.apache.rocketmq rocketmq-spring-boot-starter 2.2.2 4.2、application.yml中配置基本变量12345678910111213mq: topic: your_topic consumer: group: your-consumer-group retry-times-when-send-failed: 5 send-message-timeout: 50000 # timeout建议给大一点儿 要不然报错rocketmq: name-server: namesrvIP:9876 # IP是你部署的 producer: group: your-producer-group retry-times-when-send-failed: 5 send-message-timeout: 50000 4.3、生产者连接并发送消息123456@Testpublic void testMQProducer() { String message = "Hello World"; rocketMQTemplate.convertAndSend("shuishan-dev",message); System.out.println("消息发送成功");}

image-20230429164026706

4.4、消费者消费消息(最好新建一个module or server)12345678910@Component@RocketMQMessageListener(consumerGroup = "shuishan-consumer-group",topic = "shuishan-dev")public class MyConsumer implements RocketMQListener { @Override public void onMessage(String s) { System.out.println("收到的消息" + s); }}

image-20230429164154656

至此 最基本的RocketMQ部署并测试完成。

祝大家五一节快乐!!!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3