环境和实现效果:
- 一台虚拟机安装Kafka
- 本地基于SpringBoot使用Kafka Client
安装zookeeper
1 | root@bogon:~# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz |
安装Kafka
1 | root@bogon:~# wget http://mirrors.cnnic.cn/apache/kafka/2.0.0/kafka_2.12-2.0.0.tgz |
验证端口
1 | root@bogon:~# netstat -tunlp|egrep "(2181|9092)" |
测试
生产者
1 | root@bogon:~# ./kafka-console-producer.sh --broker-list localhost:8086 --topic test |
消费者
1 | root@bogon:~# ./kafka-console-consumer.sh --bootstrap-server localhost:8086 --topic test --from-beginning |
修改配置
Ubuntu 的 /etc/hosts
文件的配置会导致 Client 连接失败,所以在 Kafka 的 server.properties 文件加入HostName
1 | host.name = 192.168.0.223 |
云部署
在阿里云上部署时,外网会有端口限制,所以要先确保9092端口是开放的(我部署时9092没开,没有权限开放,只有改为8086)
场景:
- Kafka独立部署
- 生产者和消费者在另外一台服务器
- 本地调试
端口虽然开放了,但是要做内网/外网远程连接,本地还是连接不了Kafka,用命令 telnet IP PORT
测试连接。
我内网虚拟机部署的Kafka没有此问题
例如:我的阿里云主机外网IP为:10.8.7.0
,在 kafka/config/server.properties
加入以下配置
1 | port=8086 |