文檔編寫的目的是提供關于如何使用消息平臺,具有可操作性和易于理解的使用說明書。指導消息平臺運維團隊和項目開發(fā)團隊在項目開發(fā)、測試以及運維階段各角色的開發(fā)職責。
敘永網站制作公司哪家好,找創(chuàng)新互聯!從網頁設計、網站建設、微信開發(fā)、APP開發(fā)、響應式網站開發(fā)等網站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯2013年至今到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創(chuàng)新互聯。隨著泰康人壽各系統(tǒng)之間的數據交互越來越頻繁,如何降低各系統(tǒng)之間耦合度,實現各系統(tǒng)之間的異步消息通訊成為越來越迫切的需求,為此建立了泰康消息平臺。
2.1 基本概念泰康消息平臺主要基于RabbitMQ中間件搭建的,RabbitMQ是目前開源消息中間件里非常成熟和優(yōu)秀的產品,具有高性能、高可用、高擴展和高安全等特性,在互聯網行業(yè)公司有著非常廣泛的應用并經過了大量的項目實踐檢驗。
RabbitMQ中間件是基于AMQP協(xié)議模型開發(fā)的,在使用消息平臺進行異步通訊開發(fā)時,需要很好理解以下基本概念。
Exchange
接收發(fā)布應用程序發(fā)送的消息,并根據一定的規(guī)則將這些消息路由到“消息隊列”。
Message Queue
存儲消息,直到這些消息被消費者安全處理完為止。
Binding
定義了exchange和message queue之間的關聯,提供路由規(guī)則。
Channel
進行相關定義,發(fā)送消息,獲取消息,事務處理等,是讀寫消息的通道,客戶端可建立多個channel來進行會話任務。
Connection
消費者與Broker的TCP連接。建議消費者線程之間不要共用Channel,但是建議盡量共用Connection。
Broker
接受客戶端連接,實現AMQP消息隊列和路由功能的進程。
消息通訊示意圖如下:
3 日常操作說明 3.1 用戶管理3.1.1 新用戶信息
3.1.1.1 添加用戶
用admin角色的賬號登錄控制臺,找到admin下的users選項,點進去,找到add a user模塊,如下圖
輸入相應信息,然后點擊add user,用戶rabbit創(chuàng)建完成。在上面的all users模塊里即可看到rabbit的用戶信息。
Tags 代表所選角色,角色類型請參考3.1.2.1
3.1.1.2 修改用戶
找到all users模塊,找到剛才新建的rabbit用戶,點擊用戶名進入用戶詳情頁。
在詳情頁找到update this user模塊,然后輸入密碼,即可修改此用戶的角色,如下圖。
Tags 代表所選角色,角色類型請參考3.1.2.1
3.1.1.3 刪除用戶
在用戶詳情頁,找到delete this user模塊,然后點擊delete按鈕,即可刪除此用戶,如下圖。
3.1.2 角色信息
3.1.2.1 角色類型
(1)none
不能訪問控制臺
(2)management
用戶可以通過AMQP做的任何事外加:
列出自己可以通過AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和關閉自己的channels 和 connections
查看有關自己的virtual hosts的“全局”的統(tǒng)計信息,包含其他用戶在這些virtual hosts中的活動。
(3)policymaker
management可以做的任何事外加:
查看、創(chuàng)建和刪除自己的virtual hosts所屬的policies和parameters
(4)monitoring
management可以做的任何事外加:
列出所有virtual hosts,包括他們不能登錄的virtual hosts
查看其他用戶的connections和channels
查看節(jié)點級別的數據如clustering和memory使用情況
查看真正的關于所有virtual hosts的全局的統(tǒng)計信息
(5)administrator
policymaker和monitoring可以做的任何事外加:
創(chuàng)建和刪除virtual hosts
查看、創(chuàng)建和刪除users
查看創(chuàng)建和刪除permissions
關閉其他用戶的connections
3.1.2.2 添加角色
參考3.1.1.2修改用戶,詳細寫了如何修改用戶的角色
3.1.3 權限信息
3.1.3.1 權限參數說明
Vhost:虛擬主機對用戶的權限進行分離。
Configure regexp:對queue或exchange新建和配置的權限。
Write regexp:對一個queue或exchange寫消息的權限。
Read regexp:對一個queue或exchange讀消息的權限。
3.1.3.2 添加權限
在用戶的詳情頁,找到Permissions模塊,下圖可看出新建的用戶rabbit還沒有分配權限。填寫上對應的權限信息,然后點擊Set permission 保存設置。Configure、Write、Read這三個是用正則表達式來匹配是否有某個queue或exchange的權限。
.* 表示對所有queue和exchange有此權限。
^$ 表示對所有的queue和exchage沒有此權限。
^(hello.*)$ 表示只有以hello開頭的queue或exchage的權限
^(hello.*|team.*)$ 表示有以hello和team開頭的queue或exchange的權限。
3.2 隊列管理3.2.1 添加隊列(queue)
找到queue選項,找到add a new queue模塊,填寫上對于的參數,點擊Add queue即可添加一個queue在指定的vhost里。
Durability:是否持久化此隊列(durable表示持久化,transient表示非持久化)。
Auto delete :是否自動刪除此隊列(一次性隊列,即:當隊列中的消息被消費者接收,不管消費者有沒有返回確認狀態(tài),只要消費者與平臺斷開連接,則隊列會自動刪除),下面的參數可以配置自動刪除的規(guī)則。
Arguments里的參數:
x-message-ttl 隊列被銷毀前存放多久,單位毫秒
x-expires 隊列自動刪除前使用多久,單位毫秒
x-max-length 一個隊列的長度,超過這個長度則從頭開始銷毀消息
x-max-length-bytes 一個隊列所有的body的size,超過則從頭開始銷毀消息
x-dead-letter-exchange 如果一個消息拒收或者過期,則會發(fā)布到指定名稱的exchange里。
x-dead-letter-routing-key 消息過期或者拒收后的routekey值,如果沒有設置則用之前的。
添加完隊列后,上面的All queues里會顯示該隊列,點擊該隊列名稱進入詳情頁。
Bindings模塊:
在這里可以增加和刪除此queue和exchange的綁定關系,以及route key的設置。
delete模塊:
在最下面的delete模塊,點擊delete可以刪除此queue。
3.2.2 添加交換機(exchange)
找到exchange選項里的add a new exchange模塊,填寫相應的信息,然后點擊add exchange,即可添加此exchange。
信息含義:
Internal:該exchange是否只對內部使用。
Arguments里的參數
alternate-exchange :如果發(fā)到這個exchange的消息沒有指定queue接收,則把這條消息發(fā)送到指定的exchange里。
在all exchanges模塊里,找到該exchange,然后點擊名稱進入該exchange的詳情界面,找到bindings模塊,這里可以建立和queue或其他exchange的綁定關系,以及route key的配置。
最下面的delete模塊,點擊delete即可刪除此exchange。
3.3 跟蹤日志3.3.1 參數說明
Format:日志的格式,text方便人查看,json方便機器識別。
Max payload bytes:每條日志記錄的payload(消息體)的字節(jié),超出則截斷消息。
Pattern:日志的模式,即記錄日志的條件。
# 匹配所有的消息,無論是發(fā)布還是消費的信息。
publish.# 匹配所有發(fā)布的消息。
deliver.# 匹配所有被消費的消息。
#.test 如果test是隊列,則匹配已經被消費了的test隊列的消息。如果test是exchange,則匹配所有經過該exchange的消息。
監(jiān)控的日志默認存放位置為:/var/tmp/rabbitmq-tracing;用戶名默認是誰創(chuàng)建的消息就記錄誰的名字。
在rabbitmq.config 配置文件配置路徑格式:
[{rabbitmq_tracing, [{directory, "/my/log/file/location"},{username, "guest"}]}].
3.3.2 添加跟蹤日志
找到tracing選項,add a new trace模塊,填寫相應的信息,即可創(chuàng)建一個跟蹤日志。
在all traces模塊里,點擊右邊的log file名稱即可查看該日志,也可以找到該文件的所在目錄查看。
3.3.3 刪除跟蹤日志
如上圖,點擊stop即可停止此跟蹤日志。點擊delete即可刪除此日志文件。
3.4 系統(tǒng)信息3.4.1 查看內存磁盤信息
在overview選項下的nodes模塊,可以整體的看到各個節(jié)點的內存、磁盤、連接等情況,內存默認為使用超過節(jié)點機器40%時阻塞線程,可以在配置文件里調整具體的閾值。
如果吞吐量占用內存超過機器內存的40%,則可適當調高此值,最壞的情況是80%,在40%~80%之間此值越少越好,如果超過80%就給機器加內存。
在queue選項下,all queues模塊里能看到所有隊列的具體占用內存磁盤情況。
3.5 添加vhost3.5.1 添加vhost
找到admin下的Virtual Hosts選項,這里是對Vhost的管理,add a new virtual host模塊填寫名稱即可增加一個vhost。
3.5.2 刪除vhost
在vhost界面的all virtual hosts模塊,點擊vhost的名稱進入詳情界面,permissions模塊是對該vhost下用戶的權限的管理。Delete this vhost模塊下點擊delete this virtual host 按鈕刪除此vhost。
3.6 節(jié)點管理3.6.1 添加節(jié)點
./rabbitmqctl -n test2 join_cluster test1@hostname
具體的使用方法可參考集群搭建文檔。
3.6.2 停止節(jié)點
使用命令 ./rabbitmqctl stop 來停止此節(jié)點。
3.6.3 開啟節(jié)點
./rabbitmq-server -detached 后臺啟動
nohup ./rabbitmq-server start & 后臺啟動
4 流程開通 4.1 平臺管控開通1、 新建vhost (如果此項目的消息平臺vhost已經存在,則跳過此步驟。)參考3.5.1
2、 根據申請單給該系統(tǒng)創(chuàng)建queue或exchange,并且建立和其他queue或exchange的綁定關系。
(以上步驟請參考3.2隊列管理操作)
3、 在該vhost里新建一個用戶,角色設置為none。
(1) 如果該系統(tǒng)只接收消息,則給該用戶設置配置權限^$,讀權限^(queue)$,寫權限^$。
(2) 如果該系統(tǒng)只發(fā)送消息,則給該用戶設置配置權限^$,讀權限^$,寫權限^(exchange)$。
(3) 如果該系統(tǒng)即接收消息也發(fā)送消息,則給該用戶設置配置權限^$,讀權限^(queue)$,寫權限^(exchange)$。
添加用戶請參考3.1用戶管理
4.2 項目管控開通 5 檢查清單1、 查看集群里的各個節(jié)點運行狀況。
2、 內存使用大小,以及剩余大小。
3、 磁盤使用大小,以及剩余大小。
4、 查看隊列是否有大量消息堆積,
5、 隊列的占用內存和磁盤大小。
以上查看信息請參考 3.4.1
6 linux常用命令查看控制臺日志,進入overview選項,nodes模塊,點擊主機名查看詳情,如下圖:
在這里找到日志文件的路徑。
tail –f /home/tomcat/rabbitMQ/rabbit-1/var/log/rabbitmq/test1.log 動態(tài)的查看日志。
tail /home/tomcat/rabbitMQ/rabbit-1/var/log/rabbitmq/test1.log -n 200 查看最近200行的日志。
啟動關閉節(jié)點,進入安裝路徑的sbin目錄
./rabbitmqctl stop 關閉當前節(jié)點
./rabbitmq-server -detached 后臺啟動
nohup ./rabbitmq-server start & 后臺啟動
新聞標題:RabbitMQ簡要整理
當前地址:http://jinyejixie.com/article36/chdopg.html
成都網站建設公司_創(chuàng)新互聯,為您提供全網營銷推廣、面包屑導航、微信小程序、企業(yè)建站、虛擬主機、ChatGPT
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯