关于dubbo的思考【原创】

最近在看dubbo的文档,有些内容结合自己的思考记录一下
1. dubbo的本地存根能够提升性能
将与服务器环境无关的代码移到stub中,利用ThreadLocal本地缓存,将校验,容错(容错用mock更好,原理相似)等功能放在客户端做,应该能提升性能。这段代码是服务端写好的缓存过去的,所以维护也方便。
2. 利用future实现异步调用提升性能
等待的时间为最长的那个远程调用事件,并且在一个线程中完成,避免了多线程切换的开销和复杂性。
3. 利用injvm提升本地jvm调用性能
4. callback没看懂,我的理解应该是客户端注册了callback,服务端查找到callback调用。并且服务端跟客户端是长连接,服务端一旦有变动就会发起调用通知。
5. 如果spring加载报出wait to lock, 可能是dubbo服务过早暴露引起,设置
<dubbo:service delay="-1" />
6. 提供有状态服务
<dubbo:protocol name="dubbo" sticky="true" />
7. 配置参考手册标明了配置的作用,如果要性能调优,可以找找性能调优的配置项
8. 配置缓存文件,可以缓存注册中心和服务提供者,重启时从这个文件恢复。当注册中心宕机可以从缓存获取服务提供者列表。注意多个应用不要使用同一个文件。
<dubbo:registry file=”${user.home}/output/dubbo.cache” />
9.从官网测测试报告看,大数据量调用采用http协议+json序列化好, 小数据量(1k或POJO)采用dubbo协议hassian序列化好(注意dubbo序列化为试用)。
10. 从其他的参考资料看dubbo协议+kryo序列化比hassian序列化要好。

猜你喜欢

转载自zhenggm.iteye.com/blog/2325807