RabbitMQ學習3----運行和管理RabbitMQ

1.服務為管理

  Erlang天生就是為了讓應用程序無需知道對方是否存在同一臺機器上即可互相通信。

  Erlang節點:Erlang虛擬機的每個實例。多個Erlang應用程序可以運行在同一個節點之上。節點之間可以進行本地通信(不管他們是運行在同一臺服務器之上)。舉例說明:一個運行在節點A上應用程序可以調用節點B上應用程序的方法,就好像調用本地函數一樣。如果應用程序由于某些原因奔潰,Erlang節點會自動嘗試重啟應用程序。

1.1啟動節點

  在RabbitMQ的安裝目錄下運行./rabbitmq-server。也可以通過增加-detached參數的方式啟動RabbitMQ節點,以守護程序的方式在后臺運行:./rabbitmq-server? -detached.

1.2停止節點

  在RabbitMQ的安裝目錄下運行:./rabbitmqctl stop時,rabbitmqctl會和本地節點通信并指示其干凈的關閉。也可以指定關閉不同的節點,包括遠程節點。只需要傳入-n?rabbit@[hostname]選項即可。這時整個Rabbitmq節點包括Erlang都關閉了。

  停止RabbitMQ只需要運行:./rabbitmactl stop_app即可。

1.3RabbitMQ的配置文件

[{mnesia,[{dump_log_write_threshold,1000}]},{rabbit,[{vm_memory_high_watermark,0.4}]}   
]

  rabbitmq的配置文件是一個包含了嵌套哈希表表的數組。通過外部配置數組,每個Erlang應用程序會有自己的哈希表來配置選項。

  注意:RabbitMQ中的每個隊列、交換器和綁定的元數據都是保存到Mnesia的。Mnesia是內建在Erlang的非SQL數據庫。Mnesia通過將RabbitMQ元數據寫入一個僅限追加的日志文件以確保其完整性。然后在定期將日志內容轉儲到真實的Mnesia數據庫文件中。

2.請求許可

  可以為連接到RabbitMQ上的用戶設置不同級別的權限(讀、寫和配置).RabbitMQ權限的好處是在于單個用戶可以跨越多個Vhost進行授權。

2.1管理用戶

  在RabbitMQ中,用戶是訪問控制的基本單元。針對一到多個vhost,其可以被賦予不同級別的訪問權限,并使用標準的用戶名/密碼來認證用戶。對用戶的增加、刪除以及列出列表非常簡單。這些操作都是通過rabbitmqctl來完成。

  創建用戶的命令如下:

./rabbitmqctl add_user username password

  刪除用戶的命令如下:

./rabbitmqctl delete_user username

  當刪除用戶的時候,任何引用該用戶的訪問控制條目都會從rabbit權限數據庫中自動刪除。

  查看所有用戶的命令如下

./rabbitmqctl list_users

  修改已經存在的用戶的密碼的命令如下:

./rabbitmqctl change_password username newpassword

2.2Rabbit權限系統

  如下圖是AMQP操作到Rabbitmq權限的映射關系

?

  每一條訪問控制條目由以下四部分組成:

  • 被授予訪問權限的用戶
  • 權限應用的vhost
  • 需要授予的讀/寫/配置權限的組合
  • 權限的范圍

  謹記:訪問控制條目是無法跨越vhost的。

  授予權限的命令如下所示:

./rabbitmqctl set_permissions -p vhostname username ".*" ".*" ".*"
  • ?-p vhostname:告訴了set-permissions條目應該應用到哪個vhost
  • username:指定了被授予權限的用戶
  • ".*"? ".*"? ".*":這是被授予的權限。這些值分別映射到配置、寫和讀。

  ".*"意味著匹配任何隊列或者交換器的名字。

  "checks-.*":只匹配名字以"checks-"開頭的隊列和交換機。

  "":不匹配任何隊列和交換器。

  如下權限設置:

./rabbitmqctl set_permissions -p vhostname username " "  "checks-.*"  ".*"

  可以使用Rabbitmqctl的list_permisions命令來驗證權限是否正確賦予。

./rabbitmqctl clear_permissions -p vhostname username

  可以使用Rabbitmqctl的clear_premissions命令來移除一個用戶在任何vhost上的權限。如下所示:

./rabbitmqctl clear_permissions -p vhostname username

  值得注意的是,clear_permissions命令會移除用戶在指定vhost上的所有權限。如果你想修改用戶現存權限,則只需要設置新的權限值并執行set_permissions即可。

  如果你想查看用戶在RabbitMQ服務器上所有vhost上的權限,可以使用list_user_permissions即可。

./rabbitmqctl list_user_permissions username

3.檢查

3.1查看數據統計

  列出隊列和消息數目

./rabbitmqctl list_queues [-p <VHostname>] [<QueueInfoItem>]

  QueueInfoItem主要包含以下選項:

  例如:

./rabbitmqctl list_queues name durable auto_delete consumers memory

  查看交換器和綁定.查看交換器的命令如下:

./rabbitmqctl list_exchanges

?

  查看綁定的命令如下:

./rabbitmqctl list_bindings

  該命令不接受處-p以外的參數。

通過AMQP實時訪問日志

  當使用rabbitmqctl列出交換器列表時看到了其中一個叫做amq.rabbitmq.log的topic交換器。RabbitMQ把日志信息發布到該交換器上,并以嚴重級別作為路由鍵---error、warning和info.可以通過創建一個消費者來監聽日志并作出相應的反應。

4.修復RabbitMQ:疑惑解答

  Erlang節點通過交換作為秘密令牌的Erlang cookie以獲得認證。由于你已連接到遠程節點后就能執行命令,因此有必要確保該節點是可信的。Erlang將令牌存儲在名為.erlang.cookie的文件。為了能讓rabbitmqctl能夠連接RabbitMQ節點,因此需要共享相同的cookie。如果運行RabbitMQ和執行rabbitmqctl命令的是同一個用戶,那么你不會有任何問題。但是在產品環境中,你可能會想要創建rabbitmq用戶,并以該用戶的身份運行服務器。這意味著你必須和rabbitmq用戶共享cookie,或者切換到rabbitmq才能成功執行rabbitmqctl。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284447.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284447.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284447.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

各代移動網絡性能

摘自《中國元宇宙白皮書》 下載整書完整版https://www.aliyundrive.com/s/gXQvRLM22kD

EFCore高級Saas系統下單DbContext如何支持不同數據庫的遷移

前言隨著系統的不斷開發和迭代默認的efcore功能十分強大&#xff0c;但是隨著Saas系統的引進efcore基于表字段的多租戶模式已經非常完美了&#xff0c;但是基于數據庫的多租戶也是可以用的&#xff0c;但是也存在缺點&#xff0c;缺點就是沒有辦法支持不同數據庫&#xff0c;mi…

poj 1679: The Unique MST【次小生成樹】

題目鏈接 參考博客 希望注釋足夠清楚。。歡迎指出不足~ #include<cstdio> #include<cstring> #include<algorithm> using namespace std;const int maxn110; const int INF0x3f3f3f3f;int n,m; int mp[maxn][maxn]; int maxlen[maxn][maxn]; //maxlen…

51. Python 數據處理(2)

1.Python 修改excel文件import xlrd import xlutils.copy excelr xlrd.open_workbook("hello.xlsx") excelw xlutils.copy.copy(excelr) sheet1 excelw.get_sheet(0) sheet1.write(3, 5, "xlutils.copy test test") excelw.save("hello.xlsx"…

人工智能十大流行算法

導讀&#xff1a;本文為有志于成為數據科學家或對此感興趣的讀者們介紹最流行的機器學習算法。 作者&#xff1a;Fahim ul Haq 譯者&#xff1a;劉志勇&#xff0c;策劃&#xff1a;趙鈺瑩 來源&#xff1a;InfoQ&#xff08;ID&#xff1a;infoqchina&#xff09; 機器學習是…

Win7+Win10雙系統安裝全攻略

安裝雙系統,不僅能給你非凡的體驗,還可以滿足工作中因系統版本,兼容性,處理器等原因帶來的不便。本文講解Win7+Win10雙系統安裝全攻略,親測可用。 1. 硬盤分區 本文講解利用固態硬盤+機械硬盤的分區方式。 固態硬盤:為了絕對提高系統運行的速度,將固態硬盤作為雙系統的…

[矩形并-掃描線-線段樹]Picture

最近在補數學和幾何&#xff0c;沒啥好寫的&#xff0c;因為已經決定每天至少寫一篇了&#xff0c;今天隨便拿個題水水。 題目大意&#xff1a;給你N個邊平行于坐標軸的矩形&#xff0c;求它們并的周長。(N<5000) 思路&#xff1a;這個數據范圍瞎暴力就過了&#xff0c;但我…

聊聊研發團隊中的“人”

大家好&#xff0c;我是Z哥。漢字博大精深&#xff0c;很多時候我們可以通過拆字來更形象地理解一個詞的含義。比如“團隊”這個詞的兩個字"團"和“隊”單獨看也都是表示一種由多人組成的組織。再做一下拆字就是“口”“才”和“耳”“人”。前者表示一個人才如果沒有…

[轉]【分布式系統】唯一ID生成策略總結

文章目錄 全局唯一id介紹 全局唯一id特點:常見全局唯一id生成策略 1、數據庫自增長序列或字段生成id 2、UUID 3、Redis生成ID 4、zookeeper生成ID 5、Twitter的snowflake算法全局唯一id介紹 系統唯一id是我們在設計階段常常遇到的問題。在復雜的分布式系統中&#…

shell在一個大文件找出想要的一段字符串操作技巧

昨天端午&#xff0c;晚上的時候接了一個電話&#xff0c;我朋友的公司&#xff0c;數據庫被兩個工作沒多久的phper給弄壞了&#xff0c;具體就是把一個字段值&#xff0c;給全表弄成一個了名字了&#xff0c;當然這個是可以配置了禁止全表更新數據庫,這下可急壞了&#xff0c;…

CentOS7安裝EPEL源

CentOS7安裝EPEL [lijiayuncentos-*** ~]$ yum install epel-release已加載插件&#xff1a;fastestmirror, langpacks您需要 root 權限執行此命令。[lijiayuncentos-*** ~]$ su密碼&#xff1a;[rootcentos-*** lijiayun]# yum install epel-release已加載插件&#xff1a;fas…

超全的開源Winform UI庫,滿足你的一切桌面開發需求!

本文有dotnet9站長整理 網址&#xff1a;https://dotnet9.com/本站曾介紹過一款Winform開源控件庫HZHControls&#xff0c;Winform在大家心中的地位還是挺高的&#xff0c;今天小編再分享一款新鮮出爐的 Winform UI庫——SunnyUI&#xff0c;一起跟 Dotnet9 往下看吧。項目名稱…

告別國外 IDE,阿里 螞蟻自研 IDE 研發框架 OpenSumi 正式開源

經歷近 3 年時間&#xff0c;在阿里集團及螞蟻集團共建小組的努力下&#xff0c;OpenSumi 作為國內首個強定制性、高性能&#xff0c;兼容 VS Code 插件體系的 IDE 研發框架&#xff0c;今天正式對外開源。 一 OpenSumi 是什么&#xff1f; OpenSumi 是一款面向垂直領域&#…

window-memcache技術隨筆

memcached.exe軟件放置到非中文,非空格的目錄,把MSVCR71.DLL文件放在memcached.exe同目錄下啟動,控制面板中打開window功能-Telnet客戶端memcache服務方法一:管理員身份打開黑窗口 d:(mem的所在盤)cd memmemcached.exe -p 11211方法二: 安裝為Windows的系統服務memcached.exe -…

將不確定變為確定~老趙寫的CodeTimer是代碼性能測試的利器

首先&#xff0c;非常感謝趙老大的CodeTimer&#xff0c;它讓我們更好的了解到代碼執行的性能&#xff0c;從而可以讓我們從性能的角度來考慮問題&#xff0c;有些東西可能我們認為是這樣的&#xff0c;但經理測試并非如何&#xff0c;這正應了我之前的那名話&#xff1a;“機器…

聊聊 C++ 中的幾種智能指針(下)

一&#xff1a;背景 上一篇我們聊到了C 的 auto_ptr &#xff0c;有朋友說已經在 C 17 中被棄用了&#xff0c;感謝朋友提醒&#xff0c;今天我們來聊一下 C 11 中引入的幾個智能指針。unique_ptrshared_ptrweak_ptr看看它們都怎么玩。二&#xff1a;三大智能指針詳解 1. uniq…

iOS回顧筆記( 02 ) -- 由九宮格布局引發的一系列“慘案”

iOS回顧筆記&#xff08; 02 &#xff09; -- 由九宮格布局引發的一系列“慘案” 前言&#xff08;扯幾句淡先&#xff09; 回顧到學習UI過程中的九宮格布局時&#xff0c;發現當時學的東西真是不少。 這個階段最大的特點就是&#xff1a;知識點繁多且瑣碎。 我們的目標就是要將…

【GlobalMapper精品教程】007:如何加載谷歌衛星影像?

“Global Mapper支持所有OGC標準數據源類型,例如用于流式柵格地圖的WMS / WMTS,用于矢量數據集的WFS和用于為指定區域下載單個數據文件的WCS。預先切片的圖像和地形數據集也可以使用OSM(OpenStreetMaps)、TMS(Tiled Map Service)和Google Maps瓦片架構支持。您只需要選擇適當…

LVS/keepalived配置

LVS/DR keepalived配置注意&#xff1a;前面雖然我們已經配置過一些操作&#xff0c;但是下面我們使用keepaliave操作和之前的操作是有些沖突的&#xff0c;所以若是之前配置過DR&#xff0c;請首先做如下操作&#xff1a;dr上執行&#xff1a;$ipv -Cifconfig eth0:0 down前…

Mysql清空表(truncate)與刪除表中數據(delete)的區別

2019獨角獸企業重金招聘Python工程師標準>>> 為某基于wordpress搭建的博客長久未除草&#xff0c;某天升級的時候發現已經被插入了幾萬條垃圾留言&#xff0c;如果一條條刪除那可真是累人的活。遂考慮直接進入mysql直接清空表或者刪除表中數據。 本文記錄一下這2種操…