kafka 配置

1.broker 服务端配置

配置描述优先级
broker.id1当前机器在集群中的唯一标识,和zookeeper的myid性质一样
delete.topic.enablefalse是否允许删除topic,此动作比较危险,默认为false
listenersPLAINTEXT://ip:9097

根据最新官网配置介绍为准,host.name和port属性已经过时

advertised.listenersPLAINTEXT://ip:9097最好用真实ip,用host容易出问题
num.network.threads3borker进行网络处理的线程数 默认3
num.io.threads8borker进行I/O处理的线程数 默认8
socket.send.buffer.bytes102400发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.receive.buffer.bytes102400kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.request.max.bytes104857600这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
log.dirs/home/txc/kafka1/kafkalogskafka数据日志文件保存路径
num.partitions1新建的topic,默认创建的分区数 ,一般是多个
offsets.topic.replication.factor1副本因子 如果是集群,这个值必须大于1,小于或等于broker的数量,如果集群环境配置为1,当客户端选择的协调节点broker宕机,客户端消费者将不会自动选举,消费者dead
default.replication.factor1新建的topic,默认的副本集个数
zookeeper.connect10.22.0.13:2182,10.22.0.14:2182,10.22.0.15:2182kafka连接的zk地址
group.initial.rebalance.delay.ms0客户端消费者重新选举的延时时间,默认0

2.生产者配置

 

配置描述优先级
bootstrap.servers10.22.0.13:9092,10.22.0.14:9092,10.22.0.15:9092kafka集群地址
key.serializerorg.apache.kafka.common.serialization.StringSerializer
key的序列化类(实现序列化接口)
value.serializerorg.apache.kafka.common.serialization.StringSerializervalue的序列化类(实现序列化接口)
acksall
生产者需要leader确认请求完成之前接收的应答数。此配置控制了发送消息的耐用性,支持以下配置:
acks=0 如果设置为0,那么生产者将不等待任何消息确认。消息将立刻天际到socket缓冲区并考虑发送。在这种情况下不能保障消息被服务器接收到。并且重试机制不会生效(因为客户端不知道故障了没有)。每个消息返回的offset始终设置为-1。
acks=1,这意味着leader写入消息到本地日志就立即响应,而不等待所有follower应答。在这种情况下,如果响应消息之后但follower还未复制之前leader立即故障,那么消息将会丢失。
acks=all 这意味着leader将等待所有副本同步后应答消息。此配置保障消息不会丢失这是最强壮的可用性保障。等价于acks=-1。
retries0
设置一个比零大的值,客户端如果发送失败则会重新发送。注意,这个重试功能和客户端在接到错误之后重新发送没什么不同。如果max.in.flight.requests.per.connection没有设置为1,有可能改变消息发送的顺序,因为如果2个批次发送到一个分区中,并第一个失败了并重试,但是第二个成功了,那么第二个批次将超过第一个。
max.block.ms60000
该配置控制 KafkaProducer.send() 和 KafkaProducer.partitionsFor() 将阻塞多长时间。此外这些方法被阻止,也可能是因为缓冲区已满或元数据不可用。在用户提供的序列化程序或分区器中的锁定不会计入此超时。

3.消费者配置

配置描述优先级
bootstrap.servers10.22.0.13:9092,10.22.0.14:9092,10.22.0.15:9092kafka集群地址
group.idtxc消费者组名,同一个消费者组里只有一个消费者能接收到消息
key.deserializerorg.apache.kafka.common.serialization.StringDeserializer
key的反序列化类(实现序列化接口)
value.deserializerorg.apache.kafka.common.serialization.StringDeserializervalue的反序列化类(实现序列化接口)
enable.auto.commitfalse
如果为true,消费者的offset将在后台周期性的提交,有可能导致消息消费不到,最好配置为false,然后在代码中手动提交offset
auto.commit.interval.ms1000
自动提交偏移量的间隔时间



转载于:https://www.cnblogs.com/cowboys/p/9259346.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值