上图是在分布系统中常用的一些RPC协议。RPC本身是远程过程调用,主要解决远程的通信问题,而不仅是封装原始的数据通信协议与网络协议。 在此基础上,需要借助某些框架语言来实现功能的交互。例如,希望客户端通过调用服务器端的某个订单或者加密的功能,实现远程的功能调用。 这是通过网络来暴露自己代码功能较早的一种方式。RPC协议非常多,不仅是REST API,APP协议暴露接口,前端分裂架构基本上也都是API加前端、小程序、APP、PC网页等这种模式,是在移动互联网时代用得较多的架构。 前端分离,后端演化成微服务架构。微服务架构一般和业务模式有关,业务需求是第一位,技术服务于业务。在内部通信领域,并非只有一种协议,可能多种协议并存,如TCP、UDP、HTTP等协议并存。 Rest API基本上走的是APP协议,一般是接收数据格式。在这个领域里面,RPC概念在native本身也支持分布式通信框架。但是相对来说,在大规模分布式集群治理领域,阿里的Dubbo设计非常优秀,不断迭代,表现优异。 数据库JDBC属于分布式通信解决方案之一,但通信协议是GDB框架定义,专有的协议格式,支持引入中间链、消息队列等,使用不同的协议进行通信。 这并非表示跨平台是最优秀的,它的性能越好,安全性越高,可能越封闭。但是它开放性标准化有助于大范围的行业推广,适用性更强。有些公司的协议不开放,这是由于从公司的业务角度来说,微服务属于分布式架构。 分布架构继承了早期的分布式框架特点,在RVICES API这些应用基础上进行了架构的升级改造,在大规模的服务接口集群化治理走向了更高的层次,架构师面临的挑战也更大。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。