java架构之路-(MQ专题)RocketMQ从入坑到集群详解

  此次咱们来讲说咱们的RocketMQ的安装和参数配置,先来看一下咱们RocketMQ的提出和应用场景吧。node

  早在2009年,阿里巴巴的淘宝第一次提出了双11购物狂欢节,可是在2009年,服务器没法承受到大规模的并发,致使了大规模宕机停运,当时仍是IOE的服务架构,也就是没有咱们的消息队列中间件,直接由IBM的小型机、Oracle数据库、EMC存储设备来提供服务的,可想而知,咱们的大并发场景,IOE是没法承受的,RocketMQ是由咱们的国内的阿里巴巴在2010年开始由咱们的阿里云的王坚博士组件团队,来处理咱们的去IOE服务架构,也就产生了咱们的RocketMQ中间件,经历了阿里巴巴内部的不断尝试和实践下,在2016年11月,阿里将RocketMQ捐献给Apache软件基金会,正式成为孵化项目,如今已经在咱们Apache软件基金会毕业了,而且成为了Apache软件基金会的顶级项目。可想而知RocketMQ仍是很成熟很可靠的。git

  说到这也就是知道了咱们的RocketMQ能够于咱们的消息中间件来传递咱们的消息,还有不少普遍的应用场景,好比咱们的异步处理事件,分布式事务协调,对于高并发的削峰平谷处理,MQ的思想仍是很出众的,下面咱们来先一下RocketMQ的安装吧。github

安装单机(运行环境JDK版本:1.8.0_221以上)数据库

  1.下载。rocketmq版本:rocketmq-all-4.4.0-bin-release.zip,地址 https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zipapache

  2.上传的到咱们的服务器并解压。$ unzip rocketmq-all-4.4.0-bin-release.zip (没有unzip命令的,yum install unzip安装一下)vim

  3.设置环境变量,$ vim /etc/profile,下底部添加以下代码。centos

export ROCKETMQ_HOME=/usr/local/software/rocketmq-all-4.4.0 
export PATH= $ROCKETMQ_HOME/bin:$PATH

保存,并刷新环境变量 $ source /etc/profile服务器

   4.修改一下咱们的配置,现有的配置稍微有点坑,不修改配置,可能启动不成功的。切换到咱们的RocketMQ目录下,$  vim bin/runbroker.sh 和咱们的$ vim bin/runserver.sh架构

 修改成256M便可并发

  注意两个配置都要改runbroker.sh和runserver.sh,这里我只是根据咱们的虚拟机大小来设置的,生产的环境能够根据配置自行设置大小。后面会说参数的做用。

   4.开启服务。

  启动nameserver $ nohup sh bin/mqnamesrv -n 120.27.13.177:9876 & 

  启动broker 

  不指定配置文件 $ nohup sh bin/mqbroker -n 120.27.13.177:9876 autoCreateTopicEnable=true & //极力不推荐

  指定配置文件 $ nohup sh bin/mqbroker -n 120.27.13.177:9876 -c conf/broker.conf &//修改在配置文件内加入autoCreateTopicEnable=true,否则发送消息会失败。

  5.测试是否成功

$ export NAMESRV_ADDR=120.27.13.177:9876测试发送端,多个能够用英文,来区别
例如$ export NAMESRV_ADDR = 120.27.13.177:9876,120.27.13.178:9876

    $ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer 测试消费端

  $ sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

    6.关闭服务

  $ sh mqshutdown broker ‐‐关闭broker

  $ sh mqshutdown namesrv ‐‐关闭namesrv

 总结

   上述安装弄了好几个小时,日,这个是官方文档地址:http://rocketmq.apache.org/docs/quick-start/,谁能按照他的说明安装成功联系我一下,反正我是没有成功

  1,可能遇到内存不够用的状况,默认配置是8G的...哪来钱买那么大的服务器。

  2,服务启动nohup sh bin/mqnamesrv -n 120.27.13.177:9876 & 官网说localhost,若是你有多个网卡,你就蒙圈了...

  3,官网彻底没告诉你指定配置文件,也没说须要配置autoCreateTopicEnable=true,没有这个你怎么建立Topic,autoCreateTopicEnable=true意思就是容许建立topic。

  说到底就是官网彻底就是坑爹不给力的。

 安装集群(运行环境JDK版本:1.8.0_221以上)

  上面走过来一路的坑,咱们如今来看看集群时如何配置的吧,这里捎带说一下,尽力优先启动nameserver,而后启动broker,由于咱们的每个broker服务须要将信息注册到咱们的nameserver上去的。

  准备2个虚拟机分别是虚拟机centos-node-01与centos-node-02,分别部署2个 NameServer,并在每台机器上分别启动一个Master和一个Slave,互为主备,在主目录下的conf文件夹下提供了多种broker配置模式,分别有:2m-2s-async,2m-2s- sync,2m-noslave,就是咱们的咱们两主两从同步,两主两从异步和咱们的两主无从。接上面的配置来讲,简单的我就不提了。
  1.准备两台服务器,安装jdk1.8+环境,下载并解压咱们的rocketMQ。

 

   2.将每台服务器上的配置文件复制出来,由于咱们每台服务器要启动一个主节点,一个从节点,咱们开始复制命令。

  $ cp broker.conf master.conf ###做为主节点配置

  $ cp broker.conf slave.conf ### 从节点配置。

  两台服务器都要复制。

  将master.conf修改,master.conf配置以下:

   slave配置以下

   记得修改bin下的runserver和runbroker,要不内存又不够了。

  3.启动

  先分别启动两台服务器的nameserver,$ nohup sh bin/mqnamesrv & 

  启动broker-master

  nohup sh bin/mqbroker -c conf/master.conf &

  启动broker-slave

  nohup sh bin/mqbroker -c conf/slave.conf &

  4.查查看集群监控状态 $ sh mqadmin clusterlist -n 192.168.241.198:9876

总结

  这个集群也不是很顺利,搭建了一下午。切记几个问题,端口别弄重复了,文件保存路径别重复了,记得互为主备,有一个小窍门就是,你先配置一个单机,而后测试是否成功了,而后复制配置文件,而后将这些配置文件直接传到另外一个服务器上,改一下名称就能够了(互为主备那个名称)。

安装可视化界面:(一路小坑已踏平)

  1.下载,地址:https://github.com/apache/rocketmq-externals/tree/release-rocketmq-console-1.0.0

  2.导入咱们的编译器IDEA或者Eclipse,这个玩意在咱们本地启动就能够的。

  3.修改配置application.properties,写入咱们的集群地址,多个IP用分号分隔。

rocketmq.config.namesrvAddr=114.215.144.143:9876;115.29.149.133:9876

  修改pom文件将mq版本修改和咱们集群的版本一致

<rocketmq.version>4.4.0</rocketmq.version>

  4.不知道不少博主怎么弄的,写到这了就说能够启动了,反正我是报错了,不知道大家报错了吗?至少我单机的时候启动有一个界面是报错的。去咱们的集群服务器。在conf/broker.conf文件添加brokerIP1=115.29.149.133,IP1=当前服务器的的IP地址。

  5.启动走起~!

 顺带说一下啊,右上角那个按钮是调整语言的,我当时没加brokerIP1时,那个什么驾驶舱页面第一个图表报错。 

  一路大坑带小坑的,都踏平了,弄了两天多,才弄好,官方文档.....

  过去的这几天我说了RabbitMQ和RocketMQ的安装,后续我会逐步去说他们的实际操做,还有一些高级用法,感谢阅读。

最进弄了一个公众号,小菜技术,欢迎你们的加入

相关文章
相关标签/搜索