一直在写java高并发的博客,突然想起自己刚开始学习相关技术开发的境况,一切都只是理论,案例是最能讲解的地方,后面的章节将从采用netty通信实现rpc的服务调用,采用hession序列化来设计netty的编码解码操作。该项目将涉及到单例设计,回调设计,数据安全设计,数据加载设计,面向接口设计。会涉及java自身的线程池,多线程执行,高并发数据安全,同时也出现借助google的guava插件实现更好的线程池操作,借助common工具包实现反射,整合jdk的动态代理。
首先,你可以了解netty,也可以不了解netty,根据demo中出现的类或者方法,我将一一讲解,并说明相关的使用,也许会有一部分瑕疵,毕竟自己也是学习者,不能保证所有观念都是完全正确的,但是保证demo可以执行多线程,高并发的应用场景,满足互联网开发的需求。
再者,你要熟悉java的核心内容,你要了解java的常用设计模式,最简单的就是安全的单例模式(要求是性能)。熟悉jdk中的各个集合,知道在什么时候用什么样的数据集合,什么时候用安全的数据集合,什么时候用非安全的数据集合。熟悉java处理异步的线程操作,并且熟悉怎么保证多线程执行中性能的保护,减少不必要的垃圾回收。多线程肯定会设计到线程安全,熟悉常用的线程安全设计和关键字用法。熟悉jdk的动态代理和反射机制,怎么更好的利用动态代理和反射来完成功能架构。
最后,你要选择一个你熟悉的序列化工具包,一般都不会用jdk自身的序列化框架,性能和效率不敢恭维,这里选择hession是因为熟悉的原因,当然后期也会启程kyvo和messagepack两个序列化工具包,你也可以选择自己熟悉的序列化工具包,序列化的操作主要体现在netty消息流中进行数据的编码,解码操作,实现最小容量,最快速度的效果。