如果你希望在一个jvm进程内使用多个producer实例来提高发送能,我们建议:使用异步发送,并且producer实例只需要3 ~ 5个即可 对每一个producer 调用 setInstanceName,区别不同的生产者。当发送的消息设置了 tags 时,消费方在订阅消息时可以使用 tags 在 broker 做消息过滤。
本文分为三部分,第一部分实现SpringBoot与RocketMQ的整合,第二部分解决在使用RocketMQ过程中可能遇到的一些问题并解决他们,第三部分介绍如何封装RocketMQ以便更好地使用。1 WARN No appenders could be found for logger。
RocketMQ常见问题autoCreateTopicEnable机制前提条件 broker启动时会判断是否开启主题自动创建,若开启则会构建默认主题的路由信息(队列数默认8)并发送给NameServer流程 消费者发送消息,主题topicA --->发现本地缓存中无对应topic
集群部署方式单Master模式只有一个 Master节点 优点:配置简单,方便部署 缺点:这种方式风险较大,一旦Broker重启或者宕机时,会导致整个服务不可用,不建议线上环境使用多Master模式 一个集群无 Slave,全是 Master,例如 2 个 Master 或者 3
上面的场景:在电商系统中,会出现,付款成功后,准备发优惠券的时候,服务器宕机了。这种情况下,我们很容易想到用事务来保证付款和发优惠券的原子性即可:要么付款和发优惠券同时成功,要么同时失败,是不允许其他一个成功,另一个失败的。
RocketMQ 团队贡献的 RocketMQ exporter 已被 Prometheus 官方的开源 Exporter 生态所收录,提供了 Broker、Producer、Consumer 各个阶段丰富的监控指标。
RocketMQ 向其他 BU 提供的仅仅是Jar 包,例如要定制⼀个 Broker,那么只需要依赖 rocketmq-broker 这个 jar 包即 可,可通过 API 迕⾏交互,如果定制 client,则依赖 rocketmq-client 这个 jar 包,对其提供的 api 进⾏ 再封装。