关于java:RocketMQ

51次阅读

共计 1557 个字符,预计需要花费 4 分钟才能阅读完成。

前言:学习三板斧,实践实战小总结;

装置

自己采纳 3 台云服务器(因为本人的电脑内存优先,无奈满足日后的需要,索性一狠心买了 3 台云服务器)

单机

  • 1. 确保本地的 jdk 版本是 1.8 java -version 查看(非 1.8 能够看作者 linxu 命令那篇文章自行装置)
  • 2. 官网下载 rocketmq-all-4.7.1-bin-release

tar zxvf rocketmq-all-4.7.1-bin-release.tar.gz

  • 3. 须要启动两个服务
cd rocketmq-all-4.7.1-bin-release/
后盾启动 namaserver
nohup sh bin/mqnamesrv & 
查看日志
tail -400f ~/logs/rocketmqlogs/namesrv.log
后盾启动, 因为阿里云人家内存多得是,所以虚拟机参数很大,你要本人手动改小一点;vim bin/runserver.sh
vim bin/runbroker.sh
里边的参数依据各人配置设置
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
后盾启动 broker
nohup sh bin/mqbroker -n localhost:9876 &
查看日志
tail -400f ~/logs/rocketmqlogs/broker.log

4. 测试是否搭建胜利

发送发放测试
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
生产方测试
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
看到一行一行的数据在控制台输入证实胜利

敞开
sh bin/mqshutdown namesrv(broker)

集群搭建

nameserver 是无状态的,节点之间不须要通信;
broker 分为主从,依据 broker name 确定一组,依据 id 分主从;0 主其余从;
集群模式

2m2s 模式 sync

1. 设置 host 为了不便当前的集群治理配置;间接应用域名就能够
2. 重启网卡
systemctl restart network
3. 敞开防火墙
systemctl stop firewalld.service
4. 创立音讯存储门路

 mkdir /data/rocketmq/store -p
 mkdir /data/rocketmq/store/commitlog
 mkdir /data/rocketmq/store/index
 mkdir /data/rocketmq/store/consumequeue 

5. 配置 broker 配置文件

集群治理

实践

角色


1.producer 生产者
2.nameserver 注册核心 留神 nameserver 之间是不连通的可减少效率
3.broker 用于接管生产者音讯
4.consumer 消费者
对于一个生产者在发行小的时候咱们须要通过 nameserver 去发现具体要发送给那个 broker(类比注册核心 zk);那 nameserver 是怎么晓得 broker 的,每个 broker 启动会本人想 nameserver 中进行注册

5.topic 分区音讯的类别;
6.tag 相当于 topic 下边的子目录
7.message queue 队列,topic 的分片
consumer 数量 <queue;
8.offset 偏移量

实战

已放入到 git

总结

正文完
 0