• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

macbook M1 Homebrew配置导致本机的Kafka启动失效

武飞扬头像
蒋大钊!
帮助1

笔者想在macbook M1上通过Homebrew安装Kafka
整体流程为:

  1. 安装kafka
    brew install kafka
  2. 启动zookeeper
    brew services start zookeeper
  3. 启动kafka
    brew services start kafka
  4. 启动provider,创建一个jxztest的主题
    kafka-console-producer --bootstrap-server localhost:9092 --topic jxztest
  5. 启动consumer,接受jxztest的主题中发来的消息
    kafka-console-consumer --bootstrap-server localhost:9092 --topic jxztest --from-beginning

流程大体都没错,但始终报下面的错:
>[2023-02-08 19:56:11,712] WARN [Producer clientId=console-producer] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

在网上搜索说是需要修改 kafka的server.properties配置文件,因此通过brew list kafka命令到下面的文件目录中去找,
学新通
/opt/homebrew/Cellar/kafka/3.3.1_1/.bottle/etc/kafka下找到了server.properties文件中修改了下面两项:

  1. 修改listeners
    listeners=PLAINTEXT://localhost:9092
  2. 修改advertised.listeners
    advertised.listeners=PLAINTEXT://localhost:9092

按照上面的启动流程走一遍,还是不能跑通,继续报错如下:
学新通
但是直接通过下面的命令却可以启动provider

kafka-server-start /opt/homebrew/Cellar/kafka/3.3.1_1/.bottle/etc/kafka/server.properties

因此隐隐感觉是brew services restart命令的问题,于是

cd /Users/gabriel/Library/LaunchAgents
vim homebrew.mxcl.kafka.plist

才发现命令中用到的是/opt/homebrew/etc/kafka/server.properties这个配置文件,而不是上面通过brew list kafka命令搜到的配置文件
学新通
而我刚好在之前偶然将其中的listeners接口改错了,因此导致provider怎么也启动不起来。

这主要原因就是网上的在mac m1上安装kafka文章大多也是基于Intel架构的,所以大部分bug都要去修改/usr/local/,然而Homebrew官方脚本会根据是否是Arm64架构判断mac系统的芯片为Intel或者M1来选择安装路径为/usr/local/或者/opt/Homebrew/,我的问题刚好就出在了后面。

至于Mac下Homebrew安装的软件放在什么地方,可以参考Mac下Homebrew安装的软件放在什么地方
其中:

一般情况是这么操作的:

1、通过brew install安装应用最先是放在/usr/local/Cellar/目录下。

2、有些应用会自动创建软链接放在/usr/bin或者/usr/sbin,同时也会将整个文件夹放在/usr/local

3、可以使用brew list 软件名确定安装位置。

对于M1芯片的macbook来说 可以理解成这样:

1、通过brew install安装应用最先是放在/usr/local/Cellar/目录下。

2、有些应用会自动创建软链接放在/usr/bin或者/usr/sbin,同时也会将整个文件夹放在/opt/Homebrew/下

3、可以使用brew list 软件名确定安装位置,也只是确定了/usr/local/Cellar/,要注意前后配置文件不一致,优先使用/opt/Homebrew/下配置文件的情况。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgffihk
系列文章
更多 icon
同类精品
更多 icon
继续加载