咸鱼

咸鱼是以盐腌渍后,晒干的鱼

0%

Kafka安装部署

环境和实现效果:

  1. 一台虚拟机安装Kafka
  2. 本地基于SpringBoot使用Kafka Client

安装zookeeper

1
2
3
4
5
root@bogon:~# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
root@bogon:~# tar zxf zookeeper-3.4.13.tar.gz
root@bogon:~/zookeeper-3.4.13/conf# cp zoo_sample.cfg zoo.cfg
root@bogon:~/zookeeper-3.4.13/conf# cd ../bin/
root@bogon:~/zookeeper-3.4.13/bin# ./zkServer.sh start

安装Kafka

1
2
3
4
root@bogon:~# wget http://mirrors.cnnic.cn/apache/kafka/2.0.0/kafka_2.12-2.0.0.tgz
root@bogon:~# tar zxf kafka_2.12-2.0.0.tgz
root@bogon:~# cd kafka_2.12-2.0.0/bin/
root@bogon:~/kafka_2.12-2.0.0/bin# ./kafka-server-start.sh ../config/server.properties &

验证端口

1
2
3
root@bogon:~# netstat -tunlp|egrep "(2181|9092)"
tcp 0 0 0.0.0.0:9092 0.0.0.0:* LISTEN 38349/java
tcp 0 0 0.0.0.0:2181 0.0.0.0:* LISTEN 37342/java

测试

生产者

1
root@bogon:~# ./kafka-console-producer.sh --broker-list localhost:8086 --topic test 

消费者

1
2
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)

场景:

  1. Kafka独立部署
  2. 生产者和消费者在另外一台服务器
  3. 本地调试

端口虽然开放了,但是要做内网/外网远程连接,本地还是连接不了Kafka,用命令 telnet IP PORT 测试连接。

我内网虚拟机部署的Kafka没有此问题

例如:我的阿里云主机外网IP为:10.8.7.0 ,在 kafka/config/server.properties 加入以下配置

1
2
3
4
port=8086
listeners=PLAINTEXT://0.0.0.0:8086
advertised.listeners=PLAINTEXT://10.8.7.0:8086
advertised.host.name=10.8.7.0.9