之前学过一段时间java,但是使用的时候很c++化。目前公司有项目要用到java,所以找一份代码在看一下。
于是乎找了一个很熟悉的领域网络编程。看看java是如何封装和使用的。
motan使用的第三方库
1)使用Hessian2序列化反序列化
2)使用netty作为transport
motan的特色
1)一个网络框架
2)提供了rpc服务,封装了一些HA、服务发现、摘除
3)提供很多切换开关
4)支持opentracing
5)各模块支持利用SPI添加功能.
motan的劣势
1)netty是传说中的zero-copy框架,但是motan里面对内存有多次拷贝。收一个完整的包时候拷贝了一次,Decode的时候,又拷贝了一次.
2)motan不是双向框架,req-res类框架。比如做向服务端向客户端推送消息不适合
3)
需要学习的
1)注解。注解怎么用
2)java的泛型。比如<~><?><T>等用法
3)SPI怎么用
4)mvn建模块
5)框架怎么将transport抽象出来。变成库无关型。
6)rpc的封装
7)netty的使用。 Done