透彻理解Java网络编程(二四)——Netty实战:动态代理 本章对动态代理的基本原理进行了讲解,并使用动态代理技术完成了 RPC 请求的调用和处理。动态代理技术是 RPC 框架的核心技术之一,也是很重要的一个性能优化点。 在 JDK 1.8 版本之后 JDK 动态代理在运行多次之后比 Cglib 的速度更快了,但是它还是有使用的局限性。 2021-02-27 浏览(1,008) 评论(0) 阅读全文
透彻理解Java网络编程(二三)——Netty实战:负载均衡机制 本章对RPC框架的负载均衡机制进行了讲解,主要涉及服务注册和服务发现的负载均衡机制的讲解,我基于TreeMap实现了一致性Hash算法,事实上在生成hash值时,可以使用 Google Guava 工具库中的MurmurHash,它具有更好的防Hash碰撞的特性。 2021-02-26 浏览(1,025) 评论(0) 阅读全文
透彻理解Java网络编程(二二)——Netty实战:通信协议设计 本章对我们的RPC 框架的协议设计以及请求响应的编解码进行了讲解,自定义协议、编解码、序列化/反序列化都是实现远程通信的必备基础知识。下一章,我将对 RPC 框架的负载均衡机制进行讲解。 2021-02-25 浏览(1,168) 评论(0) 阅读全文
透彻理解Java网络编程(二一)——Netty实战:服务发布与订阅 本章对RPC框架的工程结构进行了讲解,着重介绍了服务提供者使用@RpcService注解是如何发布服务的,服务消费者使用@RpcReference注解是如何订阅服务的,特别要注意 @RpcReference 注解,被该注解修饰的field变量都会被构造成 RpcReferenceBean,然后为该RpcReferenceBean生成BeanDefinition对象注入到Spring容器中。 2021-02-24 浏览(1,328) 评论(0) 阅读全文
透彻理解Java网络编程(二十)——Netty实战:RPC框架整体架构 本章对实现一个RPC框架的基本功能和架构设计进行了讲解。后续章节,我会基于Netty,完整实现一个 RPC 框架的基础功能,帮助大家掌握Netty在实战中的运用。 2021-02-23 浏览(3,494) 评论(0) 阅读全文
透彻理解Java网络编程(十九)——Netty原理:Mpsc Queue无锁队列 本章先讲解了JDK的一些队列,并分别介绍,之后对 Jctools 中的Mpsc Queue进行了剖析,重点分析了MpscArrayQueue的源码。 2021-02-22 浏览(4,013) 评论(0) 阅读全文
透彻理解Java网络编程(十八)——Netty原理:HashedWheelTimer时间轮 本文主要对 Netty 中的 HashedWheelTimer这个延迟任务处理器进行讲解,和JDK的定时任务进行比较一步步深入剖析时间轮的原理以及 Netty 中是如何实现时间轮算法。 2021-02-21 浏览(3,004) 评论(0) 阅读全文
透彻理解Java网络编程(十七)——Netty原理:FastThreadLocal线程本地变量 本章先对ThreadLocal进行了讲解,之后对Netty中的线程本地工具类FastThreadLocal进行了深入剖析。FastThreadLocal 真的一定比 ThreadLocal 快吗?答案是不一定的,只有使用FastThreadLocalThread 类型的线程才会更快,如果是普通线程反而会更慢。 2021-02-20 浏览(2,015) 评论(0) 阅读全文
透彻理解Java网络编程(十六)——Netty原理:Recycler对象池 本章对Netty中的Recycler对象池进行讲解。所谓对象池,顾名思义,就是程序对象(Java对象)的一个缓存池。与内存池类似,对象池的目的也是为了提升 Netty 的并发处理能力,避免频繁创建和销毁对象所带来的性能损耗。 2021-02-19 浏览(2,644) 评论(0) 阅读全文