乐清做网站建设公司哪家好,怎么仿一个复杂的网站,卖域名被刑事拘留,微信小程序开发的优势前言
最近工作中涉及到了RocketMQ的应用#xff0c;为方便开发决定本地搭建一套RocketMQ的使用环境。
果然实践是个好东西... VMware虚拟环境搭建
这个网上有很多教程#xff0c;只会比我写的详细有条理#xff0c;这里就不在赘述了。
虚拟机搭建好之后每次重启电脑都无…前言
最近工作中涉及到了RocketMQ的应用为方便开发决定本地搭建一套RocketMQ的使用环境。
果然实践是个好东西... VMware虚拟环境搭建
这个网上有很多教程只会比我写的详细有条理这里就不在赘述了。
虚拟机搭建好之后每次重启电脑都无法正常使用明明前一秒还在愉悦的操练着。 如上图就是不再快乐的现象如下图就是可以继续快乐的解决方法。
其实是NAT的服务未启动导致的。
计算机右击选择管理 RocketMQ搭建
官网下载 下载 | RocketMQ
我这里以4.9.5的版本进行的搭建 上传解压
上传到自定义的目录下解压我的是/app/rocketmq/rocketmq-all-4.9.5-bin-release 仅做参考
下图是解压后的目录结构 调整运行内存配置
由于感情深厚的电脑性能有限所有bin/runserver.sh脚本里的内存配置需要调小些 jdk是1.8的版本所以只改这里就好了。
同样的修改bin/runbroker.sh脚本里的内存配置 启动服务
RocketMQ有两类服务需要启动一类是nameService一类是brokerService。 #启动nameService cd /app/rocketmq/rocketmq-all-4.9.5-bin-release nohup bin/mqnamesrv #启动brokerService cd /app/rocketmq/rocketmq-all-4.9.5-bin-release nohup bin/mqbroker #查看启动日志 tail -f nohup.out 成功日志如下 快速体验
RocketMQ提供了可以快速体验消息收发功能的脚本 cd /app/rocketmq/rocketmq-all-4.9.5-bin-release/bin #生产者发消息 tools.sh org.apache.rocketmq.example.quickstart.Producer #消费者消费消息 tools.sh org.apache.rocketmq.example.quickstart.Consumer RocketMQ Dashboard 搭建
RocketMQ Dashboard 是官方提供的一款可视化管理服务
官网下载
下载 | RocketMQ 官方只提供了源码需要自行使用maven进行编译。
修改配置 上传解压
上传至自定义的目录并解压我的是/app/rocketmq/rocketmq-dashboard-1.0.0 仅做参考
maven编译 cd /app/rocketmq/rocketmq-dashboard-1.0.0 mvn clean package -Dmaven.test.skiptrue 启动服务
编译之后该目录会出现target文件夹target内有打好的jar包 #执行命令启动dashboard服务 java -jar rocketmq-dashboard-1.0.0.jar 打印这个日志说明成功了上面显示了端口8800 若浏览器输入地址后提示无法访问此网站则是由于虚拟机防火墙导致的简单粗暴就是把防火墙关掉并且开机禁止自启要么就放开端口记得重启防火墙不然不生效。 #检查防火墙是否启用 firewall-cmd --state #启动防火墙 systemctl start firewalld #停止防火墙 systemctl stop firewalld #重启防火墙 systemctl restart firewalld #开机自启动防火墙 systemctl enable firewalld #禁止开机自启动防火墙 systemctl disable firewalld #打开8800端口添加永久规则 firewall-cmd --zonepublic --add-port8800/tcp --permanent #关闭8800端口移除永久规则 firewall-cmd --zonepublic --remove-port8800/tcp --permanent 访问
然后欢迎来到Dashboard RocketMQ 分布式集群搭建
你知道的我是不会满足于单节点部署的
虚拟机准备
首先对虚拟机进行克隆这样每台机子的信息装的插件等等都是一样的用之前只需要改一下主机名称、静态的ip地址就可以了。 #修改主机名称 hostnamectl set-hostname centos2 #查看主机名称 hostname #修改静态IP cd /etc/sysconfig/network-scripts/ vi ifcfg-ens32 集群配置文件
贴心的官方为我们提供了多种集群部署的配置文件模板 2m-noslave2主无从
2m-2s-sync2主2从同步
2m-2s-async2主2从异步
dledgerdledger高可用集群
修改配置
这次按照2m-2s-async部署
主机用途1用途2centos1部署NameServer1部署Dashboardcentos2部署NameServer2部署BrokerServer-aBrokerServer-b-scentos3部署NameServer3部署BrokerServer-bBrokerServer-a-s
第一组broker服务
broker-a.properties broker-b-s.properties 第二组broker服务
broker-b.properties broker-a-s.properties 注意store的路径不能一样不然同一台机子启动第二个broker服务时会报错如下 java.lang.RuntimeException: Lock failed,MQ already started at org.apache.rocketmq.store.DefaultMessageStore.start(DefaultMessageStore.java:240) at org.apache.rocketmq.broker.BrokerController.start(BrokerController.java:855) at org.apache.rocketmq.broker.BrokerStartup.start(BrokerStartup.java:63) at org.apache.rocketmq.broker.BrokerStartup.main(BrokerStartup.java:57) 这是因为abort是RocketMQ判断服务是否正常关闭的一个标识文件正常情况下会在启动时创建在关闭服务时删除。但如果遇到类似服务器宕机或者kill -9等非正常关闭服务的情况这个abort文件不会删除因此RocketMQ就可以据此判断上一次服务是否正常关闭非正常则后续就会做一些数据恢复的操作。
启动服务 #第一组服务启动 cd /app/rocketmq/rocketmq-all-4.9.5-bin-release/ nohup bin/mqbroker -c ./conf/2m-2s-async/broker-a.properties nohup bin/mqbroker -c ./conf/2m-2s-async/broker-b-s.properties #第二组服务启动 cd /app/rocketmq/rocketmq-all-4.9.5-bin-release/ nohup bin/mqbroker -c ./conf/2m-2s-async/broker-b.properties nohup bin/mqbroker -c ./conf/2m-2s-async/broker-a-s.properties 检查集群服务 cd /app/rocketmq/rocketmq-all-4.9.5-bin-release/bin mqadmin clusterList Dashboard配置
修改application.properties文件的rocketmq.config.namesrvAddr属性 cd /app/rocketmq/rocketmq-dashboard-1.0.0/src/main/resources vi application.properties 修改后重新编译即可 若出现下面报错则需要添加环境变量 vi /etc/profile export NAMESRV_ADDRlocalhost:9876 source /etc/profile 出现下面报错则需要放开对应的端口。
网上很多说broker的配置要添加brokerIP1xx.xx.xx.xx咱们是用的本机不是云服务器所有不用。 需开放的端口 每个服务器需开放七个端口 namesrv9876 broker主节点10911、10909、10912 broker从节点11011、11009、11012 端口规则说明 namesrv默认端口9876 broker配置的listenPort 端口10911 vip通道端口为listenPort - 2 10909 ha通道端口为listenPort 1 10912 其他命令 查看所有的topicsh mqadmin topicList -n nameserver地址 查看自定的topicsh mqadmin topicList -n nameserver地址 | grep YourTopicName 查看消费者信息sh mqadmin consumerProgress -n nameserver地址 查看消费者信息sh mqadmin consumerProgress -n nameserver地址 -g yourConsumerGroup 查看Broker状态sh mqadmin brokerStatus -n nameserver地址 -b brokerIP 未完待续...