工作纪实_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就知道了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/79626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python语法系列博客 · 第8期[特殊字符] Lambda函数与高阶函数:函数式编程初体验

上一期小练习解答(第7期回顾) ✅ 练习1:找出1~100中能被3或5整除的数 result [x for x in range(1, 101) if x % 3 0 or x % 5 0]✅ 练习2:生成字符串长度字典 words ["apple", "banana", "grape…

Redis--主从复制

目录 一、配置 1.1 建立复制 1.2 断开复制 1.3 安全性 1.4 只读 1.5 传输延迟 二、拓扑 2.1 一主一从结构 2.2 一主多从结构 2.3 树形主从结构 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他服务器,满足故障恢 复和负载均衡等需求…

已注册商标如何防止被不使用撤销!

近年来已注册商标被撤销越来越多,不乏著名企业或机构,普推知产商标老杨看到前一阵看到央视和百度等申请的商标也被申请撤销,连续三年不使用撤销也是正常的商标流程。 已注册商标被撤销普推老杨看到案例主要是集中在一些早期申请注册的好记的商…

解密大模型背后的秘密:训练、优化与挑战

解密大模型背后的秘密:训练、优化与挑战 在当今的人工智能领域,大模型(Large Language Models, LLMs)已经成为了一个不可忽视的存在。从自然语言处理到图像生成,再到推荐系统,大模型以其强大的泛化能力和创…

App自动化测试流程方案与架构设计

App自动化测试流程方案与架构设计 一、核心流程设计 #mermaid-svg-kN4GmIvHb8MMT83M {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kN4GmIvHb8MMT83M .error-icon{fill:#552222;}#mermaid-svg-kN4GmIvHb8MMT83M .e…

字节跳动发布视频生成基础大模型 Seaweed-7B

近日,字节跳动发布了其全新视频生成基础大模型 Seaweed-7B,该模型由字节 Seed 团队开发,参数量仅为 70 亿,在多个方面展现出卓越性能,为 AI 视频生成领域带来了新的突破。 功能特点 支持多种生成方式:Sea…

如何基于区块链进行虚拟电厂运营平台建设?

本项目旨在基于区块链技术建设虚拟电厂运营平台,以提升省内大用户及工业企业和工业园区的需求响应能力,优化能源结构配置,并推动能源交易、需求响应和现货交易等新型业态的发展。通过建设虚拟电厂,项目将实现工业企业及园区各供用…

LeetCode[459]重复的子字符串(KMP解法)

思路: 最近迷上了KMP算法,所以这道题也是来搞一下KMP算法,总所周知KMP是需要维护一个前缀表,KMP算法不是比较一个字符串包不包含另一个字符串的吗,这个重复字符串的题也能用?猫爷:毋庸置疑&…

spring-batch批处理框架(2)

文章目录 八、作业控制8.1 作业启动8.1.1 SpringBoot 启动8.1.2 Spring 单元测试启动8.1.3 RESTful API 启动 8.2 作业停止方案1:Step 步骤监听器方式方案2:StepExecution停止标记 8.3 作业重启8.3.1 禁止重启8.3.2 限制重启次数8.3.3 无限重启 九、Item…

uniapp的通用页面及组件基本封装

1.基本布局页面 适用于自定义Navbar头部 <template><view :style"{ background : param.bgColor , height: 100% }"><block v-if"param.noHead"><slot name"head"></slot></block><block v-if"!p…

基于MTF的1D-2D-CNN-GRU-Attention时序图像多模态融合的故障识别,适合研究学习(Matlab完整源码和数据),附模型研究报告

基于MTF的1D-2D-CNN-GRU-Attention时序图像多模态融合的故障识别&#xff0c;适合研究学习&#xff08;Matlab完整源码和数据&#xff09;&#xff0c;附模型研究报告 目录 基于MTF的1D-2D-CNN-GRU-Attention时序图像多模态融合的故障识别&#xff0c;适合研究学习&#xff08;…

HTTP/1.1 队头堵塞问题

文章目录 一、队头堵塞1、非管线化2、管线化 二、如何解决&#xff1f; 一、队头堵塞 1、非管线化 如图&#xff0c;http 请求必须等到上一个请求响应后才能发送&#xff0c;后面的以此类推&#xff0c;由此可以看出&#xff0c;在一个 tcp 通道中&#xff0c;如果某个 http 请…

施磊老师基于muduo网络库的集群聊天服务器(二)

文章目录 Cmake简单介绍Cmake与MakefileCmake配置CmakeLists.txt 编写完整cmake例子文件夹杂乱问题多级目录Cmakevscode 极其推荐 的 cmake方式 Mysql环境与编程mysql简单使用User表Friend表AllGroup表GroupUser表OfflineMessage表 集群聊天项目工程目录创建网络模块代码Chatse…

4.18---缓存相关问题(操作原子性,击穿,穿透,雪崩,redis优势)

为什么要用redis做一层缓存&#xff0c;相比直接查mysql有什么优势&#xff1f; 首先介绍Mysql自带缓存机制的问题&#xff1a; MySQL 的缓存机制存在一些限制和问题,它自身带的缓存功能Query Cache只能缓存完全相同的查询语句&#xff0c;对于稍有不同的查询语句&#xff0c…

健康养生指南

在快节奏的现代生活中&#xff0c;健康养生成为人们关注的焦点。它不仅关乎身体的强健&#xff0c;更是提升生活质量、预防疾病的关键。掌握科学的养生方法&#xff0c;能让我们在岁月流转中始终保持活力。 饮食是健康养生的基础。遵循 “均衡膳食” 原则&#xff0c;每日饮食需…

#去除知乎中“盐选”付费故事

添加油猴脚本&#xff0c;去除知乎中“盐选”付费故事 // UserScript // name 盐选内容隐藏脚本 // namespace http://tampermonkey.net/ // version 0.2 // description 自动隐藏含有“盐选专栏”或“盐选”文字的回答卡片 // author YourName // mat…

如何防止接口被刷

目录 &#x1f6e1;️ 一、常见的防刷策略分类 &#x1f527; 二、技术实现细节 ✅ 1. 基于 IP 限流 ✅ 2. 给接口加验证码 ✅ 3. 使用 Token 限制接口访问权限 ✅ 4. 给接口加冷却时间&#xff08;验证码类经典&#xff09; ✅ 5. 使用滑动窗口限流算法&#xff08;更精…

github 项目迁移到 gitee

1. 查看远程仓库地址 git remote -v 2. 修改远程仓库地址 确保 origin 指向你的 Gitee 仓库&#xff0c;如果不是&#xff0c;修改远程地址。 git remote set-url origin https://gitee.com/***/project.git 3. 查看本地分支 git branch 4. 推送所有本地分支 git p…

探索大语言模型(LLM):目标、原理、挑战与解决方案

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言语言模型的目标语言模型的数学表示语言模型面临的挑战解决参数量巨大的方法1. 马尔可夫假设2. 神经网络语言模型3.自监督学习4. 分布式表示 脑图总结 前言 在自…

Kubernetes》》k8s》》Namespace

Namespace 概述 Namespace&#xff08;命名空间&#xff09; 是 Kubernetes 中用于逻辑隔离集群资源的机制&#xff0c;可将同一集群划分为多个虚拟环境&#xff0c;适用于多团队、多项目或多环境&#xff08;如开发、测试、生产&#xff09;的场景。 核心作用&#xff1a; 资…