龙空技术网

kafka+zk集群部署

极简力 31

前言:

现时朋友们对“apacheserver集群”可能比较关心,同学们都想要剖析一些“apacheserver集群”的相关文章。那么小编也在网络上搜集了一些对于“apacheserver集群””的相关内容,希望你们能喜欢,同学们一起来学习一下吧!

kafka+zk集群部署环境要求

jdk 1.8.0_211

apache-zookeeper-3.5.7-bin

kafka_2.13-2.6.0

服务器要求

系统:centos 7.6

服务器数量:三台

T1 192.168.0.5

T2 192.168.0.6

T3 192.168.0.7

Zookeeper集群部署增加hosts配置:

vi /etc/hosts

192.168.0.5 T1

192.168.0.6 T2

192.168.0.7 T3

下载安装包: 解压安装:

tar -xzf apache-zookeeper-3.5.7-bin.tar.gz -C /usr/local/

ln -s /usr/local/apache-zookeeper-3.5.7-bin/ /usr/local/zookeeper

增加配置:

vi /usr/local/zookeeper/conf/zoo.cfg

#确保zookeeper存储目录存在

#mkdir –p /home/data/zookeeper/; mkdir –p /home/logs/zookeeper/

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/home/data/zookeeper/

dataLogDir=/home/logs/zookeeper/

clientPort=2181

#maxClientCnxns=60

server.1=192.168.0.5:2888:3888

server.2=192.168.0.6:2888:3888

server.3=192.168.0.7:2888:3888

创建myid

这个步骤需要分别在T1,T2,T3创建不同的id来区分集群的机器,而且这个id必须跟上面zoo.cfg中server.后面的数字对应。

T1执行

echo '1' > /home/data/zookeeper/myid

T2执行

echo '2' > /home/data/zookeeper/myid

T3执行

echo '3' > /home/data/zookeeper/myid

启动服务

启动:/usr/local/zookeeper/bin/zkServer.sh start

停止:/usr/local/zookeeper/bin/zkServer.sh stop

查看状态: /usr/local/zookeeper/bin/zkServer.sh status

Kafka集群部署解压安装

tar -xzf kafka_2.13-2.6.0.tgz -C /usr/local/

ln -s /usr/local/kafka_2.13-2.6.0/ /usr/local/kafka

修改配置:

创建目录: mkdir /home/logs/kafka-logs

清空配置: >/usr/local/kafka/config/server.properties

增加配置: vi /usr/local/kafka/config/server.properties

#注意broker id 三台服务器不能一致,跟zookeeper id对应1 2 3

broker.id=1

#listeners=PLAINTEXT://:9092

#advertised.listeners=PLAINTEXT://your.host.name: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=/home/logs/kafka-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=1

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1

log.retention.hours=720

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

#zookeeper集群地址

zookeeper.connect=192.168.0.5:2181,192.168.0.6:2181,192.168.0.7:2181

zookeeper.connection.timeout.ms=18000

group.initial.rebalance.delay.ms=0

offsets.commit.required.acks = -1

#副本数

offsets.topic.replication.factor=3

transaction.state.log.replication.factor=3

启动服务

启动:

/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

停止:

/usr/local/kafka/bin/kafka-server-stop.sh

查看集群状态:

/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper T1

/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper T2

/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper T3

Kafka测试创建 Topic

参数 --topic 指定 Topic 名,--partitions 指定分区数,--replication-factor 指定备份数:

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper T1:2181,T2:2181,T3:2181 --replication-factor 3 --partitions 1 --topic test

消费消息

在T1服务器执行

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server T1:9092,T2:9092,T3:9092 --topic test --from-beginning

停止节点

在Leader节点服务器执行,Leader使用查看集群状态命令查看

例如:

Leader为2,在T2服务器执行

/usr/local/kafka/bin/kafka-server-stop.sh

查看集群状态:

/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 192.168.0.6

生产消息

在T3服务器执行

/usr/local/kafka/bin/kafka-console-producer.sh --broker-list T1:9092,T2:9092,T3:9092 --topic test

六、kafka基本使用说明

Kafka

# Start the ZooKeeper service

# Note: Soon, ZooKeeper will no longer be required by Apache Kafka.

$ bin/zookeeper-server-start.sh config/zookeeper.properties

# Start the Kafka broker service

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

启动 Kafka

后台常驻方式,带上参数 -daemon,如:

/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

指定 JMX port 端口启动,指定 jmx,可以方便监控 Kafka 集群

JMX_PORT=9991 /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

停止 Kafka

/usr/local/kafka/bin/kafka-server-stop.sh

Topic

创建 Topic

参数 --topic 指定 Topic 名,--partitions 指定分区数,--replication-factor 指定备份数:

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper T1:2181,T2:2181,T3:2181 --replication-factor 3 --partitions 1 --topic test

注意,如果配置文件 server.properties 指定了 Kafka 在 zookeeper 上的目录,则参数也要指定,否则会报无可用的 brokers(下面部分命令也有同样的情况),如:

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 1 --partitions 1 --topic test

列出所有 Topic

/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181

查看 Topic

/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

增加 Topic 的 partition 数

/usr/local/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --partitions 5

查看 topic 指定分区 offset 的最大值或最小值

time 为 -1 时表示最大值,为 -2 时表示最小值:

/usr/local/kafka/bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic test --time -1 --broker-list 127.0.0.1:9092 --partitions 0

删除 Topic

/usr/local/kafka/bin/kafka-topics.sh --zookeeper localhost:2181 --topic test --delete

生产消息

/usr/local/kafka/bin/kafka-console-producer.sh --broker-list T1:9092,T2:9092,T3:9092 --topic test

消费消息

从头开始

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server T1:9092,T2:9092,T3:9092 --topic test --from-beginning

从尾部开始

从尾部开始取数据,必需要指定分区:

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0

指定分区

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0

取指定个数

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0 --max-messages 1

消费者 Group

指定 Group

/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test -group test_group --from-beginning

消费者 Group 列表

/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

查看 Group 详情

/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --describe

输出:

Consumer group 'test_group' has no active members.

TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID

test 0 5 5 0 - - -

# CURRENT-OFFSET: 当前消费者群组最近提交的 offset,也就是消费者分区里读取的当前位置

# LOG-END-OFFSET: 当前最高水位偏移量,也就是最近一个读取消息的偏移量,同时也是最近一个提交到集群的偏移量

# LAG:消费者的 CURRENT-OFFSET 与 broker 的 LOG-END-OFFSET 之间的差距

删除 Group 中 Topic

/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --topic test --delete

删除 Group

/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --delete

平衡 leader

/usr/local/kafka/bin/kafka-preferred-replica-election.sh --bootstrap-server localhost:9092

自带压测工具

/usr/local/kafka/bin/kafka-producer-perf-test.sh --topic test --num-records 100 --record-size 1 --throughput 100 --producer-props bootstrap.servers=localhost:9092

创建

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic config_product

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic matching_order_ADO-USDT

/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic matching_message_ADO-USDT

标签: #apacheserver集群