阿里云单服务器kafka伪集群搭建

主宰稳场 提交于 2020-12-13 10:16:24

下载并解压kafka

(前提是安装并配置好jdk环境变量,原因是kafka依赖于zookeeper,而zookeeper使用java编写,kafka使用scala编写都需要JVM运行环境)

kafka下载地址:http://kafka.apache.org/downloads
zookeeper下载地址:https://zookeeper.apache.org/releases.html

注:自己是存放在/usr/local目录下

使用自带的简版zookeeper搭建zookeeper集群

(也可使用自己下载的zookeeper搭建zookeeper及集群)

注:读者可以把 kafka文件夹复制多份来分别修改zookeeper.properties并运行各自的zookeeper或者仅把kafka文件夹中的zookeeper.properties复制多份使用同一个zookeeper-server-start.sh+不同的配置文件来启动多个zookeeper
在这里为了方便使用第二种方式


 

 1. 修改zookeeper.properties文件

clientPort=2181
dataDir=/usr/local/kafka_2.13-2.6.0/zk/data/zkdata-1
dataLogDir=/usr/local/kafka_2.13-2.6.0/zk/log/zklog-1
server.1=ljq:2888:3888
server.2=ljq:2889:3889
server.3=ljq:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
#  处理zookeeper日志,24小时清理一次
autopurge.purgeInterval=24
#   日志文件个数
autopurge.snapRetainCount=3

 2. 修改zookeeper2.properties文件
clientPort=2182
dataDir=/usr/local/kafka_2.13-2.6.0/zk/data/zkdata-2
dataLogDir=/usr/local/kafka_2.13-2.6.0/zk/log/zklog-2
server.1=ljq:2888:3888
server.2=ljq:2889:3889
server.3=ljq:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
#  处理zookeeper日志,24小时清理一次
autopurge.purgeInterval=24
#   日志文件个数
autopurge.snapRetainCount=3

 3. 修改zookeeper3.properties文件
clientPort=2183
dataDir=/usr/local/kafka_2.13-2.6.0/zk/data/zkdata-3
dataLogDir=/usr/local/kafka_2.13-2.6.0/zk/log/zklog-3
server.1=ljq:2888:3888
server.2=ljq:2889:3889
server.3=ljq:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
#  处理zookeeper日志,24小时清理一次
autopurge.purgeInterval=24
#   日志文件个数
autopurge.snapRetainCount=3
  1. 在dataDir中创建myid文件并写入对应server后的数字(1-255)
  2. 启动zookeeper
	cd /usr/local/kafka_2.13-2.6.0
  ./bin/zookeeper-server-start.sh -daemon config/zookeeper1.properties

其他两个同样方式启动(-daemon以守护线程运行)

搭建kafka集群

复制两份server.properties并修改内容

1.修改server.properties
broker.id=0
listeners=PLAINTEXT://ljq:9092
log.dirs=/usr/local/kafka_2.13-2.6.0/kafka-data/broker-0
zookeeper.connect=ljq:2181,ljq:2182,ljq:2183
log.retention.hours=168

2.修改server1.properties
broker.id=1
listeners=PLAINTEXT://ljq:9093
log.dirs=/usr/local/kafka_2.13-2.6.0/kafka-data/broker-1
zookeeper.connect=ljq:2181,ljq:2182,ljq:2183

2.修改server2.properties
broker.id=2
listeners=PLAINTEXT://ljq:9094
log.dirs=/usr/local/kafka_2.13-2.6.0/kafka-data/broker-2
zookeeper.connect=ljq:2181,ljq:2182,ljq:2183

3.启动kafka

	cd /usr/local/kafka_2.13-2.6.0
  ./bin/kafka-server-start.sh -daemon config/server.properties

其它两个同样方式启动(-daemon以守护线程运行)

4.创建话题

./bin/kafka-topics.sh --create --topic first --bootstrap-server ljq:9092,ljq:9093,ljq:9094 --partitions 3 --replication-factor 3

5.查看话题详细信息

./bin/kafka-topics.sh --describe --bootstrap-server ljq:9092 --topic first

6.启动生产者

./bin/kafka-console-producer.sh --bootstrap-server ljq:9092,ljq:9093 --topic first

7.启动消费者

./kafka-console-consumer.sh --bootstrap-server ljq:9093 --topic first --from-beginning
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!