如何设计一个MQ消息队列?
1.先上图,明确一个消息发送和消费的流程2.消息消息首先需要定义消息协议,比如ActiveMQ,Stomp,XMPP等3.消息协议定义好了,明确消息队列需要满足什么场景是否需要保证消息可靠性,如果需要就要做存储的高可用;是否需要支持同步和异步消息;是否需要保证消息的顺序;是否需要支持延时消息具体可以参照很多开源实现的特性,比如RocketMQ就是高可靠的,Kafka就是高吞吐量的,但是不是高可靠的 。
如何使用消息队列解决分布式事务?
【java懒洋洋,消息队列】有两种方案 。方案一 本地消息事务表生产方需要增加一张事务消息表,具体步骤可以这样实现:1.生产方执行业务逻辑并在消息表中插入一条事务记录,这两个操作是在一个本地事务中的2.启动一个后台线程定时轮询消息表,把消息发送给消息队列3.直到发送成功,删除消息表中的记录 。方案二 需要消息队列支持,业务方提供回查接口1.生产方发送prepared消息给消息队列2.在本地事务中业务逻辑3.根据执行结果,确认或者取消prepared消息4.消息队列会确保一定会确认或取消prelared消息的,消息队列会不断询问生产方执行结果,这个就需要生产方提供一个类似的回调函数 。
推荐阅读
- 收不到消息怎么办,微信收不到消息怎么回事
- 附T系列消息 说锤子已死的,我就等着明年
- 通辽房价走势最新消息,内蒙古通辽的房价怎么样
- 苹果11换屏提示多久消失,苹果手机屏幕上微博推送的消息在不解屏的情况下会不会自动消失
- 沈阳10月房价走势最新消息,最近沈阳房价下跌
- 济南2017房价走势最新消息,近期济南楼市降温明显
- 邢台威县房价2018最新消息,在邢台威县100平的房子
- 为什么锤子微信的新消息提示音乐不一样
- 放消息说 T3 不会发布
- iphone14最新消息知乎,如何看待iphone去耳机孔 知乎