前言:
本方法适用于开发测试环境。
集群方式搭建 见 《kafka集群搭建》
- 环境说明:
我的测试环境是阿里云ECS.
IP:172.xxx.xxx.149
绑定弹性IP:47.xxx.xxx.140
1.下载
url
http://kafka.apache.org/
2. 拷贝到服务器
- 下载完毕后,拷贝到/data 目录下,并解压缩。结果如下:
| [root@kafka-01 data]# ll |
| drwxr-xr-x 7 root root 4096 3月 2 15:28 kafka_2.13-2.7.0 |
| -rw-r--r-- 1 root root 68583422 3月 2 15:07 kafka_2.13-2.7.0.tgz |
| drwx------ 2 root root 16384 3月 2 10:54 lost+found |
| [root@kafka-01 data]# ln -s /data/kafka_2.13-2.7.0 /opt/kafka |
| [root@kafka-01 data]# cd /opt/ |
| [root@kafka-01 opt]# ll |
| 总用量 4 |
| lrwxrwxrwx 1 root root 22 3月 2 15:33 kafka -> /data/kafka_2.13-2.7.0 |
3. 启动zookeeper
测试环境使用kafka自带zookeeper即可
| # cd /opt/kafka/bin |
| # nohup ./zookeeper-server-start.sh ../config/zookeeper.properties > /tmp/zookeeper-run.log 2>&1 & |
4. 启动kafka
- 修改配置文件
修改/opt/kafka/config/server.properties 文件
| # |
| listeners=SASL_PLAINTEXT://172.xxx.xxx.149:9092 |
| security.inter.broker.protocol=SASL_PLAINTEXT |
| sasl.enabled.mechanisms=PLAIN |
| sasl.mechanism.inter.broker.protocol=PLAIN |
| advertised.listeners=SASL_PLAINTEXT://47.xxx.xxx.140:9092 |
listeners
写ECS的IP地址
advertised.listeners
写绑定的弹性IP(因为测试的是阿里云环境,因此需要多配置一个外网,如果不用外网只去掉这一行配置即可)
- 设置server密码
创建 /opt/kafka/config/kafka_server_jaas.conf 文件
| KafkaServer { |
| org.apache.kafka.common.security.plain.PlainLoginModule required |
| username="kafka" |
| password="xxxxxxx" |
| user_kafka="xxxxxxx" |
| user_enduser="xxxxxxx"; |
| }; |
修改启动脚本
在 /opt/kafka/bin/kafka-server-start.sh脚本中,kafka-run-class.sh启动前,添加如下内容:
| if [ "x$KAFKA_OPTS" = "x" ]; then |
| export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/kafka_server_jaas.conf" |
| fi |
- 为 client设置密码
创建 /opt/kafka/config/kafka_client_jaas.conf文件,写入登陆用户名密码
| KafkaClient { |
| org.apache.kafka.common.security.plain.PlainLoginModule required |
| username="enduser" |
| password="xxxxxx"; |
| }; |
- 修改consumer 脚本
修改 /opt/kafka/bin/kafka-console-consumer.sh 脚本,在kafka-run-class.sh启动前,添加如下内容
| if [ "x$KAFKA_OPTS" = "x" ]; then |
| export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/kafka_client_jaas.conf" |
| fi |
- 修改producer 脚本
修改 /opt/kafka/bin/kafka-console-producer.sh 脚本,在kafka-run-class.sh启动前,添加如下内容
| if [ "x$KAFKA_OPTS" = "x" ]; then |
| export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/kafka/config/kafka_client_jaas.conf" |
| fi |
| nohup /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties 1>/dev/null 2>&1 & |
5. 测试
| ./kafka-topics.sh --zookeeper localhost:2181 --create --topic Test --partitions 1 --replication-factor 1 |
- 生产者
打开一个终端,执行如下命令(ip写内网外网回环都可以),进入console后随便输入一串数字
| [root@kafka-01 bin]# ./kafka-console-producer.sh --broker-list 47.xxx.xxx.140:9092 --topic Test --producer-property security.protocol=SASL_PLAINTEXT --producer-property sasl.mechanism=PLAIN |
| >111 |
| >hongjian |
- 消费者
打开生产者的同时,打开一个消费者。可以看到接收到生产者的消息了。
| [root@kafka-01 bin]# ./kafka-console-consumer.sh --bootstrap-server 47.xxx.xxx.140:9092 --topic Test --consumer-property security.protocol=SASL_PLAINTEXT --consumer-property sasl.mechanism=PLAIN --from-beginning |
| 111 |
| hongjian |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律