这两天接触了rocketmq.基于黑马的好客租房项目,此前学过rabbitmq的课程,所以相似性比较强。
笔记方面,官方给的很全面到位,小结下学习经历体会。
安装方式使用docker很方便,直接起两个服务,broker端和server端,再启动一个控制的客户端,注意点,配置文件需要改。
broker是负责存储数据的地方,会包含很多个topic。
改完配置文件记得重启这个,
bin/mqbroker -c /haoke/rmq/rmqbroker/conf/broker.conf
point3
这里的事务机制需要理解,
1 发送方给mqserver发消息
2 mqserver给发送方返回ack确认,此时称为半消息。
3 发送方开始执行本地事务逻辑。
4 发送方根据本地事务逻辑的执行结果向mqserver进行二次提交,是commit表示可投递,是rollback,删除消息,订阅方不会收到消息。
567步骤不管了。
point4 理解集群和广播
集群:一个分组中所有消费者消费的内容合起来才是订阅消息的全部内容。
广播:一个组里所有消费者都可以获取到订阅的topic全部消息,一个消息被多次分发,被多个consumer消费。
默认设置集群模式。
point5 重复消息的解决
处理思路1,
消费端处理信息业务逻辑保持幂等性。不管来多少条重复信息,最后处理结果都一样。
处理思路2,
保证每条消息都有唯一编号且保证消息处理成功与去重表的日志同时出现。
简单点说,利用一张日志表记录已经处理好的消息的id,如果新到的消息id已经在日志表中,不在处理这条信息。
RocketMQ不保证消息不重复,如果业务需要保证严格的不重复消息,需要业务端去重。