28 | 消息驱动:谁说消息队列只能削峰填谷?
服务间解耦
- 深入了解
- 翻译
- 解释
- 总结
消息驱动技术在微服务架构中的广泛应用展现了其重要性和灵活性。通过消息驱动实现服务间解耦,可以间接解除上下游服务之间的耦合,实现业务场景的解耦。消息广播可用于处理热点数据和构建本地缓存,延迟消息可应用于订单确认、取消订单等业务场景,实现未来某个时间执行的业务逻辑。削峰填谷则是一种平滑利用资源的手段,适合在高并发业务中使用。此外,文章还介绍了消息组件的花式玩法,如“事务性消息”、“死信队列”和“一致性哈希Routing”,并推荐了Pulsar作为一款运行成本低、灵活且具备优秀扩展性和可靠性的消息组件。了解每个消息中间件的特点,可以帮助在业务场景中做出更好的技术选型判断。整体而言,本文深入探讨了消息驱动技术在微服务系统中的多样化应用,为读者提供了深入了解消息队列的重要性和灵活性的视角。
《Spring Cloud 微服务项目实战》,新⼈⾸单¥59
全部留言(5)
- 最新
- 精选
- 快乐的小土豆想问下一般都用消息队列做异步通知,而RPC框架同步获取结果吗
作者回复: 有些rpc框架也支持异步调用,MQ的场景是“可靠消息投递”,用mq送达率比rpc要高
2022-02-165 - peter请教老师几个问题啊: Q1 消息队列怎么实现延迟任务? 消息队列只能收发消息,不能执行任务啊。是消息队列定时发消息给具体业务来实现的吗? Q2 用实时流技术来识别热点数据,一般是怎么做的?用大数据组件吗?比如spark。 Q3 “还需要借助消息分区等功能降低消息的积压量”, 消息分区怎么能降低消息积压?积压是因为没有消费;没有消费的话,即使分区也不能降低积压量啊。 Q4 消息队列的监控一般是怎么做的?消息队列一般自己没有监控软件吧,需要引入额外的监控软件吗? Q5 一键开店,是指给某个具体商户开店吗?如果是指具体商户的话,一般没多少商品啊。比如小米,算是产品比较多的啦,但也就几十种商品,SKU也不会到几十万的规模啊。一般商家的商品更是非常有限。 Q6 能否再出一章来讲解一下总结部分的几个内容? 包括“事务性消息”、“死信队列”、“一致性哈希Routing”,以及pulsa。总结部分提到的这几个部分感觉也非常重要。
作者回复: Q1:延迟消息后面会讲到 Q2:stream流分析rpc或网关日志,各个大厂有不同做法 Q3:消息分区相当于分库分表同理 Q4:有的消息组件有插件可以支持,有的cloud版都有云服务商提供了配置参数做预警 Q5:零售行业SKU数量多,线下卖场
2022-02-162 - Lee老师好,想请教一下 Q1:关于顺序消息,以rocketmq为例,如果key设置的不太合适,那么会导致,虽然分区了,但是某个分区消息堆积,该情况下如果处理? Q2:在消息选型中,老师觉得kafka(3.0抛弃zk)、rocketmq、rabbitmq、activemq 综合来看怎么去做选型比较好 Q3:消息丢失,一直会有听到消息丢失这个话题,想知道怎么保证消息不丢失以及哪些场景会发生消息丢失 谢谢
作者回复: Q1:rocketmq用的不多,如果拿rabbitmq来说,不想重置key的话,在一致性和时效要求不高可以通过TTL、私信队列或者Lazy Queues来减压 Q2: 还是需要根据具体业务要求来选择,比如说做消费DB dump file里的内容,还有大量日志处理这种消息堆积场景,就适合Kafka。其他需要“可靠投递”的,往往选rocketmq和rabbit,但activemq不用选了,消息堆积能力和性能都落后很多 Q3:可靠投递在kafka里可以选择exact once, at least once等等策略,但如果要更高的可靠投递+原子性,可以用MQ的事务型消息功能
2022-05-15 - 6点无痛早起学习的和尚分享一下消息队列在我们团队其中的一些应用: ## 延迟业务: 背景,记录用户的行为,当用户的行为 x s/m/h,未进行下一步行为的时候,我们就需要执行相关策略。 比如配置策略:当用户进入商品界面 30m 之后未点击购买,就给用户发送这个商品购买 push。 当用户点击京东 iPhone 13 pro 商品之后,这时候就会发一个延时消息(30m),30m 之后,消费这条消息回溯用户的行为是否点击了购买,如果没有点击购买,就给用户发 push。 ## 削峰填谷:拿来做业务的兜底,一个信贷业务,用户需要去授信才能拿到额度,但是授信过程中强依赖的外部资方系统出问题了(这时候再去授信肯定会去失败),但是肯定不能损失这一部分用户,这时候就一个开关控制,当依赖的资方系统出问题时,把这时候的授信用户丢进消息队列里,当资方系统恢复之后,开启消费开关,消息队列里授信用户进行授信。 这个方案就可能损失用户的用户体验,比如提示用户授信结果 xx 小时之后出来,但是保证了用户不流失。2022-02-16518
- wllq_1223电商OMS系统中,订单下载后处理过程涉及的业务比较多,如匹配仓库、匹配快递、扣减库存、打标签、匹配赠品规则、拆单、合单等等,如果从订单下载到处理整个流程同步进行将大大降低订单处理效率,下游的订单处理服务也需要更多的资源。 订单下载后入系统订单表,发送消息进行转单处理,再发送消息进行系统订单处理,大促期间只需要适当增加订单下载服务就可以扛得住大流量的冲击。2022-02-162