当前位置: 首页 > article >正文

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

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

brew

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

常用命令

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

none代表没有启动

  1. brew services start xxx【启动brew管理的软件】
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有哪些命令

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

brew install kafka

安装完kafka之后,有必要就修改一下kafka的配置,端口9092,如果不修改则直接忽略【配置文件上面已提到过了】
是否具体需要zookeeper配合,其实只需要看一下server.properties文件中有没有zookeeper.connect=localhost:2181

brew install zookeeper
Name          Status  User File
kafka         started a58  ~/Library/LaunchAgents/homebrew.mxcl.kafka.plist
zookeeper     none         

2.启动kafka和zookeeper

brew services start zookeeper
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

a58@192 bin % kafka-topics  --create --bootstrap-server localhost:9092 --topic leo  
Created topic leo.

在查看一下是否真的有了

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消息

kafka-console-producer --bootstrap-server localhost:9092 --topic leo

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

3.消费kafka消息

再开一个控制台,执行下面的消费命令;
这里需要注意一个问题,kafka是支持按照指定偏移量offset进行消费的,即我们可以有选择的消费;

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

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

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

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

4.使用消费组

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

kafka-console-consumer --bootstrap-server localhost:9092 --topic leo --group one

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

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

kafka-console-consumer --bootstrap-server localhost:9092 --topic leo --group one

即此时有两个mac消费者控制台在消费,输入以下的命令,会发现,只有其中的一个控制台可以接收到消息,且只要一开始接收到消息的控制台不关闭,则会一直接收消息,另一个控制台消费者一点机会都没有;
这里我提个问题,如果不指定group的情况下,开两个消费者消费控制台,会怎么样?

假设把groupId改一下:two

kafka-console-consumer --bootstrap-server localhost:9092 --topic leo --group two

此时生产者控制台继续输入内容回车发送消息,我们会发现两个消费者消费的消息内容都是一样的;
为什么会这样呢,等我后面写文章讲一下kafka就知道了!

相关文章:

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

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

Cadence学习笔记之---库元件制作、元件放置

目录 01 | 引 言 02 | 环境描述 03 | 工具介绍 04 | 无源器件的制作 05 | IC芯片制作 06 | 放置元件 07 | 结 语 01 | 引 言 在上一篇小记中,讲述使用Cadence创建原理图工程和元件库; 本篇小记主要讲述如何制作常用的库元件,如电阻、…...

服务器如何修复SSL证书错误?

修复服务器上的SSL证书错误需要根据具体错误类型逐步排查和解决。以下是常见的步骤和解决方案: --- ### **1. 确认错误类型** 首先检查浏览器或工具(如OpenSSL)报错的具体信息,常见错误包括: - **证书过期**&#xf…...

图解Mysql原理:深入理解事务的特性以及它的实现机制

前言 大家好,我是程序蛇玩编程。 Mysql中事务大家不陌生吧,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。那它具有哪些特性,如何实现的呢?接着往下看。 正文 事务的特性: 事务的基本特性主要为四种…...

《前端面试题之 Vue 篇(第四集)》

目录 1、Vue 中实现强制刷新2、Vue3 和 Vue2 的区别解析3、 Vue3 性能优于 Vue2 的原因解析4、Vue3 使用 Proxy5、首屏优化6、组件的理解7、vue项目中合理规划文件目录8、Nuxt.js 简单了解9、单页应用10、 SEO 优化 1、Vue 中实现强制刷新 在 Vue 中实现强制刷新的分析如下&am…...

C++ 模块化编程(Modules)在大规模系统中的实践难点

随着项目规模的不断扩大和代码复杂性的提升,传统的 C++ 开发模式逐渐暴露出一些根深蒂固的问题,尤其是头文件和预处理器机制所带来的编译效率低下、依赖管理混乱以及代码复用性差等痛点。C++20 标准引入的模块化编程(Modules)特性,正是为了解决这些问题而设计的一项革命性…...

DasViewer主要功能流程介绍

摘要:本文主要介绍DasViewer软件本地数据、云端数据以及在线3DTiles服务模型浏览功能。 本地数据浏览功能 打开 DasViewer 浏览器;打开本地数据,包括如下几种方式: 选择工程文件(.dav、.dvp)、模型文件(…...

提交bug单时,应该说明哪些信息?

在提交 Bug 单时,为了让开发人员能够快速定位和解决问题,需要详细说明以下几方面信息: Bug 的基本信息 标题:简洁明了地概括 Bug 的主要问题,例如 “登录页面输入错误密码后提示信息不准确”。Bug 类型:明确…...

Linux[指令与权限]

Linux指令与权限 Linux环境中,打包文件有多种 tar (打包/解包) 指令 tar -czvf 文件要打包到的位置 文件(打包并压缩到) tar -xzvf 文件(在当前目录下解压) tar选项 -c创建压缩文件 -z使用gzip属性压缩 -v展现压缩过程 -f后面使用新建文档名 -x不要新建,解压 -C 文件…...

MySQL 的锁,表级锁是哪一层的锁?行锁是哪一层的锁?

MySQL 的锁层级与类型 在 MySQL 中,锁的层级和实现与存储引擎密切相关。 1. 表级锁(Table-Level Locks) (1)存储引擎层的表级锁 实现层级:存储引擎层(如 MyISAM、InnoDB)。特点&a…...

Flink介绍——实时计算核心论文之Dataflow论文总结

数据流处理的演变与 Dataflow 模型的革新 在大数据处理领域,流式数据处理系统的发展历程充满了创新与变革。从早期的 S4 到 Storm,再到 MillWheel,每一个系统都以其独特的方式推动了技术的进步。S4 以其无中心架构和 PE(Processi…...

Next.js 编译并运行

next build 是用于构建 Next.js 应用的命令,而运行构建后的应用则通过 next start。这里是一个简明的流程说明: ✅ 构建 Next.js 应用 next build这个命令会: 编译项目中的 TypeScript 和 JavaScript 代码;优化静态资源&#xf…...

星火燎原:Spark技术如何重塑大数据处理格局

在数字化浪潮席卷全球的今天,数据已成为企业发展与社会进步的核心驱动力。面对海量且复杂的数据,传统的数据处理技术逐渐显得力不从心。而Apache Spark作为大数据领域的明星框架,凭借其卓越的性能与强大的功能,如同一束璀璨的星火…...

LeetCode 2563.统计公平数对的数目:排序 + 二分查找

【LetMeFly】2563.统计公平数对的数目:排序 二分查找 力扣题目链接:https://leetcode.cn/problems/count-the-number-of-fair-pairs/ 给你一个下标从 0 开始、长度为 n 的整数数组 nums ,和两个整数 lower 和 upper ,返回 公平…...

2025深圳中兴通讯安卓开发社招面经

2月27号 中兴通讯一面 30多分钟 自我介绍 聊项目 我的优缺点,跟同事相比,有什么突出的地方 Handler机制,如何判断是哪个消息比较耗时 设计模式:模板模式 线程的状态 线程的开启方式 线程池原理 活动的启动模式 Service和Activity…...

【Redis】redis主从哨兵

Redis 主从复制 在访问量极高的场景下,单台 Redis 已难以承载所有请求,且单点故障风险高。通过主从复制,可以实现读写分离、数据备份与高可用。 概念 主节点(Master):负责写操作,将数据变更同…...

windows docker desktop 无法访问容器端口映射

为什么使用docker desktop访问映射的端口失败,而其端口对应的服务是正常的? 常见问题,容器的防火墙没有关闭!!! 以centos7为例,默认情况下防火墙处于开启状态: 这下访问就OK了...

OpenRAN 6G网络:架构、用例和开放问题

英文标题: Open RAN for 6G Networks: Architecture, Use Cases and Open Issues 作者信息 Bharat Agarwal:2016年毕业于Galgotias University,获得电气与电子工程学士学位;2023年在爱尔兰都柏林城市大学获得电子工程博士学位。2…...

《TCP/IP详解 卷1:协议》之第四、五章:ARP RARP

目录 一、ARP && RARP 报文结构 1、ARP请求报文示例 2、ARP响应报文示例 3、RARP请求报文示例 4、RARP响应报文示例 5、关于 padding 6、免费ARP 二、tcpdump 的使用 1、基本语法 2、常用选项 3、常用过滤条件 三、arp 命令的使用 1、基本语法 2、常用选…...

ttsfrd的使用

ttsfrd的作用: 文本标准化,将数字转成大写等预处理,例:数字处理123 → 一百二十三, 日期处理2023-12-25 → 2023年12月25日,特殊符号 40¥→40元。从而适合TTS朗读。 SDK模型下载 from modelsc…...

实战华为1:1方式1 to 1 VLAN映射

本文摘自笔者于2024年出版,并得到广泛读者认可,已多次重印的《华为HCIP-Datacom路由交换学习指南》。 华为设备的1 to 1 VLAN映射有1:1和N :1两种方式。1:1方式是将指定的一个用户私网VLAN标签映射为一个公网VLAN标签,是一种一对一的映射关系…...

NLP 梳理03 — 停用词删除和规范化

一、说明 前文我们介绍了标点符号删除、文本的大小写统一,本文介绍英文文章的另一些删除内容,停用词删除。还有规范化处理。 二、什么是停用词,为什么删除它们? 2.1 停用词的定义 停用词是语言中的常用词,通常语义…...

使用若依二次开发商城系统-1:搭建若依运行环境

前言 若依框架有很多版本,这里使用的是springboot3vue3这样的一个前后端分离的版本。 一.操作步骤 1 下载springboot3版本的后端代码 后端springboot3的代码路径,https://gitee.com/y_project/RuoYi-Vue 需要注意我们要的是springboot3分支。 先用g…...

HarmonyOS-ArkUI: 组件内转场(transition)

什么是组件内转场 组件内转场指的是组件在触发转场的时机所具备的动画效果。转场的时机指的是,组件元素发生变化的时候,具体为: 组件被添加组件被删除组件可见性发生变化-Visibility这些场景有时候单纯的让其消失,出现,平移有时候视觉效果会比较突兀。我们可以利用组件内…...

MVVM框架详解:原理、实现与框架对比

文章目录 1. 引言2. MVVM的基本概念3. MVVM的原理与实现3.1 数据绑定原理3.2 命令模式实现 4. MVVM的优势与局限性4.1 优势4.2 局限性 5. 常见MVVM框架对比5.1 MVVM Light5.2 Prism5.3 Caliburn.Micro5.4 MvvmCross5.5 ReactiveUI 6. 实际应用示例7. 最佳实践与注意事项7.1 MVV…...

opencv--图像处理

这里所说的图像处理并不是专业术语&#xff0c;而是值开发人员对图像的处理技术方法。 教程 菜鸟教程 书籍推介--<opencv4.5 计算机视觉开发实践 基于vc>.朱文伟 获取图像数据 三种方式&#xff1a; cv::VideoCapture&#xff1a; OpenCV 提供的视频捕获类&#xff0…...

达梦官方管理工具 SQLark——全面支持达梦、Oracle、MySQL、PostgreSQL 数据库!

SQLark 是一款面向信创应用开发者的数据库开发和管理工具&#xff0c;用于快速查询、创建和管理不同类型的数据库系统&#xff0c;已支持达梦、Oracle、MySQL数据库&#xff1b;在最新的 V3.4 版本中&#xff0c;SQLark 新增了对 PostgreSQL 的支持&#xff0c;兼容 PostgreSQL…...

解读大型语言模型:从Transformer架构到模型量化技术

一、生成式人工智能概述 生成式人工智能&#xff08;Generative Artificial Intelligence&#xff09;是一种先进的技术&#xff0c;能够生成多种类型的内容&#xff0c;包括文本、图像、音频以及合成数据等。其用户界面的便捷性极大地推动了其广泛应用&#xff0c;用户仅需在…...

理解计算机系统_网络编程(1)

前言 以<深入理解计算机系统>(以下称“本书”)内容为基础&#xff0c;对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定 引入 网络是计算机科学中非常重要的部分,笔者过去看过相关的内…...

前端面试场景题

目录 1.项目第一次加载太慢优化 / vue 首屏加载过慢如何优化 2.说说了解的es6-es10的东西有哪些 ES6&#xff08;ES2015&#xff09;之后&#xff0c;JavaScript 新增了许多实用的数组和对象方法&#xff0c;下面为你详细介绍&#xff1a; 3.常见前端安全性问题 XSS&#…...