手把手带你用netty徒手撸一个简单的kafkaClient
吐槽一下kafka的api设计
大家都知道, kafka的客户端是重构过一版的. 之前0.8的producer和consumer是使用scala开发的,后来因为各种原因, 实在是改不动了. 到了0.9版本的时候,使用java重构了kafka的客户端.
虽然现在java版的客户端还在广泛使用,而且没有什么太大的性能问题. 但是根据我这些天对kafka客户端的api的研究, 我总觉得, 总有一天, kafka的客户端还得来一次彻底的重构.因为什么呢? 因为实在是太--乱--啦:
1\. 多版本问题.
每个api都有好几个版本, 但是每个api使用的版本都不一致.
举个例子, 在kafka-client 1.0.0中,broker的版本是2.3.0时:
METADATA(拉取topic元数据)的api有1个version, 当前使用版本是1.
PRODUCE(生产消息)的api有6个version, 当前使用版本是6
FETCH(拉取消息)的api有5个version, 当前使用版本是5
2\. 报文的数据结构巨复杂
等下实现生产消息的报文的时候,你们会看到,这个报文嵌套了6层,即有6个子结构体.
相关文章