rocket MQ

消息队列有:

activeMq、rabbitmq、rocketmq、kafka

根据资料显示从性能和实战中rocketmq 相对来说比较有优势,首先rocketmq是java语言开发方便java工程师二次开发,activemq也是java,他的优势是发展历程比较久,相关资料文献比较完备,但是对于并发量和分布式的业务处理,出自阿里的rocketmq更胜一筹。(黑马教程视频截图)

总结rocketmq就是:

优点:解耦、削峰(削弱瞬时并发对服务器的压力)、数据分发

缺点:

        系统可用性降低。一点MQ宕机,就会对业务造成影响

        如何保证MQ的高可用?

        系统复杂度提高。由服务之间远程同步到现在通过MQ进行异步调用

        如何保证消息没有被重复消费?

        怎么处理消息丢失?

        怎么保证消息传递的顺序性?

        一致性问题。

        如mq给A、B、C三个系统发送消息。如果BC处理成功,A处理失败,怎么保证消息数据处理的一致性?

安装

Release Notes - Apache RocketMQ - Version 4.9.1 - Apache RocketMQ

或者

 wget https://archive.apache.org/dist/rocketmq/4.6.0/rocketmq-all-4.6.0-bin-release.zip

下载二进制文件(根据需要下载即可)

将下载的zip包上传到服务器使用命令解压:

unzip rocketmq-all-4.9.1-bin-release.zip

启动nameserv,进入到bin目录下:

nohup sh ./mqnamesrv &

# 查看启动日志

tail -f ~/logs/rocketmqlogs/namesrv.log

启动broken

nohup sh ./mqbroker -n localhost:9876 &
#查看启动日志

修改mq启动占用内存,mq默认启动占用为8G,根据实际需求修改

vim runbroker.sh

vim runserver.sh

关闭:

mqshutdown broker
mqshutdown namesrv

测试mq消息

# 开启两个窗口

# 临时环境变量,窗口1

export NAMESRV_ADDR=localhost:9876

sh ./tools.sh org.apache.rocketmq.example.quickstart.Producer #生产消息

# 窗口2
export NAMESRV_ADDR=localhost:9876

sh ./tools.sh org.apache.rocketmq.example.quickstart.Consumer # 消费消息

待续。。。

猜你喜欢

转载自blog.csdn.net/wdz985721191/article/details/120689528
MQ