5、服务注册中心 正如之前提到的,要调用服务,首先你需要一个服务注册中心,告诉你对方服务都有哪些实例 。Dubbo的服务注册中心是可以配置的,官方推荐使用Zookeeper 。如果使用Zookeeper的话,要怎样往上面注册实例,又要怎样获取实例,这些都是要实现的 。
6、负载均衡 如何从多个实例里挑选一个出来,进行调用,这就要用到负载均衡了 。负载均衡的策略肯定不只一种,要怎样把策略做成可配置的?又要如何实现这些策略?同样可以参考Dubbo,Dubbo - 负载均衡
7、结果缓存 每次调用查询接口时都要真的去Server端查询吗?是不是要考虑一下支持缓存?
8、多版本控制 服务端接口修改了,旧的接口怎么办?
9、异步调用 客户端调用完接口之后,不想等待服务端返回,想去干点别的事,可以支持不?
10、优雅停机 服务端要停机了,还没处理完的请求,怎么办?
......
诸如此类的优化点还有很多,这也是为什么实现一个高性能高可用的RPC框架那么难的原因 。
当然,我们现在已经有很多很不错的RPC框架可以参考了,我们完全可以借鉴一下前人的智慧 。
后面如果有(dian)机(zan)会(duo)的话,也将和大家分享一下如何一步一步优化现有的这块RPC代码,把它做成一个小型RPC框架!
参考
- 一本很棒的分布式书籍:《大型网站系统与Java中间件实践》
- Dubbo 使用文档
- Dubbo 源码开发手册
推荐阅读
- Java 实现6种负载均衡算法
- 一个比c3p0还快200倍的数据库连接池
- 多合一小程序:小程序如何解决“用完即走,再也不来”
- 微信小程序开发工具教程:打造一个小程序商城
- 如何centOS下mysql开启远程连接
- CentOS下如何完全卸载MySQL
- 如何快速提升抖音粉丝量
- 什么是癫痫
- 丘疹荨麻疹
- 脑膜炎传染吗