集群搭建方法
Kafka集群是由多个Kafka节点组成的集合,每个节点都运行Kafka服务,共同组成一个分布式消息系统。Kafka集群的概念和优势如下:
- 高可用性:Kafka集群可以容忍单个节点的故障,其他节点可以继续提供服务,确保消息的持久性和可靠性。
- 伸缩性:Kafka集群可以根据需求进行水平扩展,通过增加节点来增加处理能力,实现高吞吐量的消息处理。
- 容错性:Kafka集群采用分布式架构,将消息分散存储在多个节点上,即使某个节点发生故障,消息仍然可以被其他节点读取和处理。
- 数据复制:Kafka集群支持数据的副本复制,将消息副本存储在不同的节点上,确保数据的可靠性和持久性。
- 数据分区:Kafka将数据分割成多个分区,每个分区可以在不同的节点上进行读写操作,提高了并发性能和处理能力。
- 消息顺序保证:Kafka保证同一分区内的消息是有序的,不同分区间的消息顺序是无法保证的。这种特性可以满足一些特殊的消息处理需求。
- 多种消费模式:Kafka支持多种消费模式,可以根据需求选择合适的消费方式,包括多个消费者共同消费、广播模式等。
一、创建3个Broker
下面的三项分别是broker节点id、节点对外暴露的ip和端口号、存放消息的日志文件
二、通过下面的命令启动三台节点
三、校验是否启动成功
进入到zk中查看/brokers/ids中是否有三个znode(0,1,2)
Kafka集群消费消息
一、集群消息的生产
./kafka-console-priducer.sh --broker-list 10.31.167.10:9092,10.31.167.10:9093,10.31.167.10:9094 --topic my-replicated-topic
二、集群消息的消费
./kafka-console-consumer.sh --bootstarp-server 10.31.167.10:9092,10.31.167.10:9093,10.31.167.10:9094 --from-beginning --topic my-replicated-topic
三、集群中指定消费组消费消息
./kafka-console-consumer.sh --bootstarp-server 10.31.167.10:9092,10.31.167.10:9093,10.31.167.10:9094 --from-beginning --consumer-property group.id=testGroup1 --topic my-replicated-topic
四、关于分区消费组消费者的细节
1、一个Partition分区只能被一个消费组中的一个消费者消费,目的是为了保证消费的顺序性,但是多个Partition分区的多个消费者消费的总的顺序是的得不到保证的,后面会讲如何保证总的顺序性
2、Partition分区的数量决定了消费组中消费者的数量,建议同一个消费组中消费者的数量不要超过Partition分区的数量,否则多的消费者消费不到消息
3、如果消费者挂了,那么就会触发rebalance机制,会让其他消费者来消费该消息
至此,关于Kafka集群的搭建和集群中的发送和接收消息介绍完毕,后续还会持续的更新相关技术点,敬请期待~~~