消息中心部署
<h2>消息中心部署</h2>
<h5>系统:centos</h5>
<h5>环境搭建:jdk nginx</h5>
<h5>安装清单:docker rocketMq 数据库 中间件</h5>
<h2>rocketMq部署(非集群 单个broker和单个namesrv配置)</h2>
<h3><strong>安装docker</strong></h3>
<p>配置仓库信息
编辑文件/etc/docker/daemon.json,没有则直接创建
vim /etc/docker/daemon.json</p>
<p>文件没有内容添加如下:
{
"data-root":"/risen/docker",
"insecure-registries":["60.191.64.3:9963"],"bip":"192.168.88.1/24"
}
配置完成后重启docker</p>
<h3>拉取镜像</h3>
<ul>
<li>
<p><strong>X86:</strong>
拉取rocketmq_namesrv
docker pull 60.191.64.3:9963/risen/rocketmq_namesrv_x86
拉取rocketmq_broker
docker pull 60.191.64.3:9963/risen/rocketmq_broker_x86
拉取rocketmq-console-ng
docker pull 60.191.64.3:9963/risen/rocketmq_console_ng_x86</p>
</li>
<li>
<p><strong>mips64:</strong>
拉取broker与namesrv,此镜像包含broker与namesrv,根据启动命令不同,启动不同的程序
docker pull 60.191.64.3:9963/risen/rocketmq_all_mips64
拉取控制台镜像
docker pull 60.191.64.3:9963/risen/rocketmq_console_mips64</p>
</li>
<li><strong>arm64:</strong>
拉取broker与namesrv,此镜像包含broker与namesrv,根据启动命令不同,启动不同的程序
docker pull 60.191.64.3:9963/risen/rocketmq_all_arm64
拉取控制台镜像
docker pull 60.191.64.3:9963/risen/rocketmq_console_arm64</li>
</ul>
<h3><strong> 部署rocketmq</strong></h3>
<p><strong>创建所需要的文件夹</strong></p>
<ul>
<li><strong>创建namesrv日志文件夹</strong>
mkdir -p /risen/soft/rocketmq/namesrv/logs
创建broker日志文件夹
mkdir -p /risen/soft/rocketmq/broker/logs
创建broker数据文件夹
mkdir -p /risen/soft/rocketmq/broker/store
给上述文件夹赋权
chmod 777 -R /risen/soft/rocketmq</li>
</ul>
<p><strong>运行rocketmq_namesrv容器</strong></p>
<ul>
<li>
<p><strong>X86运行命令</strong></p>
<p>docker run -d -p 9876:9876 -v /risen/soft/rocketmq/namesrv/logs:/home/rocketmq/logs --name rmqnamesrv --restart=always -e jvm_Xmx="2048M" -e jvm_Xms="2048M" -e jvm_Xmn="1024M" 60.191.64.3:9963/risen/rocketmq_namesrv_x86:latest sh mqnamesrv</p>
<p>参数解析:
-p 映射端口到宿主机(宿主机端口:容器端口),容器端口不变,根据情况修改宿主机端口
-v 映射目录到宿主机,该命令映射的是日志文件夹
--name 给容器命名
-e jvm_Xmx="2048M" 设置jvm的Xmx内存,如不设置该参数,默认为:服务器内存大于4G时,取四分之一;服务器内存小于4G时,取二分之一
-e jvm_Xms="2048M" 设置jvm的Xms内存,如不设置该参数,默认为:服务器内存大于4G时,取四分之一;服务器内存小于4G时,取二分之一
-e jvm_Xmn="1024M" 设置jvm的Xmn内存,默认为:(cpu核数*100)M与Xmx默认内存的四分之一作比较,谁小取谁
60.191.64.3:9963/risen/rocketmq_namesrv_x86:latest 使用的镜像
sh mqnamesrv 运行此镜像使用的命令
注:jvm三个参数必须同时配置或者默认,不可出现只配置部分jvm。</p>
</li>
</ul>
<ul>
<li><strong> mips64运行命令与arm64运行命令一致(注意镜像名称即可)</strong>
docker run -d -p 9876:9876 -v /risen/soft/rocketmq/namesrv/logs:/root/logs --name rmqnamesrv --restart=always -e jvm_Xmx="2048M" -e jvm_Xms="2048M" -e jvm_Xmn="1024M"
60.191.64.3:9963/risen/rocketmq_all_mips64:latest sh mqnamesrv</li>
</ul>
<p><strong>运行rocketmq_broker容器</strong></p>
<ul>
<li>
<p><strong>X86运行命令</strong>
docker run -d -p 10911:10911 -p 10909:10909 -p 10912:10912 --name rmqbroker \
--restart=always -v /data/soft/rocketmq/broker/logs:/home/rocketmq/logs -v /risen/soft/rocketmq/broker/store:/home/rocketmq/store -e "NAMESRV_ADDR=192.168.133.148:9876" -e "MAX_POSSIBLE_HEAP=200000000" -e "BROKER_ID=0" -e "BROKER_CLUSTER_NAME=DefaultCluster" -e "BROKER_NAME=broker-a" -e "LISTEN_PORT=10911" -e "BROKERIP1=192.168.133.148" -e other_conf="enablePropertyFilter=true,aclEnable=true" -e acl_conf="192.168.1.*, 192.168.133.148" -e jvm_Xmx="2048M" -e jvm_Xms="2048M" -e jvm_Xmn="1024M" 60.191.64.3:9963/risen/rocketmq_broker_x86:latest sh ./brokerStart.sh</p>
<p>参数解析:
-p 10911:10911 -p 10909:10909 -p 10912:10912 映射端口到宿主机修改宿主机端口,此处内外端口映射必须一致,否则namesrv连接不到broker,主端口为n时(例子中为:10911),其他两个端口为n+1(10912)和n-2(10909)
-v 映射目录到宿主机,该命令映射的是日志文件夹与数据文件夹
--name 给容器命名
-e "NAMESRV_ADDR=192.168.109.132:5176" 此处配置namesrv的地址,ip(不可用127.0.0.1)
-e "BROKER_ID=0"设置broker的id(0为主其他为从),单实例默认为0
-e "BROKER_NAME=broker-a"设置broker的name
-e "LISTEN_PORT=10911"设置broker的主端口
-e "BROKERIP1=192.168.109.132" 设置broker的ip地址,即本机ip
-e other_conf="enablePropertyFilter=true" 设置其他配置,如有其他配置以逗号’,’相隔
例:-e other_conf="enablePropertyFilter=true,其他配置"
-e acl_conf="192.168.1.<em>,192.168.133.148" 设置acl策略,多个ip之间以逗号’,’相隔,docker没有修改容器ip段时此参数填写172.17.0.</em>与宿主机机ip与其他ip策略,如docker修改了容器ip网段,则改为容器ip网段与宿主机ip与其他ip策略即可。
-e jvm_Xmx="2048M" 设置jvm的Xmx内存,如不设置该参数,默认为:服务器内存大于4G时,取四分之一;服务器内存小于4G时,取二分之一
-e jvm_Xms="2048M" 设置jvm的Xms内存,如不设置该参数,默认为:服务器内存大于4G时,取四分之一;服务器内存小于4G时,取二分之一
-e jvm_Xmn="1024M" 设置jvm的Xmn内存,默认为:(cpu核数*100)M与Xmx默认内存的四分之一作比较,谁小取谁
60.191.64.3:9963/risen/rocketmq_broker_x86:latest 使用的镜像
sh ./brokerStart.sh 运行此镜像使用的命令</p>
</li>
</ul>
<ul>
<li><strong>mips64运行命令与arm64运行命令一致(注意镜像名称即可)</strong>
docker run -d -p 10911:10911 -p 10909:10909 -p 10912:10912 --name rmqbroker --restart=always -v /data/soft/rocketmq/broker/logs:/root/logs -v /data/soft/rocketmq/broker/store:/root/store -e "NAMESRV_ADDR=172.20.17.105:56667" -e "MAX_POSSIBLE_HEAP=200000000" -e "BROKER_ID=0" -e "BROKER_CLUSTER_NAME=DefaultCluster" -e "BROKER_NAME=broker-a" -e "LISTEN_PORT=10911" -e "BROKERIP1=172.20.17.105" -e other_conf="enablePropertyFilter=true,aclEnable=true" -e acl_conf="172.17.0.*, 172.20.17.105" -e jvm_Xmx="2048M" -e jvm_Xms="2048M" -e jvm_Xmn="1024M" 60.191.64.3:9963/risen/rocketmq_all_arm64:latest sh ./brokerStart.sh</li>
</ul>
<p><strong>运行console容器</strong></p>
<ul>
<li>
<p><strong>X86运行命令</strong>
docker run -dt -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.133.148:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" --name=rmqconsole --restart=always -p 8080:8080 60.191.64.3:9963/risen/rocketmq_console_ng_x86</p>
<p>参数解析:
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.133.148:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false"
修改其中的ip与端口指向namesrv即可,ip使用本机地址,不可使用(127.0.0.1)
--name 给容器命名
-p 映射端口到宿主机(宿主机端口:容器端口),容器端口不变,根据情况修改宿主机端口</p>
</li>
<li><strong>mips64运行命令与arm64运行命令一致(注意镜像名称即可)</strong>
docker run -dt -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.133.148:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" --name=rmqconsole --restart=always -p 8080:8080 60.191.64.3:9963/risen/rocketmq_console_mips64</li>
</ul>
<h3>修改ACL控制</h3>
<p>进入容器,rmqbroker为创建的broker容器名称
docker exec -it -u root rmqbroker /bin/bash
查看acl配置文件
vi ../conf/plain_acl.yml
修改白名单地址,最好控制仅对应的消息中心服务与当前服务器可访问
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/0f8a594771ac1fb0f065ae8e451e08d8" alt="" />
启动顺序:rmqnamesrv——rmqbroker——rmqconsole</p>
<h3>访问控制台验证即可</h3>
<p>访问ip:(console容器的宿主机端口)
用户密码:risen/risen*123
对应组里有对应的broker即可
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/92a61a4a063e318d631b680aa87b6c5c" alt="" />
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/7f78d699128a1a71f4edb2685b5fdb53" alt="" /></p>
<h3>项目部署</h3>
<p>mkdir -p /risen/soft/tomcat #创建安装目录
unzip apache-tomcat-8.5.63.zip #解压
mv apache-tomcat-8.5.63 /risen/soft/tomcat/tomcat-message-8081</p>
<p>修改好数据配置文件信息:
项目包/WEB-INF/classes/com/risen/base/config/connection.properties
修改首页跳转地址:
项目包/WEB-INF/classes/com/risen/base/config/view-extend-message.properties
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/069e5e5c6b58feb3f72e28f3ffa3231d" alt="" />
cd /risen/soft/tomcat/tomcat-message-8081/bin/
chmod +x catalina.sh startup.sh shutdown.sh #赋予执行权限
./startup.sh #启动服务
./shutdown.sh #关闭服务
tail -f /risen/soft/tomcat/tomcat-message-8081/logs/catalina.out #查看实时日志
chmod +x /etc/rc.d/rc.local
vim /etc/rc.d/rc.local #设置开机自启
sh /risen/soft/tomcat/tomcat-message-8081/bin/startup.sh</p>
<p>nginx 配置信息
<img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/939e65123f8e1bc5f73baae9c8ce92d7" alt="" /></p>
<h3>浏览器访问 <a href="http://ip+端口+项目名">http://ip+端口+项目名</a> 访问</h3>
<p><img src="http://60.191.64.5:16100/server/index.php?s=/api/attachment/visitFile/sign/3c7a6618061e0447bf19eca4ce9ff97f" alt="" /></p>