上一篇 云服务器搭建zookeeper集群 讲解了在云服务器环境下,zookeeper集群的搭建,今天我们在其基础上来搭建一下在云服务器环境下 kafka集群。
服务器环境
- 阿里云:轻量服务器 1核2G(CENTOS)
- 腾讯云:轻量服务器 1核2G(CENTOS)
- 金山云:轻量服务器 1核2G(CENTOS)
搭建Kafka集群
安装Scala
从scala官方网站地址 下载,我这里下载的是 scala-2.12.8.tgz。其他的安装步骤可以参考 linux SCALA 安装 及环境搭建。
将三台服务器都安装好Scala。
安装Kafka
安装好 Scala后,从Kafka 官方网站地址 下载,我这里下载的是 kafka_2.12-2.3.0.tgz 对应了上面的Scala语言版本。
具体的解压步骤这里就不多做赘述,我就简单的列出命令
解压压缩包 :
tar -xzvf kafka_2.12-2.3.0.tgz
重命名压缩包:
mv kafka_2.12-2.3.0 kafka
移动文件目录:
mv kafka /usr/local/
将三台机器安装好即可。
配置Kafka集群
主要配置的文件就是 /usr/local/kafka/config/server.properties
我们来打开这个文件进行编辑。
执行 vi /usr/local/kafka/config/server.properties
命令打开这个文件,以下我只给出修改的地方。
这里一定要注意修改 advertised.listeners
这个变量,否则在使用spring-kafka 时,会出现无法找到集群的情况。具体原因可以看其配置的注释。这里就不多做解释了。
将自己的zookeeper集群设置进去即可。
修改以上几个参数即可。
将三台服务器安装即可。
启动并测试
启动
我们进入bin文件夹 cd /usr/local/kafka/bin
执行 ./kafka-server-start.sh -daemon ../config/server.properties
将三台服务器启动后, 执行 jps
命令,查看进程状态
测试
创建测试topic (test)
进入bin文件夹
cd /usr/local/kafka/bin
首先选择一台服务器 执行
./kafka-topics.sh --zookeeper zookeeperIP1:2181,zookeeperIP2:2181,zookeeperIP3:2181 --topic test --replication-factor 1 --partitions 1 --create
将以上的 zookeeperIP 改为你自己的服务器外网IP
在另外一台服务器上创建生产者
./kafka-console-producer.sh --broker-list kafka1:9092,kafka2:9092,kafka3:9092 --topic test
将以上的 kafka 改为你自己服务器的外网IP(一定要和之前 配置的 advertised.listeners
参数保持一致 )。
在最后一台机器上创建消费者
./kafka-console-consumer.sh --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 --topic test --from-beginning
将以上的 kafka 改为你自己服务器的外网IP(一定要和之前 配置的 advertised.listeners
参数保持一致 )。
在生产者机器上 输入 任何信息,然后查看 消费者机器是否接收到,如果接收到,表示集群搭建完成
总结
在云服务器环境中搭建和本地虚拟机搭建还是有区别的,特别是Kafka 节点发现时 主机配置,这也是我在搭建的时候踩的坑。