Kafka容错性测试

一.创建3个配置文件

server.properties:

broker.id=0
listeners=PLAINTEXT://hadoop000:9092
log.dirs=/home/hadoop/app/tmp/kafka-log

server-1.properties:

broker.id=1
listeners=PLAINTEXT://hadoop000:9093
log.dirs=/home/hadoop/app/tmp/kafka-log-1

server-2.properties:

broker.id=2
listeners=PLAINTEXT://hadoop000:9094
log.dirs=/home/hadoop/app/tmp/kafka-log-2

二.启动zk和kafka

[hadoop@hadoop000 bin]$ ./zkServer.sh start
[hadoop@hadoop000 config]$ kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
[hadoop@hadoop000 config]$ kafka-server-start.sh -daemon $KAFKA_HOME/config/server-1.properties
[hadoop@hadoop000 config]$ kafka-server-start.sh -daemon $KAFKA_HOME/config/server-2.properties

[hadoop@hadoop000 config]$ jps -m
10304 QuorumPeerMain /home/hadoop/app/zookeeper-3.4.5-cdh5.15.1/bin/../conf/zoo.cfg
10611 Kafka /home/hadoop/app/kafka_2.11-2.2.1/config/server.properties
10967 Kafka /home/hadoop/app/kafka_2.11-2.2.1/config/server-1.properties
11333 Kafka /home/hadoop/app/kafka_2.11-2.2.1/config/server-2.properties
12837 ConsoleConsumer --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
13401 ConsoleProducer --broker-list hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
13966 Jps -m

三.创建topic、消费者、生产者

[hadoop@hadoop000 config]$ kafka-topics.sh --create --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --replication-factor 3 --partitions 1 --topic access-topic-prod

[hadoop@hadoop000 bin]$ kafka-console-consumer.sh --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod

[hadoop@hadoop000 ~]$ kafka-console-producer.sh --broker-list hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod

四.三个broker

[hadoop@hadoop000 config]$ kafka-topics.sh --describe --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
Topic:access-topic-prod	PartitionCount:1	ReplicationFactor:3	Configs:segment.bytes=1073741824
	Topic: access-topic-prod	Partition: 0	Leader: 2	Replicas: 2,1,0	Isr: 2,1,0

五.kill掉一个,依然能工作

[hadoop@hadoop000 config]$ kill -9 11333

[hadoop@hadoop000 config]$ jps -m
10304 QuorumPeerMain /home/hadoop/app/zookeeper-3.4.5-cdh5.15.1/bin/../conf/zoo.cfg
10611 Kafka /home/hadoop/app/kafka_2.11-2.2.1/config/server.properties
10967 Kafka /home/hadoop/app/kafka_2.11-2.2.1/config/server-1.properties
12837 ConsoleConsumer --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
13401 ConsoleProducer --broker-list hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
13979 Jps -m

[hadoop@hadoop000 config]$ kafka-topics.sh --describe --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
[2022-03-12 18:17:11,192] WARN [AdminClient clientId=adminclient-1] Connection to node -3 (hadoop000/192.168.198.128:9094) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
Topic:access-topic-prod	PartitionCount:1	ReplicationFactor:3	Configs:segment.bytes=1073741824
	Topic: access-topic-prod	Partition: 0	Leader: 1	Replicas: 2,1,0	Isr: 1,0

六.kill掉两个,依然能工作

[hadoop@hadoop000 config]$ kill -9 10967

[hadoop@hadoop000 config]$ jps -m
10304 QuorumPeerMain /home/hadoop/app/zookeeper-3.4.5-cdh5.15.1/bin/../conf/zoo.cfg
10611 Kafka /home/hadoop/app/kafka_2.11-2.2.1/config/server.properties
12837 ConsoleConsumer --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
13401 ConsoleProducer --broker-list hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
15148 Jps -m

[hadoop@hadoop000 config]$ kafka-topics.sh --describe --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
[2022-03-12 18:18:38,990] WARN [AdminClient clientId=adminclient-1] Connection to node -3 (hadoop000/192.168.198.128:9094) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
Topic:access-topic-prod	PartitionCount:1	ReplicationFactor:3	Configs:segment.bytes=1073741824
	Topic: access-topic-prod	Partition: 0	Leader: 0	Replicas: 2,1,0	Isr: 0

七.重启一个,Isr会恢复

[hadoop@hadoop000 bin]$ kafka-topics.sh --describe --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
Topic:access-topic-prod	PartitionCount:1	ReplicationFactor:3	Configs:segment.bytes=1073741824
	Topic: access-topic-prod	Partition: 0	Leader: 1	Replicas: 2,1,0	Isr: 1,0
	
[hadoop@hadoop000 bin]$ kafka-server-start.sh -daemon $KAFKA_HOME/config/server-2.properties

[hadoop@hadoop000 bin]$ kafka-topics.sh --describe --bootstrap-server hadoop000:9092,hadoop000:9093,hadoop000:9094 --topic access-topic-prod
Topic:access-topic-prod	PartitionCount:1	ReplicationFactor:3	Configs:segment.bytes=1073741824
	Topic: access-topic-prod	Partition: 0	Leader: 1	Replicas: 2,1,0	Isr: 1,0,2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka是一个分布式流处理平台,具有高可用性。下面是Kafka高可用测试的一般步骤: 1. 配置Kafka集群:首先,需要配置一个Kafka集群,包括多个Kafka broker节点和至少一个Zookeeper节点。确保集群中的每个节点都正确配置,并且它们可以相互通信。 2. 创建主题和分区:使用Kafka提供的命令行工具或API,在Kafka集群中创建一个或多个主题,并为每个主题指定适当的分区数。 3. 启动Kafka集群:启动Kafka集群中的每个节点,包括Kafka broker和Zookeeper节点。确保每个节点都成功启动,并且它们之间的通信正常。 4. 发布和消费消息:使用Kafka提供的生产者API将消息发布到指定的主题中。然后,使用消费者API从相同的主题中消费消息。确保消息能够正常发布和消费,并且数据能够正确传递。 5. 测试故障转移:模拟一个节点故障,例如关闭一个Kafka broker节点。观察集群中的其他节点是否能够接管该节点的工作,并继续提供服务。确保故障转移过程顺利进行,并且服务不会中断。 6. 测试数据复制:在Kafka集群中的一个节点上发布消息,并确保消息能够被其他节点正确复制。验证数据复制机制是否正常工作,并且数据能够在集群中的多个节点之间同步。 7. 测试负载均衡:增加或减少Kafka集群中的节点数量,观察集群是否能够自动进行负载均衡,并且数据能够均匀地分布在各个节点上。 8. 测试容错性:模拟多个节点故障,例如关闭多个Kafka broker节点。观察集群是否能够继续常工作,并且数据不会丢失或损坏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值