基于 RocketMQ 的 Dubbo-go 通信新范式

本文介绍了如何使用RocketMQ实现基于MQ的RPC通信,详细阐述了RocketMQ Request Reply特性,并探讨了其在RPC性能、复杂性和稳定性方面的权衡。此外,文章还讨论了Dubbo-go作为Go语言的RPC框架,以及它如何与RocketMQ结合,打造新一代微服务基础设施,尤其适用于对消息安全性要求高的场景。
摘要由CSDN通过智能技术生成

本文作者:郝洪范 ,Dubbo-go Committer,京东资深研发工程师。

一、MQ Request Reply特性介绍

什么是 RPC 通信?

如上图所示,类似于本地调用,A 服务响应调用 B 服务的 helloworld 方法需要怎么做?首先,A 服务的 Client Sub 收到函数调用后,会将调用方法以及参数序列化。Client Sub 通过 socket 将消息发送到服务端。服务端 B 接收到请求后,会按照协议将 request body 进行反序列化,获取将要调用的函数名以及参数。服务端调用该函数并获取到返回结果,Server Stub 将结果进行序列化后通过 socket 发送到 Client Sub,由 Client Sub 按照协议将消息反序列化,得到最终结果。

而实际上 RPC 框架会比以上流程更加复杂,还需考虑服务重试、熔断、 backup、request、路由负载均衡等。

如何利用 MQ 进行 RPC 通信?原理很简单,用 MQ 作为通信管道,模拟全双工通信

如图所示,客户端 A 想要调用服务端 B 的 helloworld 方法需要怎么做?首先,客户端会将函数名字以及参数进行序列化࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值