基于Netty重构RPC框架
RPC:Remote Procedure Call 远程过程调用。
常见的分布式RPC的框架:
dubbo:2011年国内最开源的RPC框架,仅支持Java语言
motan:微博内部使用的RPC框架 2016年开源的,仅支持Java语言
Thrift:支持20多种语言
gRPC:谷歌2015年对外开源的框架。支持很多语言
目前流行的RPC框架:dubbo和SpringCloud。
单一应用架构-- All in one —CURD 比如:58同城的站点。
垂直应用架构-- Web MVC 前后端分离
分布式服务架构
流动计算架构(SOA)面对服务架构。
dubbo流程图:
流程:
1.服务service的提供者(Provicler)在Container容器启动、加载运行,当服务提供者在启动的时候,会向Registry(注册中心)去注册自己提供的服务。
2.当Consumer(消费者)在启动的时候,也会去向注册中心订阅需要的服务。
3.当注册中心返回给消费者是提供的地址的列表,如果服务的提供中心有变更的话,注册中心会基于长连接把这个变更推送给消费者。
4.消费者从服务提供者中心的列表中,基于负载均衡的算法,它选取一台进行调用。如果失败的话,重新调另外一台。
5.服务的消费者和服务的提供者在内存中间,累计调用的次数和时间