kafka集群 zookeeper集群
kafka + zookeeper 集群
一、服务规划
系统:CentOS Linux release 7.8.2003 版本:redis-5.0.10 地址清单: 176.16.2.11 176.16.2.12 176.16.2.13
zookeeper 信息
配置信息: port:2181 server.1=176.16.2.11:2888:3888 server.2=176.16.2.12:2888:3888 server.3=176.16.2.13:2888:3888
配置信息 (注意 zk 集群每个节点的myid标识分别为 1,2,3)
zookeeper 集群标识: # vim zookeeper/data/myid 1 zookeeper 配置信息: # vim zookeeper/conf/zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/services/zookeeper/data clientPort=2181 server.1=176.16.2.11:2888:3888 server.2=176.16.2.12:2888:3888 server.3=176.16.2.13:2888:3888 启动: cd zookeeper/bin/ && ./zkServer.sh restart
kafka 信息
配置目录:kafka/config 数据目录:/tmp/zookeeper 端口:9092
配置文件:(server.properties 中 broker.id 标识分别为1,2,3)
# vim config/producer.properties bootstrap.servers=176.16.2.11:9092,176.16.2.12:9092,176.16.2.13:9092 # vim config/consumer.properties bootstrap.servers=176.16.2.11:9092,176.16.2.12:9092,176.16.2.13:9092 group.id=test-consumer-group # cat config/zookeeper.properties dataDir=/tmp/zookeeper clientPort=2181 maxClientCnxns=0 admin.enableServer=false
kakfa节点1:server.properties
# cat config/server.properties broker.id=1 listeners=PLAINTEXT://176.16.2.11:9092 advertised.listeners=PLAINTEXT://176.16.2.11:9092 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=/opt/logs/kafka-logs num.partitions=1 num.recovery.threads.per.data.dir=3 offsets.topic.replication.factor=3
# 默认是1 集群副本及更改为3
transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=176.16.2.11:2181,176.16.2.12:2181,176.16.2.13:2181 zookeeper.connection.timeout.ms=18000
kafka节点2:server.properties
# cat config/server.properties broker.id=2 listeners=PLAINTEXT://176.16.2.12:9092 advertised.listeners=PLAINTEXT://176.16.2.12:9092 log.dirs=/opt/logs/kafka-logs zookeeper.connect=176.16.2.11:2181,176.16.2.12:2181,176.16.2.13:2181 zookeeper.connection.timeout.ms=18000
kafka节点3:server.properties
# cat config/server.properties broker.id=3 listeners=PLAINTEXT://176.16.2.13:9092 advertised.listeners=PLAINTEXT://176.16.2.13:9092 log.dirs=/opt/logs/kafka-logs zookeeper.connect=176.16.2.11:2181,176.16.2.12:2181,176.16.2.13:2181 zookeeper.connection.timeout.ms=18000
启动:
nohup kafka/bin/kafka-server-start.sh kafka/config/server.properties &
【kafka】配置示例解析
Kafka 配置文件 server.properties 示例 broker.id=1 #定义了 Kafka broker 的唯一标识符。在一个 Kafka 集群中,每个 broker 必须有一个唯一的 broker.id。 host.name=0.0.0.0 #通常不建议将 host.name 设置为 0.0.0.0,因为它表示监听所有可用的网络接口。但在某 些情况下,如果你希望 Kafka 监听所有接口,可以这样做。但更常见的是使用 listeners 和 advertised.listeners 来明确指定监听地址和对外公布的地址。 port=9092 #Kafka broker 默认监听的端口。客户端将通过此端口与 broker 通信。 listeners 和 advertised.listeners #这两个参数用于定义 Kafka broker 的监听地址和对外公布的地址。由于它们被注释掉了, 所以当前配置没有使用它们。但在生产环境中,通常会明确设置这些值。 num.network.threads=3 #Kafka broker 用于处理网络请求的线程数。 num.io.threads=8 #Kafka broker 用于处理磁盘 I/O 的线程数。 socket.send.buffer.bytes 和 socket.receive.buffer.bytes #用于设置 Kafka broker 的 TCP socket 发送和接收缓冲区大小。 socket.request.max.bytes=104857600 #Kafka broker 接收单个请求的最大字节数。 log.dirs=/opt/logs/kafka-logs #Kafka broker 存储日志文件的目录。Kafka 的所有日志(包括消息、索引等)都将存储在这里。 num.partitions=1 #默认创建的主题分区数。但请注意,这只是一个默认值,你可以在创建主题时指定不同的 分区数。 num.recovery.threads.per.data.dir=1 #用于日志恢复的线程数,每个日志目录一个。 offsets.topic.replication.factor=3 #Kafka 内部使用的 __consumer_offsets 主题的复制因子。这个主题是用来存储消费者偏移 量的。 transaction.state.log.replication.factor=1 #Kafka 内部使用的 __transaction_state 主题的复制因子。这个主题是用来存储事务日志的。 transaction.state.log.min.isr=1 #Kafka 内部使用的 __transaction_state 主题的最小 ISR(In-Sync Replicas)数量。ISR 是与 leader 保持同步的副本集合。 default.replication.factor=1 #默认情况下,新创建的主题的复制因子。但同样,你可以在创建主题时指定不同的复制因 子。 log.retention.hours=24 #日志保留时间(以小时为单位)。超过这个时间的日志将被删除。 log.segment.bytes=1073741824 #日志文件的最大大小(以字节为单位)。当日志文件达到这个大小时,Kafka 会创建一个 新的日志文件。 log.retention.check.interval.ms=10000 #Kafka 检查是否需要删除旧日志的间隔(以毫秒为单位)。 zookeeper.connect #Kafka broker 连接的 ZooKeeper 集群的地址列表。ZooKeeper 用于 Kafka 的元数据管理和 集群协调。 zookeeper.connection.timeout.ms=10000 #Kafka broker 与 ZooKeeper 之间的连接超时时间(以毫秒为单位)。 delete.topic.enable=true #是否允许删除主题。在较旧版本的 Kafka 中,这个主题删除功能是默认禁用的。但在较新 版本中,它通常是启用的。
kafka topic 常用指令
删除 topic cd /opt/services/kafka &&./bin/kafka-topics.sh --zookeeper server1:2181,server2:2181,server3:2181 --delete --topic topic_name 创建 topic /opt/services/kafka &&/bin/kafka-topics.sh --zookeeper server1:2181,server2:2181,server3:2181 --create --replication-factor 3 --partitions 1 --topic topic_name 查看 kafka-topic 信息 cd /opt/services/kafka && ./bin/kafka-topics.sh --zookeeper server1:2181,server2:2181,server3:2181 --list 查看 kafka-consumer 消费者 offset 偏移量 cd /opt/services/kafka && ./bin/kafka-consumer-group.sh --bootstrap-server server1:9092,server2:9092,server3:9092 --describe --all-groups