Ronda感言 - PandaZoo/Ronda GitHub Wiki

真的有点像类似感言。 写了大概半年,首次写这么大的一个程序。 写完了也不能算是完成,只能说对RPC框架略懂了。 下面是实现的过程:

  1. 通讯和序列化协议。netty的缓存不缓存问题,目前的理解是缓存,然后超时释放。
  2. server端和client端交互的requestMessage和responseMessage定义问题。 这里定义涉及到了使用的序列化协议。比如如果使用Class<?>Object类型就需要对mspack做自定义的模板处理。对于Hessian需要继承序列化接口等。
  3. 如何向Spring注册
    • 通过xml注册。 namespacehandler -> beandefinitionreader -> registry -> after initialization
    • 通过annotation注册 namespacehandler -> AnnotationReader -> registry bean post processor -> registry -> after initialization
  4. 如何对consumer进行代理调用。
  5. 注册中心。写了客户端和服务单之后,注册中心就变得很简单了。只是根据不同的存储将key和value wrap成不同的形式来保证可存储可查询即可。

写到这里,其实还想实现RMI,Webservice等协议,包括网关Hystrix的应用。但是后来觉得这些加在ronda上也没有什么影响了,有一点灵感尽了的感觉。

每次写东西总是想的很好,但是都是因为到最后根本没想着让别人用,所以就写个大概就停止了。如果写的比较容易使用,也就是一个产品了吧。