RocketMq简介及安装、docker安装rocketmq、安装rocketmq可视化管理端
  gxJ4jYVTC9IN 2023年12月06日 16 0


前言

本文主要简单介绍rocketmq及使用docker安装rocketmq的方法。

rocketmq简介

rocketmq有两部分,nameserver和broker,nameserver用来维护broker的地址、向生产者、消费者推送broker的最新地址;broker用来存储、转发消息;也就是说,生产者首先要连接nameServer获取到broker的地址,然后将消息发送到broker,通过broker再将消息传递到消费者;

所以用docker安装rocketmq时,要启动两个容器,一个nameserver、一个broker,这两者要网络互通;

nameServer暴露的端口通常是9876;broker暴露的端口通常是10911,生产者就是往这个端口发送消息;消费者可能也是通过这个接口拉取消息;

下图中的Message Storage可认为是nameserver+broker

RocketMq简介及安装、docker安装rocketmq、安装rocketmq可视化管理端_docker


大体的结构示意图

RocketMq简介及安装、docker安装rocketmq、安装rocketmq可视化管理端_rocketmq_02

安装

拉取镜像

docker pull apache/rocketmq:5.1.0

创建nameserver容器

docker run -d -p 9876:9876 --name rmqnamesrv apache/rocketmq:5.1.0 sh mqnamesrv

docker run命令选项解释

  • --name rmqnamesrv,指定容器的名称为rmqnamesrv
  • sh mqnamesrv,启动mqnamesrv,是个脚本文件
[rocketmq@99e974741937 bin]$ ls -l mqnames*
-rwxr-xr-x 1 rocketmq rocketmq 1472 Feb 14  2023 mqnamesrv
-rwxr-xr-x 1 rocketmq rocketmq 1165 Feb 14  2023 mqnamesrv.cmd

创建broker容器

创建broker配置文件

创建/etc/rocketmq/conf/broker.conf文件,添加如下配置

brokerIP1 = 宿主机ip
namesrvAddr = 宿主机ip:9876

为了实现客户端与broker的通信可达性,这里必须要指定ip为 宿主机ip,默认使用的docker私有ip,客户端与私有ip通信不可达;

创建broker容器

docker run -d -p 10909:10909 -p 10911:10911 \
-v /etc/rocketmq/conf/broker.conf:/etc/rocketmq/conf/broker.conf  \
--name rmqbroker  \
--link rmqnamesrv:namesrv  \
-e "NAMESRV_ADDR=namesrv:9876"  \
apache/rocketmq:5.1.0  \
sh mqbroker  \
-n namesrv:9876   \
-c /etc/rocketmq/conf/broker.conf \

docker run命令选项解释

  • -v /etc/rocketmq/conf/broker.conf:/etc/rocketmq/conf/broker.conf,将宿主机中的配置文件挂载到容器中
  • --link rmqnamesrv:namesrv,指定源容器的别名为namesrv,进入容器后查看/etc/hosts文件,cat /etc/hosts
[rocketmq@87e707e2bb10 bin]$ cat /etc/hosts
127.0.0.1	localhost
172.18.0.2	namesrv 99e974741937 rmqnamesrv //源容器的ip和别名、源容器的id和源容器名称
172.18.0.3	87e707e2bb10 //本容器的ip和容器id

sh mqbroker命令选项解释

  • -n namesrv:9876,指定broker的nameserver地址,–link指定的别名,在这里起作用了;
    如果写死ip则源容器重新docker run后,ip可能会变化导致不可通信。
  • -c /etc/rocketmq/conf/broker.conf,指定配置文件

顺便说一下,根据关于对docker run --link的理解,docker 已经不建议使用--link,docker network用来替代link,对等的使用docker run --network networkname --network-alias networkAlias

  • --network networkname,加入指定网络
  • --network-alias networkAlias,本容器的网络别名

安装rocketmq可视化管理端rocketmq-dashboard

参考官方安装rocketmq-dashboard文档

拉取镜像

docker pull apacherocketmq/rocketmq-dashboard:latest

启动容器

docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876" -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest

注意,将127.0.0.1改为外网ip

RocketMq简介及安装、docker安装rocketmq、安装rocketmq可视化管理端_配置文件_03


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月06日 0

暂无评论

推荐阅读
gxJ4jYVTC9IN