Kafka客户端源码总结

客户端源码总结

1. 把核心流程封装在一个方法里面,代码流程是比较清晰的

2. 自定义异常,异常的提示很清晰.

3. 底层代码异常往上抛,核心逻辑捕获异常,对异常进行处理.

4. 面向对象的思想还是不错的.

5. 自己设计高性能的多线程结构(线程安全,读多写少)

6. 高并发的情况下,为了性能(线程安全),尽量缩小锁的粒度.分段加锁.

7. 为了减少GC,设置了内存池.

8. 客户端发送消息,支持异步,异步化的设计(回调函数),提升了性能.

9. kafka的网络设计,一个客户端是管理多个网络的.

10. 批处理的设计(吞吐量上升)

11. 多个请求,把发往同一个broker请求合并在一起(减少网络请求)

12. 响应的处理(考虑的很全面)

13. 支持序列化,可以配置压缩格式.

14. 拆包/粘包 的处理,

原文地址:https://www.cnblogs.com/weijiqian/p/14159588.html