![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RocketMQ
文章平均质量分 65
z.jiaminf
程序猿一枚
展开
-
RocketMQ如何保证消息的顺序性?
这时候客户端A就需要把自己加在Broker上的锁解掉,而在这个解锁的过程中,就需要确保消息不能在消费过程中就被移除了,因为如果客户端A可能正在处理一部分消息,但是位点信息还没有提交,如果客户端B立马去消费队列中的消息,那存在一部分数据会被重复消费。即同一个队列内的消息可以做到有序,但是不同队列内的消息是无序的!通过上面的介绍,我们知道了Rocket的顺序消费是通过在消息者上多次加锁实现的,这种方式带来的问题就是会降低吞吐量,并且如果前面的消息阻塞,会导致更多消息阻塞,使用,顺序消息需要慎用。原创 2024-03-08 16:02:30 · 869 阅读 · 0 评论 -
RocketMQ的事务消息是如何实现的?
那如果用事务消息,先提交一个半消息,然后执行本地事务,在发送一个commit的半消息。4.回滚事务消息:如果本地事务执行失败,应用程序通知RocketMQ Broker 回滚该事务,RocketMQ将该消息的状态从‘prepared’改为‘rollback’,并将该消息从事务消息日志中删除,从而保证该消息不会被消费者消费。在发送事务消息时,首先向RocketMQ Broker 发送一条‘half消息’(半消息),半消息将被存储在broker端的事务消息日志中,但是这个消息还不能被消费者消费。原创 2024-03-08 15:34:53 · 617 阅读 · 0 评论 -
RocketMQ的架构是怎么样的?
一个Topic可以有多个Queue,每个Queue都是独立的存储单元,Producer 发送的消息会被存储到对应的Queue中,Consumer从指定的Queue中消费消息。4.NameServer:名称服务,负责维护Broker 的元数据信息,包括Broker地址,TGopic和Queue等消息。5.Topic:消息主题,是消息的逻辑分类单位。producer将消息发送到特定的Topic中,Consumer从指定的Topic中消费消息。3.Consumer:消息消费者,负责从Broker消费消息。原创 2024-03-08 14:41:06 · 392 阅读 · 0 评论