RabbitMQ安裝配置和基於EasyNetQ驅動的基礎使用
RabbitMQ基本概念和原理
1.AMQP,即Advanced Message Queuing Protocol,高階訊息佇列協議,是應用層協議的一個開放標準,為面向訊息的中介軟體設計。
2.RabbitMQ是一個開源的AMQP實現,伺服器端用Erlang語言編寫。
3.Channel
Channel是我們與RabbitMQ打交道的最重要的一個介面,我們大部分的業務操作是在Channel這個介面中完成的,包括定義Queue、定義Exchange、繫結Queue與Exchange、釋出訊息等。
4.Exchange(生產者將訊息傳送到Exchange(交換器),由Exchange將訊息路由到一個或多個Queue中(或者丟棄),RabbitMQ常用的Exchange Type有fanout、direct、topic、headers這四種)
5.Queue(RabbitMQ的內部物件,用於儲存訊息)
6.基本工作原理
客戶端(生產者) send Message -->Exchange (交換機通過不同的型別將訊息儲存到對應的queue)-->Queue
客戶端(消費者)通過訂閱來消費queue中的訊息。
在Windows系統中安裝RabbitMQ
1. 下載安裝erlang (我用的是otp_win64_19.3版本)
2. 下載安裝rabbitmq-server(我用的是rabbitmq-server-3.6.10版本)
安裝好後,在看裝目錄下看到
接下來用啟用DOS命令
a. cd 到sbin目錄下,我的安裝目錄是D:\RabbitMQServer\rabbitmq_server-3.6.10\sbin, 輸入D: 回車,cd RabbitMQServer\rabbitmq_server-3.6.10\sbin
b. 檢視安裝是否成功命令 :rabbitmqctl status
c.安裝管理外掛命令:rabbitmq-plugins enable rabbitmq_management
安裝成功,在瀏覽器中輸入 http://127.0.0.1:15672/
輸入來賓賬號 guest 密碼 guest ,成功登陸進來,是不是有點小激動。
guest 賬號是管理員賬號,可以新增Exchanges,Queues,Admin。但我們一般不使用guest賬號,繼續用命令來新增賬號和許可權。
d:新增使用者:rabbitmqctl.bat add_user username password
e:新增“超級管理員”角色: rabbitmqctl.bat set_user_tags username administrator
mymq賬號也是超級管理員了,Can access virtual hosts :No access ,可以看到還沒有能夠訪問的虛擬機器,接下來新增虛擬機器。
f: 新增虛擬機器: rabbitmqctl add_vhost vhostName
myvhost虛擬機器並沒有Users,接下來給虛擬機器繫結賬號。
g:定虛擬機器和使用者許可權:rabbitmqctl set_permissions -p 虛擬機器名稱 賬戶名 ".*" ".*" ".*"
h:處於習慣我一般刪除掉guest賬號:rabbitmqctl.bat delete_user username
好了,重新登陸管理頁面,一切正常,接下來開始實戰了。
EasyNetQ的基本使用
專案中安裝EasyNetQ
EasyNetQ是依賴於RabbitMQ.Client的,所以會被一併安裝到專案中。
Publish釋出訊息
Model有個Queue的特性,定義Queue名稱和Exchange名稱。然後直接用Publish方法把Msg通過Model指定的交換機推送到指定佇列去。
執行程式碼,看看MQ的管理頁面。
已經建立了Model指定的交換機TestQueue.Exchange, Type:topic , Features:D 。D:Durable 說明預設建立的交換機是持久化的。
因為還沒有訂閱訊息,所以在Queues中還看不到對應的佇列。
Subscribe訂閱訊息
為什麼要在訂閱程式碼上套一個while(true)了? 是為了把控制檯程式模擬成Windows服務,因為控制檯程式執行一閃而過,沒辦法真正訂閱到MQ的訊息。
實際開發中,一般用Topself來把控制檯程式釋出成Windows服務,後面有時間再寫一篇關於Topself的學習部落格。
再重複剛才的Publish操作,測試下整個流程。
自定義Topic
這樣訊息會被髮送到名稱為Test.開頭的所有Queue佇列中。
Send和Receive
通過send和receive可以將訊息傳送到指定佇列。
相關推薦
RabbitMQ安裝配置和基於EasyNetQ驅動的基礎使用
RabbitMQ基本概念和原理 1.AMQP,即Advanced Message Queuing Protocol,高階訊息佇列協議,是應用層協議的一個開放標準,為面向訊息的中介軟體設計。 2.RabbitMQ是一個開源的AMQP實現,伺服器端用Erlang語言編寫。 3.Channel Channel
RabbitMQ 安裝配置和 Spring 整合
本文從安裝和配置 RabbitMQ 開始,準備好環境後,直接在 Spring 中整合,並且針對 Spring 中的常見用法提供了示例和講解。 安裝 一般開發環境可能用的都是 Windows,生產環境 Linux 用的比較多,這裡針對 Windows 和 Ubuntu 的安裝說明簡
solr的基礎安裝配置和使用以及solrj的簡介
Solr 全文檢索伺服器 1 前言 今天博主將會從solr的簡單介紹,與lucene的區別開始為大家講解,圍繞solr的安裝配置,基本使用進行講解以及後面會涉及solrJ的使用! 如果對大家有用的話,可以關注,點贊文章以及歡迎評論喔~ 2 Solr介紹 2.1
React開發環境安裝配置和基礎入門
React基礎入門 ReactDOM.render() 將指定的模板或節點內容插入指定的節點(通常是一個div) ReactDOM.render( <h1>Hello, world!</h1>, document.
proxysql安裝配置和讀寫分離初識
tps select block use nod gre match iad 分組 前言 筆者從事MySQL的相關工作,最近線上需要一款性能上佳的MySQL中間件產品,本人在了解一些如ProxySQL、MariaDB MaxScale、MySQL Router、Atla
maven在windows10系統下安裝配置和打包war
local resources username main bsp png root 3.5 ren maven下載地址:http://maven.apache.org/ 下載完成解壓到 D盤 目錄下D:\apache-maven-3.5.0\bin 配置maven環境變量
CentOS下 RabbitMQ安裝配置:
net mini rtu 配置 list /var/ 解析 .rpm -a CentOS RabbitMQ rpm 安裝方法: 系統環境:CentOS6IP地址:10.100.62.41 1.erlang安裝: erlang下載地址: http://www.rabbitm
RabbitMQ安裝配置
python 過程調用 鏈接 log 入隊 無需 href http 但是 RabbitMQ安裝 RabbitMQ是一個在AMQP基礎上完整的,可復用的企業消息系統。他遵循Mozilla Public License開源協議。 MQ全稱為Message Queue, 消
kafka manager安裝配置和使用
dht install ota manage 壓縮 etc /etc all div kafka manager安裝配置和使用 1.安裝yum源 curl https://bintray.com/sbt/rpm/rpm | sudo tee /etc/yum.rep
python操作mysql③python操作mysql的orm工具sqlaichemy安裝配置和使用
utf pes 中文 pytho oot 工具 mage lean cred python操作mysql③python操作mysql的orm工具sqlaichemy安裝配置和使用 手冊地址: http://docs.sqlalchemy.org/en/rel_1
Squid安裝配置和使用
util markdown 數量 src acc agent 與運算 strong 版本 文:鐵樂與貓 環境 centos 6.5 x64 安裝 最簡單的一種就是yum安裝。 yum install squid 版本 rpm -qa | grep squid squid-3
sphinx全文檢索 安裝配置和使用
conf pty too worker pos 如果 lB 創建索引 AS https://www.cnblogs.com/findgor/p/5644540.html 公司項目剛剛導入大量產品數據,然後發現網站的產品搜索很卡,原本是原生sql的like來做模糊搜索,數
Windows 64位 RabbitMQ 安裝配置
view erlang 沒有 height 建立 win trac mis 安裝完成 整體式項目中通常使用定時任務來解決異步通信問題,分布式常用消息中間件,為了在不同語言不同平臺中擴展,使用遵從AMQP協議的rabbitMQ來做消息中間件。
Mac上安裝配置和簡單使用PostgreSQL(仍然很不懂)
ui s 暫時 psql 控制 Go 修改 文本編輯 CI 推薦 因為想要使用推薦的rails-template。需要使用postgres。並初始化了一個用戶postgres,密碼是postgres。( e.g. $ createuser -d postgres ) 需要買
Ubuntu16.04安裝配置和使用ctags
刪除 可執行 exe path opencv 了吧 -- sta ntc Ubuntu16.04安裝配置和使用ctags by ChrisZZ ctags可以用於在vim中的函數定義跳轉。在ubuntu16.04下默認提供的ctags是很老很舊的ctags,快要發黴的版本(
Redis的安裝配置和啟動
con 連接 服務 最新版 指定 tab 管理工具 壓縮 安裝軟件 Redis安裝和配置、啟動、關閉 一、Redis的安裝 在Linux上安裝軟件有兩種方式: 通過各個操作系統的軟件管理軟件進行安裝,例如centos的yum ,debian的apt 源碼方式安裝。 第一
SVN安裝配置和使用
def create ase sha 初始化 oss ref list none 簡介:SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它采用了分支管理系統,它的設計目標就是取代CVS。互聯網上很多版本控制服務已從CVS遷移到Sub
erlang&RabbitMQ安裝配置
tag perl 依賴 stop 51cto 1.4 安裝 編輯 text Centos 6.8安裝erlang&rabbitmq的方法 1.安裝 erlang1.1 準備工作,先安裝依賴庫和應用工具yum -y install make gcc gcc-c++ k
fastdfs-nginx安裝配置和整合
Version 5.11對應的fastdfs-nginx-module的Version 1.20 Version 5.10對應的fastdfs-nginx-module的Version 1.19 相關檔案下載地址:https://download.csdn.ne
centos 7 linux系統預設ftp安裝配置和部署(詳細講解)
轉載自:https://www.cnblogs.com/mujingyu/p/7677273.html 小生接觸 Linux 系統時間不長,想解決linux系統ftp安裝及部署問題,折騰了大半天,終於弄出來了,將各路 高手的配置方法綜合了一下,如有不對之處,歡迎各位看客指正,感謝! 一、