作者回复: 你讲得也是一个原因
作者回复: http是一种基于tcp的web通讯协议,json是一种消息格式(不是通讯协议),soap是一种web service的消息格式(soap ws通常基于http),rpc是远程过程调用,restful是web service的一种风格(基于http/json)。本质上这些东西都是帮我们实现远程调用分布在另外一台机器上的应用的某个功能,需要通信协议(http or tcp)+ 消息格式(json or soap),本质上都可以称为远程过程调用rpc,restful也是一种特殊的rpc。确有点搞,要靠经验积累要一定程度自然分清楚。
作者回复: 大部场景restful就可以,restful是目前业界趋势。如果业务场景对性能要求很高,且企业业务规模发展到一定阶段,可考虑rpc。
作者回复: 你讲的分布式事务基于消息的实现方式,这两篇文章可以参考(medium需要翻墙):
https://dzone.com/articles/data-consistency-in-microservices-architecture
https://medium.com/technology-learning/event-sourcing-and-cqrs-a-look-at-kafka-e0c1b90d17d8
作者回复: 绝对性能一般REST低于RPC,但具体选择要看通讯层性能是不是你系统的瓶颈,不是瓶颈选两个任意都OK,简单选REST,性能有瓶颈则考虑RPC和二进制编码优化
作者回复: 对,json rpc也是一种特殊的RPC,采用json作为消息,一般binary rpc更常见。
作者回复: 有用mq做服务通信做法,有公司这么干,好处是解耦,不好是异步调试不便,还有单点瓶颈
作者回复: 嗯,TAS是微服务+运维开箱即用大套餐平台。swagger支持契约驱动编程模型
作者回复: SC低层一般是REST,但feign具有一些RPC强类型客户端特性,不必纠结