zoukankan      html  css  js  c++  java
  • kafka 配置

    1.broker 服务端配置

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

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

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

    2.生产者配置

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

    3.消费者配置

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



  • 相关阅读:
    免密码远程登录和远程操作
    1、linux网络服务实验 用PuTTY连接Linux
    巧用CAS解决数据一致性问题
    第一天
    图像处理02
    图像处理01
    Poem 01(转)
    CS229 Lecture 01
    日本語1
    latex测试
  • 原文地址:https://www.cnblogs.com/cowboys/p/9259346.html
Copyright © 2011-2022 走看看