RocketMQ
mxlmxlmxl33
这个作者很懒,什么都没留下…
展开
-
RocketMQ---消息流
RocketMQ的基本功能是消息转发,除此之外还支持事务消息,延迟消息以及分布式消息存储。任何消息在发送到Broker的master节点都要先落到commitlog中持久化,事务消息、延迟消息、主从日志同步模块从commitlog中读取数据进行处理。消息流转顺序如下:1、生产者产生消息,发送到broker2、broker先将数据持久化到commitlog日志中,如...原创 2018-12-04 20:47:52 · 637 阅读 · 0 评论 -
RocketMQ-负载均衡
RocketMQ是分布式消息服务,生产和消费负载均衡都是在客户端完成,本文分别介绍生产与消费的负载均衡策略。部署结构拓扑图一、路由信息 路由记录了broker集群节点的通讯地址、broker名称和读写队列数量等信息。 写队列writequque表示生产者可以写入的队列个数,如果不做特别配置默认是4,队列号从0开始,如果是4个,queueId就是0,1,2,3。br...原创 2019-01-06 23:03:33 · 5245 阅读 · 0 评论 -
RocketMQ-broker消息存储与消息队列
broker消息存储与消息队列一、场景 有两个生产者produer1、producer2,分别生产topicA和topicB的消息,topicA与topicB分别有两个消费者consumer1、consumer2。二、commitlog commitlog是broker消息的持久化文件,消息写入commitlog是顺序的。每条消息中记录了topic、queue...原创 2019-01-02 20:33:44 · 833 阅读 · 0 评论 -
RocketMQ-消费者broker节点选择策略
消费端选择消费队列的规则在RocketMQ-负载均衡中已经解释清楚,在broker主从部署结构上,物理消息会被同步到多个slave节点上,因此消费端如何从master节点和多个slave节点中选出一个broker节点进行消费需要一个策略。 假设broker有一个master节点与两个slave节点,拉取步骤如下: (1)consumer第一次默认...原创 2019-01-31 16:34:35 · 3607 阅读 · 2 评论 -
RocketMQ-延迟消息
消息产生后,生产者希望在间隔一段时间后被消费的场景可以使用定时消息,RocketMQ目前不支持自定义延迟时间,但可以指定延迟等级,可以选择18个延迟等级,分别是对应延迟时间是1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h。 RocketMQ的延迟消息主题是SCHEDULE_TOPIC_XXXX,18...原创 2019-02-15 13:51:51 · 829 阅读 · 0 评论 -
RocketMQ-事务消息
一、事务消息实现方式 应用使用事务消息的步骤: (1)应用发送消息,使用prepare字段标示准备消息 (2)应用执行本地业务逻辑 (3)应用发送事务提交或回滚消息 broker收到prepare消息后会将topic替换为RMQ_SYS_TRANS_HALF_TOPIC,queueId替换为0,然后写入commitlog...原创 2019-02-15 20:23:41 · 256 阅读 · 0 评论 -
RocketMQ-消息消费
RocketMQ消费模式分为集群消费模式与广播消费模式,生产者产生某个topic的消息后,在集群模式下,topic下的消息可以被同一分组下的多个实例消费掉,一条消息至少被一台实例消费成功便可;广播模式是每条消息必须被分组下的每台实例成功消费,每个实例维护自己的消费进度。一、集群消费模式 producer在生产消息时会根据负载均衡策略为消息指定队列编号(queu...原创 2019-02-12 11:18:23 · 668 阅读 · 0 评论 -
RocketMQ-顺序消息
在某些业务场景下消息并非是独立的,需要保证某些消息消费的先后顺序,如电商下单场景,创建订单、付款和订单完成三个状态消息需要按照依次消费。RocketMQ解决此问题的方案是生产者顺序的将消息写入相同的队列中,然后由同一个消费者消费,如下图所示。 顺序消息示意图 生产者写入消息会根据自己的业务逻辑将存在先后逻辑的消息写入相同队列,使用...原创 2019-02-12 17:40:30 · 221 阅读 · 0 评论