在最近一段时间里,通过搜集有关资料加上自己的理解,设计了一款轻量级RPC,起了一个名字 lightWeightRPC 。它拥有一个RPC常见的基本功能。主要功能和特点如下: 利用Spring实现依赖注入与参数配置 利用Netty来实现客户端与服务端的远程通信 利用Hessian来实现序列化 设置Zookeeper作为注册中心 新设监控器,通过心跳机制来判断服务端与监控器的网络连接状况,当出现不稳定时,认为服务端出现了问题,在注册中心删除相关的服务信息。 利用Netty的Promise来实现异步的传送 构建线程池来管理发送的请求线程 添加服务缓存机制,在注册中心宕机的情况下仍能进行服务消费。 支持服务扩展点发现机制(SPI),对Spring的SPI机制进行改进,解决了依赖注入问题。 在客户端从注册中心获取服务时,添加监听器,当注册中心对应节点发生变化时通知客户端修改本地缓存信息。 以上是 lightWeightRPC 的全部功能,本版本添加的内容就是最后一个功能,为服务节点添加监听器。 因为之前在本地添加了持久化的缓存,当服务消费时会先从缓存中查找信息,查不到再到注册中心查找,但是当服务地址等信息发生变化时,如果不对缓存信息进行修改就可能会发生错误。所以在本版本中为服务节点添加了监听器。 如何添加监听器 当客户端首次从注册中心获取服务信息时,会对有关服务节点添加监听器,具体方法在