什么是RPC?
假设RPC的全名是远程procedure call远程过程调用,有两台服务器。 a服务器上已经部署了APP应用程序,b服务器上也部署了APP应用程序。 a试图调用b上的方法。 AB不在同一内存空间中,因此不能相互调用。 因此,需要网络远程调用来表达调用语义和传递数据。
每种语言都有自己的RPC框架。Dubbo是其中之一
http://www.Sina.com/http://www.Sina.com /
提供程序是服务提供程序,而容器是运行服务所需的容器。
0节点:服务容器负责启动负载执行服务提供程序。
注册服务注册中心
1节点:服务提供商在启动时向注册中心注册服务。
消费服务消费者
2 )服务消费者在启动时向注册中心注册,自己需要的服务。
3节点:注册中心将服务提供者地址列表返回给服务消费者。
4节点:服务消费者从服务提供商列表中选择并调用提供者。
统计Monitor:监控中心、服务呼叫数和时间
5节点:服务提供者和消费者、累计呼叫次数、呼叫时间、每分钟向监控中心发送数据进行汇总。
Dubbo中各节点:
从Dubbo图可以看到,注册中心非常重要,Dubbo官方推荐Zookeeper作为注册中心,Zookeeper作为分布式协调组件本质上是软件。图中节点调用关系说明:
发布订阅功能
分布式、集群管理功能
用Java写
Zookeeper:
服务提供商可以指定协议名称和端口号
Dubbo支持的协议包括Dubbo、rmi、hessian、http、web服务、rest和redis
等等。 建议使用dubbo协议。
dubbo协议使用单个长连接、NIO异步通信
适用于数据量少的并发服务呼叫
不适合传输文件、视频等大数据服务。