kafka区别于其他MQ,消费消息需要去kafka服务器去拉取消息
生产者的参数配置properties.setProperty在:ProducerConfig类中
消息生产流程
消息确认:
首领分区:
kafaka也是通过过半机制,进行选举首领节点
与性能相关配置
ACKS:1
buffer.memory:缓存在本地消息大小,默认32M
max.block.ms:生产者与kafka服务器等待最大时间,60s
retries: 设置生产者生产消息失败后重试的次数 默认值 3次 retry.backoff.ms: 设置生产者每次重试的间隔 默认 100ms
batch.size: 生产者批次发送消息的大小 默认16k 注意单位还是byte linger.ms: 生产者生产消息后等待多少毫秒发送到broker 与batch.size 谁先到达就根据谁 默认值为0
compression.type: kafka在压缩数据时使用的压缩算法 可选参数有:none、gzip、snappy none即不压缩 gzip,和 snappy压缩算法之间取舍的话 gzip压缩率比较高 系统cpu占用比较大 但是带来的好处是 网络带宽占用少, snappy压缩比没有gzip高 cpu占用率不是很高 性能也还行, 如果网络带宽比较紧张的话 可以选择gzip 一般推荐 snappy
client.id: 一个标识, 可以用来标识消息来自哪, 不影响kafka消息生产
max.in.flight.requests.per.connection: 指定kafka一次发送请求在得到服务器回应之前,可发送的消息大小
客户端发送大小。服务器接收大小,消费端接收大小