9、微服务通信与开发全解析

微服务通信与开发全解析

1. 异步消息通信

在微服务架构中,异步消息通信是实现服务间高效交互的重要方式。Kafka 是用于发布 - 订阅类型通信的常用消息基础设施。在 Kafka 集群里,有一个充当集群控制器的代理,负责集群管理操作,像给代理分配分区、检测代理故障等。一个分区会分配给多个代理,每个分区都有一个主代理。由于分区在多个代理间复制,且当现有分区主代理不可用时能指定新主代理,所以 Kafka 消息传递具备高可用性。

除了 Kafka,还有其他异步通信协议,如 MQTT、STOMP 和 CoAP 等,但它们在微服务场景中没有特别突出的特性。

2. 同步与异步通信对比

同步和异步通信各有适用场景。同步通信适用于构建请求 - 响应式交互的服务,比如在线零售中的产品搜索服务,用户提交搜索查询后希望立即看到结果,就需要同步通信。而异步通信更适合消息是事件驱动且客户端不期望立即得到响应的场景,像订单处理这类本身就是异步的操作。

很多资料强调同步通信不好,应只使用异步通信来实现服务自治,但这种观点是错误的。大多数同步消息实现基于完全非阻塞的消息架构,客户端发送请求并注册回调,线程会返回,收到响应后再关联原始请求并处理。因此,要根据具体用例选择通信方式。

通信方式 适用场景 特点
同步通信 短时间交互的请求 - 响应式服务 客户端发送请求后等待响应,线程可能阻塞(实
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值