工作纪实_63-Mac电脑使用brew安装软件

最近在接触kafka,想着在自己的电脑安装一套环境,docker也能行,但是还是想装一些原生的软件试试看,因此便想着整理一下brew的命令,这命令确实是方便,不需要下载tar包乱八七糟的东西,一键安装

brew

Brew全称叫Homebrew,是Mac系统上的软件包管理工具;

常用命令

  1. brew services【查看所有brew管理的软件】
shell 复制代码
> brew services
Name          Status  User File
redis         started a58  ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
zookeeper     none         

none代表没有启动

  1. brew services start xxx【启动brew管理的软件】
shell 复制代码
a58@192 kafka % brew services start zookeeper
==> Successfully started `zookeeper` (label: homebrew.mxcl.zookeeper)
  1. breew services stop 软件名【停止】
  2. brew services restart 软件名【重启】
  3. brew upgrade 软件名【更新软件】
  4. brew list 或 brew services 【查看已安装的软件包列表】
  5. brew list --versions 软件名【查看已安装的软件包版本】
  6. brew search 软件名【搜索云端的软件】
  7. brew install 软件名【安装】
  8. brew uninstall【卸载】
  9. cd /opt/homebrew/etc【已安装软件的配置文件位置】

brew安装的软件配置,一般都在这个地方,比如kafka的话,是在/opt/homebrew/etc/kafka目录下

cd /opt/homebrew/bin【已安装软件的支持的命令】

brew安装的软件支持的命令,一般都在这个地方,在/opt/homebrew/bin目录,我们可以看一下kafka有哪些命令

shell 复制代码
a58@192 bin % ls -l |grep kafka
lrwxr-xr-x  1 a58 admin   47  4 18 22:27 connect-distributed -> ../Cellar/kafka/3.3.1_1/bin/connect-distributed
lrwxr-xr-x  1 a58 admin   48  4 18 22:27 connect-mirror-maker -> ../Cellar/kafka/3.3.1_1/bin/connect-mirror-maker
lrwxr-xr-x  1 a58 admin   46  4 18 22:27 connect-standalone -> ../Cellar/kafka/3.3.1_1/bin/connect-standalone
lrwxr-xr-x  1 a58 admin   38  4 18 22:27 kafka-acls -> ../Cellar/kafka/3.3.1_1/bin/kafka-acls
lrwxr-xr-x  1 a58 admin   53  4 18 22:27 kafka-broker-api-versions -> ../Cellar/kafka/3.3.1_1/bin/kafka-broker-api-versions
lrwxr-xr-x  1 a58 admin   41  4 18 22:27 kafka-cluster -> ../Cellar/kafka/3.3.1_1/bin/kafka-cluster
lrwxr-xr-x  1 a58 admin   41  4 18 22:27 kafka-configs -> ../Cellar/kafka/3.3.1_1/bin/kafka-configs
lrwxr-xr-x  1 a58 admin   50  4 18 22:27 kafka-console-consumer -> ../Cellar/kafka/3.3.1_1/bin/kafka-console-consumer
lrwxr-xr-x  1 a58 admin   50  4 18 22:27 kafka-console-producer -> ../Cellar/kafka/3.3.1_1/bin/kafka-console-producer
lrwxr-xr-x  1 a58 admin   49  4 18 22:27 kafka-consumer-groups -> ../Cellar/kafka/3.3.1_1/bin/kafka-consumer-groups
lrwxr-xr-x  1 a58 admin   52  4 18 22:27 kafka-consumer-perf-test -> ../Cellar/kafka/3.3.1_1/bin/kafka-consumer-perf-test
lrwxr-xr-x  1 a58 admin   51  4 18 22:27 kafka-delegation-tokens -> ../Cellar/kafka/3.3.1_1/bin/kafka-delegation-tokens
lrwxr-xr-x  1 a58 admin   48  4 18 22:27 kafka-delete-records -> ../Cellar/kafka/3.3.1_1/bin/kafka-delete-records
lrwxr-xr-x  1 a58 admin   42  4 18 22:27 kafka-dump-log -> ../Cellar/kafka/3.3.1_1/bin/kafka-dump-log
lrwxr-xr-x  1 a58 admin   42  4 18 22:27 kafka-features -> ../Cellar/kafka/3.3.1_1/bin/kafka-features
lrwxr-xr-x  1 a58 admin   45  4 18 22:27 kafka-get-offsets -> ../Cellar/kafka/3.3.1_1/bin/kafka-get-offsets
lrwxr-xr-x  1 a58 admin   49  4 18 22:27 kafka-leader-election -> ../Cellar/kafka/3.3.1_1/bin/kafka-leader-election
lrwxr-xr-x  1 a58 admin   42  4 18 22:27 kafka-log-dirs -> ../Cellar/kafka/3.3.1_1/bin/kafka-log-dirs
lrwxr-xr-x  1 a58 admin   49  4 18 22:27 kafka-metadata-quorum -> ../Cellar/kafka/3.3.1_1/bin/kafka-metadata-quorum
lrwxr-xr-x  1 a58 admin   48  4 18 22:27 kafka-metadata-shell -> ../Cellar/kafka/3.3.1_1/bin/kafka-metadata-shell
lrwxr-xr-x  1 a58 admin   46  4 18 22:27 kafka-mirror-maker -> ../Cellar/kafka/3.3.1_1/bin/kafka-mirror-maker
lrwxr-xr-x  1 a58 admin   52  4 18 22:27 kafka-producer-perf-test -> ../Cellar/kafka/3.3.1_1/bin/kafka-producer-perf-test
lrwxr-xr-x  1 a58 admin   53  4 18 22:27 kafka-reassign-partitions -> ../Cellar/kafka/3.3.1_1/bin/kafka-reassign-partitions
lrwxr-xr-x  1 a58 admin   54  4 18 22:27 kafka-replica-verification -> ../Cellar/kafka/3.3.1_1/bin/kafka-replica-verification
lrwxr-xr-x  1 a58 admin   43  4 18 22:27 kafka-run-class -> ../Cellar/kafka/3.3.1_1/bin/kafka-run-class
lrwxr-xr-x  1 a58 admin   46  4 18 22:27 kafka-server-start -> ../Cellar/kafka/3.3.1_1/bin/kafka-server-start
lrwxr-xr-x  1 a58 admin   45  4 18 22:27 kafka-server-stop -> ../Cellar/kafka/3.3.1_1/bin/kafka-server-stop
lrwxr-xr-x  1 a58 admin   41  4 18 22:27 kafka-storage -> ../Cellar/kafka/3.3.1_1/bin/kafka-storage
lrwxr-xr-x  1 a58 admin   59  4 18 22:27 kafka-streams-application-reset -> ../Cellar/kafka/3.3.1_1/bin/kafka-streams-application-reset
lrwxr-xr-x  1 a58 admin   40  4 18 22:27 kafka-topics -> ../Cellar/kafka/3.3.1_1/bin/kafka-topics
lrwxr-xr-x  1 a58 admin   46  4 18 22:27 kafka-transactions -> ../Cellar/kafka/3.3.1_1/bin/kafka-transactions
lrwxr-xr-x  1 a58 admin   53  4 18 22:27 kafka-verifiable-consumer -> ../Cellar/kafka/3.3.1_1/bin/kafka-verifiable-consumer
lrwxr-xr-x  1 a58 admin   53  4 18 22:27 kafka-verifiable-producer -> ../Cellar/kafka/3.3.1_1/bin/kafka-verifiable-producer
lrwxr-xr-x  1 a58 admin   35  4 18 22:27 trogdor -> ../Cellar/kafka/3.3.1_1/bin/trogdor
lrwxr-xr-x  1 a58 admin   56  4 18 22:27 zookeeper-security-migration -> ../Cellar/kafka/3.3.1_1/bin/zookeeper-security-migration
lrwxr-xr-x  1 a58 admin   50  4 18 22:27 zookeeper-server-start -> ../Cellar/kafka/3.3.1_1/bin/zookeeper-server-start
lrwxr-xr-x  1 a58 admin   49  4 18 22:27 zookeeper-server-stop -> ../Cellar/kafka/3.3.1_1/bin/zookeeper-server-stop
lrwxr-xr-x  1 a58 admin   43  4 18 22:27 zookeeper-shell -> ../Cellar/kafka/3.3.1_1/bin/zookeeper-shell

1.安装一套kafka环境

kafka4.0版本就不再需要zk做注册中心了,但是我使用brew安装发现版本是3.4.4,因此需要单独安装一下zookeeper;

1. 安装kafka和zookeeper

shell 复制代码
brew install kafka

安装完kafka之后,有必要就修改一下kafka的配置,端口9092,如果不修改则直接忽略【配置文件上面已提到过了】

是否具体需要zookeeper配合,其实只需要看一下server.properties文件中有没有zookeeper.connect=localhost:2181

shell 复制代码
brew install zookeeper
shell 复制代码
Name          Status  User File
kafka         started a58  ~/Library/LaunchAgents/homebrew.mxcl.kafka.plist
zookeeper     none         

2.启动kafka和zookeeper

shell 复制代码
brew services start zookeeper
shell 复制代码
Name          Status  User File
grafana       none         
kafka         started a58  ~/Library/LaunchAgents/homebrew.mxcl.kafka.plist
zookeeper     started a58  ~/Library/LaunchAgents/homebrew.mxcl.zookeeper.plist

3.kafka小试牛刀

上面一开始我们就提到,brew安装的软件命令都在/opt/homebrew/bin下,且使用ls -l |grep kafka就可以查看到相关的命令;

那么我们试一下吧,看看能不能完成一次生产消费的case

1.创建一个topic=leo

shell 复制代码
a58@192 bin % kafka-topics  --create --bootstrap-server localhost:9092 --topic leo  
Created topic leo.

在查看一下是否真的有了

shell 复制代码
a58@192 bin % kafka-topics --list --bootstrap-server localhost:9092
leo

好,成功后就再继续创一个vicky,方便后续使用;

  • kafka-topics : 管理Kafka主题,涵盖创建、删除、查看;
  • --create:表明要执行创建动作,具体什么动作看前面的主命令
  • --bootstrap-server localhost:9092:指定Kafka集群的初始连接地址来作为命令的执行方
  • --topic:主题名,此处表示要创建的topic
  • --list:此处表明列出所有topic列表

2.生产kafka消息

shell 复制代码
kafka-console-producer --bootstrap-server localhost:9092 --topic leo

输入这段命令后会进入一个控制台:输入消息内容回车即发送成功了,如下图,我发送了3条消息:

3.消费kafka消息

再开一个控制台,执行下面的消费命令;

这里需要注意一个问题,kafka是支持按照指定偏移量offset进行消费的,即我们可以有选择的消费;

1.从offset=0开始消费topic
shell 复制代码
kafka-console-consumer --bootstrap-server localhost:9092 --topic leo --from-beginning
123
456
789

这命令意味着,不管生产方何时发送的消息,只要这个命令下去则从头开始消费

2.从当前执行完命令后开始消费topic
shell 复制代码
kafka-console-consumer --bootstrap-server localhost:9092 --topic leo
3.从偏移量offset=[num]时消费
shell 复制代码
kafka-console-consumer --bootstrap-server localhost:9092 --topic leo --partition 0 --offset 5

这个命令,是必须要指定分区的:--partition 0;我是本地环境,只有默认的分区,可以缺省,但生产环境不能缺省;

4.使用消费组

我加上一个命令:--group one即指定消费组id=one

shell 复制代码
kafka-console-consumer --bootstrap-server localhost:9092 --topic leo --group one

生产者生产消息,当前消费者的控制台,会收到消息;

假设我重新再开一个mac控制台,命令也是:

shell 复制代码
kafka-console-consumer --bootstrap-server localhost:9092 --topic leo --group one

即此时有两个mac消费者控制台在消费,输入以下的命令,会发现,只有其中的一个控制台可以接收到消息,且只要一开始接收到消息的控制台不关闭,则会一直接收消息,另一个控制台消费者一点机会都没有;

这里我提个问题,如果不指定group的情况下,开两个消费者消费控制台,会怎么样?

假设把groupId改一下:two

shell 复制代码
kafka-console-consumer --bootstrap-server localhost:9092 --topic leo --group two

此时生产者控制台继续输入内容回车发送消息,我们会发现两个消费者消费的消息内容都是一样的;

为什么会这样呢,等我后面写文章讲一下kafka就知道了!

相关推荐
fengyun289115 小时前
fcpx音视频剪辑编辑 Final Cut Pro X(Mac电脑)
macos·mac
茫茫人海一粒沙1 天前
理解 Confluent Schema Registry:Kafka 生态中的结构化数据守护者
分布式·kafka
伊成1 天前
Mac中如何Chrome禁用更新[update chflags macos]
chrome·mac
dessler1 天前
Kafka-消费者(Consumer)和消费者组(Consumer Group)
linux·运维·kafka
虚!!!看代码1 天前
【Kafka使用方式以及原理】
分布式·kafka
fengyun28911 天前
Mac电脑 虚拟机 VMware Fusion13
macos·mac·虚拟机
找不到、了11 天前
kafka消费的模式及消息积压处理方案
java·kafka
API开发11 天前
苹果芯片macOS安装版Homebrew(亲测) ,一键安装node、python、vscode等,比绿色软件还干净、无污染
vscode·python·docker·nodejs·openssl·brew·homebrew
超级小忍11 天前
Spring Boot 集成 Apache Kafka 实战指南
spring boot·kafka·apache
小韩加油呀11 天前
logstash读取kafka日志写到oss归档存储180天
kafka·logstash