irpas技术客

Kafka在Mac下的安装与使用_念兮为美_kafka mac

未知 8176

mac 安装kafka 安装kafka的原因安装kafka启动Zookeeper启动Kafka创建topic查看topic生产数据消费数据关闭zookeeper关闭kafka测试

安装kafka的原因

用户微服务登录后需要向广告微服务中发送用户登录的信息以获取用户画像(这个过程是异步的),故而在用户微服务中配置了kafka。配置的kafka的连接地址是测试环境的,为了避免给测试环境造成脏数据,因而我需要本地Mac安装kafka。

安装kafka

我的网盘:链接: https://pan.baidu.com/s/1mS6MVBehe2Kko70Zdln-hA?pwd=62wr 提取码: 62wr

kafka的官网地址:https://·mon.X509Util) [2022-04-22 14:23:55,384] INFO Registered signal handlers for TERM, INT, HUP (org.apache.kafka.common.utils.LoggingSignalHandler) [2022-04-22 14:23:55,388] INFO starting (kafka.server.KafkaServer) [2022-04-22 14:23:55,388] INFO Connecting to zookeeper on localhost:2181 (kafka.server.KafkaServer) [2022-04-22 14:23:55,411] INFO [ZooKeeperClient Kafka server] Initializing a new session to localhost:2181. (kafka.zookeeper.ZooKeeperClient) [2022-04-22 14:23:55,417] INFO Client environment:zookeeper.version=3.6.3--6401e4ad2087061bc6b9f80dec2d69f2e3c8660a, built on 04/08/2021 16:35 GMT (org.apache.zookeeper.ZooKeeper) [2022-04-22 14:23:55,417] INFO Client environment:host.name=localhost (org.apache.zookeeper.ZooKeeper) [2022-04-22 14:23:55,417] INFO Client environment:java.version=1.8.0_211 (org.apache.zookeeper.ZooKeeper) [2022-04-22 14:23:55,417] INFO Client environment:java.vendor=Oracle Corporation (org.apache.zookeeper.ZooKeeper) [2022-04-22 14:23:55,417] INFO Client environment:java.home=/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home (org.apache.zookeeper.ZooKeeper) 。。。 创建topic

开启新的terminal,进入kafka的bin目录,执行如下命令

./kafka-topics.sh --bootstrap-server localhost:9092 --create --topic testInfoTopic --partitions 2 --replication-factor 1

你会看到如上图所示的信息,就说明创建topic成功。

查看topic

基于上一个terminal的kafka的bin目录,执行如下命令

./kafka-topics.sh --list --bootstrap-server localhost:9092

你会看到所创建的topic:testInfoTopic

生产数据

基于上一个terminal的kafka的bin目录,执行如下命令:

./kafka-console-producer.sh --broker-list localhost:9092 --topic testInfoTopic

先不输入数据。

消费数据

开启新的terminal,进入kafka的bin目录中,执行如下命令

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testInfoTopic

你会看到,此时没有数据。

在生产者的terminal中发送消息: 在消费者的terminal中消费消息: 综上所看,消息成功发送,也被成功消费。

关闭zookeeper

开启新的terminal,进入kafka的bin目录,执行如下命令

sh zookeeper-server-stop.sh

再次执行这个命令,你会看到No zookeeper server to stop,说明zookeeper已关闭。

但是执行命令ps -eaf | grep zookeeper,仍看到zookeeper的进程,说明还有其子节点没有关闭。此为kafka没有关闭,即70267,于是去关闭kafka.

关闭kafka

在上面的terminal中,执行如下命令关闭kafka

sh kafka-server-stop.sh

再次执行该命令,你会看到No kafka server to stop。 执行命令ps -eaf | grep zookeeper,没看到70267的kafka节点进程,说明kafka已关闭。 进而执行命令ps -eaf | grep kafka ,没有kafka的进程,再次说明kafka已关闭。

因而,即便zookeeper关闭了,如果其下节点没有关闭,节点进程仍旧存在。因而,zookeeper和kafka都要关闭。

测试

启动用户微服务,其kafka的topic是UserLoginInfo。

使用postman调用登录接口,同时,在terminal启动kafka和zookeeper服务,再开启一新terminal,并执行命令:./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic UserLoginInfo ,得到如下消息: 说明kafka和zookeeper是生效的。

注意事项:./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic UserLoginInfo 在接口请求之前要执行。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Kafka #mac