1.什么是rpc?
RPC,即 Remote Procedure Call(远程过程调用),说得通俗一点就是:调用远程计算机上的服务,就像调用本地服务一样。
2.rpc框架有哪些?
目前主流的有webservice,dubbo,hsf等(其实是我用过的就这么多,o(╯□╰)o)
3.rpc图
应用,服务和注册表之间的关系如下(dubbo也是这样的,只是dubbo还多了一层monitor,记录服务的调用情况)
4.服务注册
可以用当前比较流行的zookeeper框架
5.服务注册是用来干嘛的?
其实就是将服务的调用地址暴漏出来,所以我们就可以将所有server的服务地址和端口写到zookeeper的节点上
6.rpc的大致运行流程
1)服务方启动后,将自己的服务地址和端口写入zookeeper
2)消费方消费服务时,根据zookeeper节点里面的地址内容调用对应的server上的服务
ps:zookeeper节点上通常会有多组服务地址内容,因为现在大型应用通常都是以集群方式部署的,所以提供服务的肯定有多个server,当然就有多个服务地址啦,我们可以去到服务列表后,通过取随机数从而做到简单的负载均衡
3)服务方消费方的通讯就可以用netty来实现
代码见:https://github.com/dingwang/Framework,其中的“rpc简单实现”提交记录就是根据上述原理所做的
参考:http://www.csdn123.com/html/topnews201408/67/12167.htm