2021-05-07

RocketMQ    服务端应用 一般服务器规模较小,极少数万级。单个客户端处理消息量大,注重吞吐量

https://www.aliyun.com/product/rocketmq?spm=5176.10695662.746107.1.15fb3666YjiJhw

https://help.aliyun.com/document_detail/102996.html?spm=a2c4g.11186623.6.584.41ed447ddvqHLc  SDK 接入

https://github.com/aliyunmq?spm=a2c4g.11186623.2.13.13d66dc0dQgAP6&tab=repositories   GitHub http协议支持PHP  ,目前 TCP 还不支持PHP 

https://help.aliyun.com/document_detail/60953.html?spm=5176.ons.0.0.4fcb6c5ceYrVDA  客户端

https://help.aliyun.com/document_detail/29533.html?spm=a2c4g.11186623.6.542.5eb04fed5wuuZw 名词解释

https://common-buy.aliyun.com/?commodityCode=onsbag#/buy  定价标准

https://help.aliyun.com/document_detail/95837.html?spm=a2c4g.11186623.2.10.5cac5886hyWgUA  Topic 与 Tag 定义规范

https://help.aliyun.com/document_detail/29543.html?spm=a2c4g.11186623.2.14.41295a8dM6WAx0 消息过滤


全局顺序与分区顺序对比

在控制台创建顺序消息使用的不同类型 Topic 对比如下。

消息类型对比

Topic 的消息类型

支持事务消息

支持定时/延时消息

性能

无序消息(普通、事务、定时/延时消息)

最高

分区顺序消息

全局顺序消息

一般

发送方式对比

消息类型

支持可靠同步发送

支持可靠异步发送

支持 Oneway 发送

无序消息(普通、事务、定时/延时消息)

分区顺序消息

全局顺序消息

注意事项

  • 顺序消息暂不支持广播模式。

  • 同一个 Group ID 只能对应一种类型的 Topic,即不能同时用于顺序消息和无序消息的收发。

  • 顺序消息不支持异步发送方式,否则将无法严格保证顺序。

  • 对于全局顺序消息,建议创建实例个数 >=2。 同时运行多个实例的作用是为了防止工作实例意外退出时,业务中断。 当工作实例退出时,其他实例可以立即接手工作,不会导致业务中断,实际同时工作的只会有一个实例。

 

Topic 与 Tag 定义规范

  • Topic:消息主题,通过 Topic 对不同的业务消息进行分类。

  • Tag:消息标签,用来进一步区分某个 Topic 下的消息分类,消息队列 RocketMQ 允许消费者按照 Tag 对消息进行过滤,确保消费者最终只消费到他关注的消息类型。

Topic 与 Tag 都是业务上用来归类的标识,区分在于 Topic 是一级分类,而 Tag 可以说是二级分类,关系如图所示。

区分

您可能会有这样的疑问:到底什么时候该用 Topic,什么时候该用 Tag?

建议您从以下几个方面进行判断:

  • 消息类型是否一致:如普通消息,事务消息,定时消息,顺序消息,不同的消息类型使用不同的 Topic,无法通过 Tag 进行区分。

  • 业务是否相关联:没有直接关联的消息,如淘宝交易消息,京东物流消息使用不同的 Topic 进行区分;而同样是天猫交易消息,电器类订单、女装类订单、化妆品类订单的消息可以用 Tag 进行区分。

  • 消息优先级是否一致:如同样是物流消息,盒马必须小时内送达,天猫超市 24 小时内送达,淘宝物流则相对会会慢一些,不同优先级的消息用不同的 Topic 进行区分。

  • 消息量级是否相当:有些业务消息虽然量小但是实时性要求高,如果跟某些万亿量级的消息使用同一个 Topic,则有可能会因为过长的等待时间而『饿死』,此时需要将不同量级的消息进行拆分,使用不同的 Topic。

示例

以天猫交易平台为例,订单消息,支付消息属于不同业务类型的消息,分别创建 Topic_Order 和 Topic_Pay,其中订单消息根据商品品类以不同的 Tag 再进行细分,如电器类、男装类、女装类、化妆品类,最后他们都被各个不同的系统所接收。

通过合理的使用 Topic 和 Tag,可以让业务结构清晰,更可以提高效率。

关于如何通过 Tag 进行消费端的过滤,

 

以下图电商交易场景为例,从客户下单到收到商品这一过程会生产一系列消息,比如订单创建消息(order)、支付消息(pay)、物流消息(logistics)。 这些消息会发送到 Topic 为 Trade_Topic 的队列中,被各个不同的系统所接收,比如支付系统、物流系统、交易成功率分析系统、实时计算系统等。 其中,物流系统只需接收物流类型的消息(logistics),而实时计算系统需要接收所有和交易相关(order、pay、logistics)的消息。

说明:针对消息归类,您可以选择创建多个 Topic, 或者在同一个 Topic 下创建多个 Tag。 但通常情况下,不同的 Topic 之间的消息没有必然的联系,而 Tag 则用来区分同一个 Topic 下相互关联的消息,比如全集和子集的关系,流程先后的关系。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值