两个broker节点A(10.7.24.201)和B(10.7.21.240)
A主机上部署了zookeeper+kafka
B主机上部署了zookeeper+kafka+logstash
A和B都启动的前提下,通过命令:
bin/kafka-console-producer.sh --topic panda --broker-list 10.7.24.201:9092,10.7.21.240:9092
logstash能收到消息
kill掉240,发消息,logstash也能收到消息
但是如果保留240 kill掉201,logstash就报错:
[2018-08-31T18:13:07,119][WARN ][org.apache.kafka.clients.NetworkClient] [Consumer clientId=chen-3, groupId=logstash] Connection to node 0 could not be established. Broker may not be available.
[2018-08-31T18:13:07,216][WARN ][org.apache.kafka.clients.NetworkClient] [Consumer clientId=chen-4, groupId=logstash] Connection to node 0 could not be established. Broker may not be available.
执行如下命令:
bin/kafka-consumer-groups.sh --describe --bootstrap-server 10.7.24.201:9092,10.7.21.240:9092 --group logstash
报错如下:
Note: This will not show information about old Zookeeper-based consumers.
[2018-08-31 18:14:15,459] WARN Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
[2018-08-31 18:14:15,537] WARN Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
Error: Executing consumer group command failed due to The consumer group command timed out while waiting for group to initialize:
不知道什么原因,求解答。。。。。
kafka0.9版本以后,consumer消费的offset默认保存到kafka系统topic中,所以你这种很可能是因为保存offset的topic只有一个副本。
你可以通过命令查看topic有没有副本,命令如下:
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic __consumer_offsets
这个是存储offset的主题,如果副本只有1个,那么就会导致集群挂掉一个,你消费者再也不消费的情况。把该主题增加副本就行了。
https://www.orchome.com/454 命令大全里面,执行增加副本。
非常感谢,问题确实解决了!
修改server.properties 如下:
############################# Internal Topic Settings ############################# # The replication factor for the group metadata internal topics "__consumer_offsets" and "__transaction_state" # For anything other than development testing, a value greater than 1 is recommended for to ensure availability such as 3. offsets.topic.replication.factor=3 transaction.state.log.replication.factor=3 transaction.state.log.min.isr=3
不管是重启还是新建topic,topic的副本依然是一个,似乎只能按照您提供的方式和命令去修改topic的副本数量。。。。
有点迷惑。。。。
https://www.orchome.com/472
这里找下,有修改默认分区数和副本数的。
一 .以json文件的形式,来进行添加:
1、查看 主题的信息
bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic myTopic1
确定分区数
2、可以指定分区绑定副本(前提是副本id的broker服务要启动了) 到bin目录下,添加文件 increase-replication-factor.json
[root@localhost bin]# vim increase-replication-factor.json {"version": 1, "partitions": [ { "topic": "AA_topic", "partition": 0, "replicas": [ 4, 5 ] }, { "topic": "AA_topic", "partition": 1, "replicas": [ 4, 5 ] } ] }
其中 replicas 填写的值,就是 kafka 的对应的broker.id 【在kafka的conf目录的 server.properties 文件里能找到】。
3、执行命令
[root@localhost bin]# ./kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json --execute
4、再看主题的信息
bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181 --topic AA_topic
我这边操作记录,试下能不能帮你解决问题
问题同:
https://www.orchome.com/805
引用自 solo 答复 原野
“要在zk里面把__consumer_offsets节点和下面的所有节点都删掉,再重新启动集群做消费”
我也与到同样的问题,部署了三台,kill 其中一台,consumer收不到消息,按照:
offsets.topic.replication.factor=3 transaction.state.log.replication.factor=3 transaction.state.log.min.isr=3
修改后,问题依然。
请问是否还要修改其他配置,谢谢
感谢 “半兽人” ,按照 提供的方法 解决了这个问题
我三个broker,要保证topic高可用,除了副本设置3个,还有什么可以加的参数?
./kafka-topics.sh --create --zookeeper localhost:2181 --partitions 3 --replication-factor 3
假如我3个broker,给5个分区 5个副本 这样会是怎么样的一个情况? 会存在这种操作吗?
没有什么需要特别注意的了,剩下一个是broker恢复策略(优先保障恢复,还是优先保障数据完整性)
另外,副本数无法超过broker数。
我主要用作消息中间件,加acks之类的合适吗
acks?什么意思
producer sets acks to "all"
我刚才测试了一下 副本不能大于broker数量,另外你提到的broker恢复策略是什么?
https://www.orchome.com/22
那个是生产数据安全级别,根据你需要配置吧
你的答案