搭建与使用kafka的一些经验总结

一.kafka集群部署情况

   本次kafka版本使用的是kafka_2.12-2.1.1,在官网可以下载到,下载完解压,解压完直接可以使用。kafka分为两部分,一部分是zookeeper部署,一个kafka service部署。绝大多数时候zookeeper的部署需要集群模式,比如三台机器101,102,103,每台机器都要部署zookeeper服务。但是有些时候资源有限的情况下可以使用伪集群模式,一台机器启用不同进程,监听不同端口,来达到同样的目的。101机器上分别修改配置文件的端口2172 2173 2174等。同样kafka service也启用三个进程分别使用三个端口。这样伪集群就建立完毕。当然了真集群就是在三台机器上分别部署zookeeper和kafka service。三个配置一样部署如下:

zookeeper配置

dataDir=/home/kafka/kafka_2.12-0.11.0.1/data/zookeeper

# the port at which the clients will connect

clientPort=2172

# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=1000
server.1=192.168.1.101:2891:2892
server.2=192.168.1.102:2891:2892
server.3=192.168.1.103:2891:289

kafkaserver配置

broker.id=1
delete.topic.enable=true
listeners=PLAINTEXT://192.168.1.101:9095
advertised.listeners=PLAINTEXT://192.168.1.101:9095
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dir=/home/kafka/kafka_2.12-0.11.0.1/tmp/kafka-logs
log.dirs=/home/kafka/kafka_2.12-0.11.0.1/tmp/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=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.1.101:2172,192.168.1.102:2172,192.168.1.103:2172
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0

注意点:三个service.x 需要跟dataDir目录下myid一致,要不然启动不了。这三个是zookeeper之间进行负载均衡,以及通讯端口。

启动方式

nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties >logs/zookeeper.log 2>1 &
nohup ./bin/kafka-server-start.sh config/server.properties >logs/kafka.log 2>1 &

手动增加一个主题: zookeeper 罗列全所有机器
bin/kafka-topics.sh --create --zookeeper 192.168.1.101:2172,192.168.1.102:2172,192.168.1.103:2172 --replication-factor 2 --partitions 10 --topic test123

列出当前所有主题:
./kafka-topics.sh --list --zookeeper 192.168.1.101:2172

手动创建生产者去生产消息测试kafka是否正常工作
./bin/kafka-console-producer.sh --broker-list 192.168.1.101:9095 --topic test123
手动创建消费者去消费消息测试kafka是否正常工作
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.1.101:9095 --from-beginning --topic test123
查看kafka组分区消费情况
kafka-consumer-groups.sh --bootstrap-server 192.168.1.101:9092 --describe --group testgroup123
./bin/kafka-consumer-groups.sh --bootstrap-server 192.168.1.101:9092 --describe --group testgroup123 分组名称不是topic名称

kafka-topics.sh --describe --zookeeper localhost:9092 --topic notify_op_queue01   

猜你喜欢

转载自www.cnblogs.com/xlsss159/p/11090295.html