第二章
环境
l JDK 1.7+
l Spring4.0+
l Netty4.1+
l ZooKeeper 3.4+
l CuraotrFramework 2.7+ (简化ZooKeeper操作)
l Jackson 2.6+
l Hessian 4.0+
RPC框架需要考虑的几个问题
l 程序的各个组件是怎么样加载到spring中,并且启动的?
l 如何生成自定义的代理类,加载到Spring容器中的。
l 部署在不同服务器是如何根据注册中心查找到内容提供者进行调用的,为什么注册中心要用ZooKeeper,使用其他的可以吗?
l 当消费者在注册中心确认调用的服务时,因为服务提供者可能是多个,是如何进行各种不同的负载算法实现的?
l 当服务提供者因为各种原因,程序停止了,是怎么通知消费者不在调用已经无法提供服务的提供者。
l 怎么实现远程调用串行执行(怎么样调用远程服务,进行线程堵塞,等待结果返回,消费者在进行后续代码执行),并行执行(消费者不必要等待内容提供者返回信息,消费者并行执行后续代码)。
l 怎么样实现在某个Service在被n个线程并行远程调用时,当达到临界值,放弃所有后续的请求。当峰值小于临界值,继续提供服务。
l 在进行远程调用时,所有被调用的参数,方法,调用源等信息都被序列化后,采取什么样的方式效率更高。
l 如何实现远程调用超时,返回超时信息,或者重试。
l 远程调用,如何实现分布式锁。
l 分布式事物,是如何进行管理的。
还是希望大家带着问题去思考,这样接收起来比较快一点。