当设置 value.serializer =org.apache.kafka.common.serialization.StringSerializer
发送的消息是按照明文格式,获取的时候也直接String。
在此想要了解的问题是value.serializer 是否具有压缩功能?还是仅仅将消息序列化了?
循环10000次发送2.5kb的消息,使用
org.apache.kafka.common.serialization.StringSerializer
和
org.apache.kafka.common.serialization.ByteArraySerializer
消耗的时间并没有什么差别。
我是该在序列化之前,先把内容压缩压缩?(例如gzip压缩)
max.request.size=3376156
batch.size=16384
buffer.memory=671088640
send.buffer.bytes=1310720
另外这些参数设置并没有起作用
你怎么确定的调整没有起到作用呢?
另外,还是跟上面的问题我跟你回答的一样,先找到瓶颈点,增加分区。
https://www.orchome.com/1098
另外我给你稍微介绍一下增加分区来高并发原理。
kafka把一个topic下的消息,打散很多份存起来(分区),保存到不同kafka集群节点下,每个分区都有对应的leader来管理,而不是集中一个。所以分区越多,其实就是多线程可以同时处理。
这一切的基础,都基于你的系统还没到瓶颈
你的答案