最近浏览 帖子[1] 的时候看到一个有意思的吐槽。
大概意思是架构师没有选用 RPC 框架来做服务间调用,而选择用 MQ 来代替。是不是很意外?
当然不出意外的,评论区炸了!
现在提出一些疑问:
-
这个架构师的做法对吗 ?
-
MQ 是否能做 RPC 调用 ?
RPC 框架的职责
回答上面问题之前,稍微捋一下 RPC 框架。目前市面上比较流行的 RPC 框架其实并不多。
-
Java: SpringCloud,Dubbo 等
-
Go: Dubbogo,go-micro,rpcx,go-zero 等
-
其他:Thrift,gRPC 等
当然还有其他的一些框架,这里就不再罗列。虽说 RPC 多如牛毛,但是大家干的事情基本都差不多,都是稳定,高效、准确的进行服务间远程调用。
说起 RPC 应该大部分人下意识会联想到 gRPC,不过 gRPC 只提供的了服务间通信的能力,但却没有开源对应的服务治理的能力,需要进行二次开发。Thrift 也是同样的问题。
下面以 Dub