工作紀實_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.pswp.cn/diannao/79626.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79626.shtml
英文地址,請注明出處:http://en.pswp.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; 資…