RocketMQ的特点
rocketMQ使用java语言开发,单机吞吐量在十万/ms, 非常适用于分布式架构。
优点:
1.rocketMQ能够使各个服务之间解耦合,mq通过数据分发的方式
A服务把消息发送给mq,B服务和C服务如果需要,就可以从mq中取消息,而不需要知道是谁把消息发过来的,这样也是解耦合。
2. 削峰
平时流量1000, 峰值流量10000,就可以先用mq将大量的请求缓存起来,然后慢慢处理。
缺点:
1.要保证系统的可用性。现在服务之间通过mq进行信息传递,那就要保证mq的可用性,不然mq宕机则整个服务不可用。
2.增加系统的复杂性。以前系统同步调用,现在使用mq进行异步调用,要如何保证消息没有遗漏?如何保证消息不被重复消费?怎么保证消息传递的顺序性?
3.要确保消息的一致性。A服务通过mq传递给B服务、C服务、D服务,如果B和C执行成功,D执行失败,要怎么保证消息处理的一致性?
rocketMQ的启动
1.启动NameServer
在bin目录下 后台启动
nohup ./mqnamesrv & 或者 sh ./mqnamesrv &
使用tail -f ~/logs/rocketmqlogs/namesrv.log查看启动日志是否成功
2.启动broker
在bin目录下 后台启动
nohup ./mqbroker -n localhost:9876 & 或者 sh ./mqbroker -n localhost:9876
使用tail -f ~/logs/rocketmqlogs/broker.log 查看启动日志是否成功
如果出现报错 nohup: ignoring input and appending output to ‘nohup.out’
需要更改bin目录下
vi runbroker.sh
vi runserver.sh
这两个文件中的JVM启动内存的设置,可能是内存不足导致的。