这次我们来说说我们的 RocketMQ 的安装和参数配置, 先来看一下我们 RocketMQ 的提出和应用场景吧.
早在 2009 年, 阿里巴巴的淘宝第一次提出了双 11 购物狂欢节, 但是在 2009 年, 服务器无法承受到大规模的并发, 导致了大规模宕机停运, 当时还是 IOE 的服务架构, 也就是没有我们的消息队列中间件, 直接由 IBM 的小型机, Oracle 数据库, EMC 存储设备来提供服务的, 可想而知, 我们的大并发场景, IOE 是无法承受的, RocketMQ 是由我们的国内的阿里巴巴在 2010 年开始由我们的阿里云的王坚博士组件团队, 来处理我们的去 IOE 服务架构, 也就产生了我们的 RocketMQ 中间件, 经历了阿里巴巴内部的不断尝试和实践下, 在 2016 年 11 月, 阿里将 RocketMQ 捐献给 Apache 软件基金会, 正式成为孵化项目, 现在已经在我们 Apache 软件基金会毕业了, 并且成为了 Apache 软件基金会的顶级项目. 可想而知 RocketMQ 还是很成熟很可靠的.
说到这也就是知道了我们的 RocketMQ 可以于我们的消息中间件来传递我们的消息, 还有很多广泛的应用场景, 比如我们的异步处理事件, 分布式事务协调, 对于高并发的削峰平谷处理, MQ 的思想还是很出众的, 下面我们来先一下 RocketMQ 的安装吧.
安装单机 (运行环境 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.zip
2. 上传的到我们的服务器并解压.$ unzip rocketmq-all-4.4.0-bin-release.zip (没有 unzip 命令的, yum install unzip 安装一下)
3. 设置环境变量,$ VIM /etc/profile, 下底部添加如下代码.
- 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. 下载, 地址:
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 时, 那个什么驾驶舱页面第一个图表报错.
一路大坑带小坑的, 都踏平了, 弄了两天多, 才弄好, 官方文档.....
来源: https://www.cnblogs.com/cxiaocai/p/11779615.html