Linux下搭建Kafka集群

搭建Kafka集群

  • 需要先搭建好zookeeper集群(具体查看我的上一篇博客)
  • 先在/usr/local下下载解压Kafka
  • 配置Kafka配置文件(config文件夹下的server.properties)
  • 在Kafka的bin目录下启动Kafka

需要先搭建好zookeeper集群(具体查看我的上一篇博客)

先在/usr/local下下载解压Kafka

wget http://mirror.bit.edu.cn/apache/kafka/2.2.2/kafka_2.11-2.2.2.tgz
tar -zxvf kafka_2.11-2.2.2.tgz
mv kafka_2.11-2.2.2 /usr/local/kafka

配置Kafka配置文件(config文件夹下的server.properties)

broker.id=0 #当前机器在集群中的唯一标识,和zookeeper的myid性质一样
listeners=PLAINTEXT://localhost:9092 #服务端监听端口,如果不是集群不要打开!!!
advertised.listeners=PLAINTEXT://your.host.name:9092 #broker发布给生产者消费者的监听host,如果不配置,默认使用listeners配置的信息
port=9092 #当前kafka对外提供服务的端口默认是9092
num.network.threads=3 #网络处理的线程数,一般不变
num.io.threads=8 #I/O处理线程数,一般比磁盘数大
log.dirs=/usr/local/kafka/logs #消息存放的目录,多个用,隔开
num.recovery.threads.per.data.dir=1 #用于处理每个目录的日志的线程数,默认是1,可以调大。
auto.create.topics.enable=true #是否默认创建主题,默认为true。实际环境中最好改为false,通过显示手动创建主题。
socket.send.buffer.bytes=102400 #发送缓冲区buffer大小
socket.receive.buffer.bytes=102400 #接收缓冲区大小
socket.request.max.bytes=104857600 #接收请求的最大数,不能超过JVM的堆内存大小
num.partitions=1 #默认的分区数,一个topic默认一个分区数。分区数越多,能提高并发性,但是也会导致该broker需要处理更多的文件。如果自动创建主题,则由该值决定自动创建的主题的分区数。
log.retention.hours=168 #消息的持久化时间,默认168小时,也就是1周
log.retention.minutes=30 #与上面的二选一,这里是持久化30分钟
log.retention.bytes=1073741824 #消息持久化大小,默认1G
log.segment.bytes=1073741824 #消息分块大小,默认1G,超过该大小后会重新创建新的segment file
compression.type=snappy #日志传输时候的压缩格式,包括lz4,snappy,gzip,建议打开
compressed.topics=topic1
zookeeper.connect= localhost:2181 #配置zookeeper连接,如果多个用,隔开

其中有些配置已经配置好,我们需要修改的一般只有

broker.id=0
log.dirs=/usr/local/kafka/logs
zookeeper.connect=192.168.65.77:2181,192.168.65.78:2181,192.168.65.79:2181
listeners=PLAINTEXT://192.168.65.77:9092

在Kafka的bin目录下启动Kafka

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

启动成功如下
Linux下搭建Kafka集群_第1张图片
其他kafka节点配置相同,需要改的只有broker.id(与zookeeper的service.id一样)和listeners(改为本机IP)
如果kafka总是自动宕机可以尝试将zookeeper.connection.timeout.ms=6000000调高一点
记得关闭每一台虚拟机的防火墙

systemctl stop firewalld.service

创建一个kafka的topic

./kafka-topics.sh --create --zookeeper 192.168.65.77:2181 --replication-factor 1 --partitions 1 --topic test

成功如下:
Linux下搭建Kafka集群_第2张图片
发送消息

./kafka-console-producer.sh --broker-list 192.168.65.77:9092 --topic test

在另一台虚拟机接收消息

./kafka-console-consumer.sh --bootstrap-server 192.168.65.78:9092 --topic test

你可能感兴趣的:(linux,kafka,框架工具,kafka,linux,java,zookeeper,网络)