10、微服务消息传递:原理、架构与实践

微服务消息传递:原理、架构与实践

1. 微服务消息传递基础

在微服务架构中,消息传递是实现服务间通信的重要方式。它可以采用异步通信风格,例如通过网站上的查询表单获取信息,这属于查询消息类型。当商店回复查询时,会提供所需信息及相关支持信息,这种回复属于文档消息类型。而当消费者确认需求并要求商店预留商品时,发送的消息则是命令消息类型,它指示商店执行操作,且不强制要求回复。

当消费者完成购买后,系统会触发相应事件。例如,商店会发送包含数字收据的邮件感谢消费者,同时系统会通知其他部分处理订单,如处理支付、更新库存、通知发货部门等。这种多个消费者监听同一事件的架构称为发布/订阅(Pub/Sub)模式,发布者发送消息,消费者订阅并以不同方式处理。

2. 消息路由系统

消息从发布者传递到消费者需要消息路由系统,主要分为无代理和有代理两种类型。
- 无代理系统 :以ZeroMQ为例,消息直接从发布者发送到消费者。每个微服务需安装无代理引擎,且端点要知道如何相互访问。随着微服务规模扩大,端点列表管理难度增加。不过,由于没有中央消息系统,其延迟较低,但会导致发布者与消费者的时间耦合,即消费者必须处于活动状态。可使用分发器解决消费者不可用的问题,它能在多个微服务实例间分配负载,并在消费者不可用时将消息发送到其他实例。
- 有代理系统 :如ActiveMQ、Kafka和RabbitMQ,提供集中的队列来存储消息,直到被消费。这种方式实现了松耦合架构,发布者无需存储消息,可依赖代理。设计代理的使用需先了解每个应用和微服务的业务需求,不同生产者有不同的消息需求。使用代理的优势在于,若消息处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值