Kafka集群部署

    技术2023-09-18  114

    简介

    Kafka是一个高吞吐,低延迟分布式的消息队列系统。Kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒。

    Kafka模型

    kafka提供了一个生产者、缓冲区、消费者的模型

    Broker:kafka集群有多个Broker服务器组成,用于存储数据(消息)topic:不同的数据(消息)被分为不同的topic(主题)producer:消息生产者,往broker中某个topic里面生产数据consumer:消息的消费者,从broker中某个topic获取数据

    Kafka集群部署

    集群规划:

    Zookeeper集群共三台服务器,分别为:node1,node2,node3

    Kafka集群共三台服务器:node1,node2,node3

    注:kafka是一个分布式消息队列,需要依赖Zookeeper

    安装步骤:

    下载和解压安装包

    tar -zxvf kafka_2.11-0.8.2.1.tgz

    修改配置文件config/server.properties

    broker.id=0 zookeeper.connect=node1:2181,node2:2181,node3:2181

    参数说明:

    borker.id:

    broker即kafka集群中的一台服务器,broker集群中唯一标识id,0,1,2,3依次增长。当前kafka集群共三台节点:node1,node2,node3对应的broker.id分别为0,1,2

    zookeeper.connect:zookeeper集群地址列表

    同步到其他机器上

    scp -r kafka_2.11-0.8.2.1 node2:`pwd` scp -r kafka_2.11-0.8.2.1 node3:`pwd`

    启动集群:

    注:需要先启动Zookeeper集群

    分别在三台服务器上执行启动命令

    bin/kafka-server-start.sh config/server.properties

    测试集群:

    创建topic:

    bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --create --replication-factor 2 --partitions 3 --topic test

    参数说明:

    –replication-factor:指定每个分区的复制因子个数,默认1个partitions:指定当前创建的kafka分区数量,默认是一个topic:指定新建topic的名称

    查看topic列表:

    bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --list

    创建生产者:

    bin/kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic test

    创建消费者:

    bin/kafka-console-consumer.sh --zookeeper node1:2181,node2:2181,node3:2181 --from-beginning --topic test

    查看“test” topic描述:

    bin/kafka-topics.sh --zookeeper node1:2181,node2:2181,node3:2181 --describe --topic test

    参数说明:

    topic:test topic的名称PartitionCount:3 该topic的分区数有3个ReplicationFactor:2 每个分区的副本数位为2,这里指的是每个分区总共有2份数据。Partition: 0 代表0号分区Learder: 0 代表0号分区的2份数据中,在brokerId=0 的机器上的那份数据是主(leader)eplicas: 0,1 0号分区的两份副本数据在brokerID=0 和brokerID=1的这两台机器上Isr:0 1 BrokerId为0和1的那两份数据(一个主,一个从),基本保持同步,ISR(in-sync Replica)
    Processed: 0.010, SQL: 10