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中的訊息。
上述基礎概念整理來自 RabbitMQ基礎概念詳細介紹
在Windows系統中安裝RabbitMQ
# 1. 下載安裝erlang (我用的是otp_win64_19.3版本)
下載位址 (依作業系統選擇32還64位元)
2.qserver(依作業系統選擇為我使用的是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. 查看安裝是否成功指令:
# c.安裝管理外掛指令:
rabbitmq-plugins enable rabbitmq_management##安裝成功,在瀏覽器中輸入 http:/ /127.0.0.1:15672/
guest 帳號是管理員帳號,可以新增Exchanges,Queues,Admin。但我們通常不使用guest帳號,繼續用指令來新增帳號和權限。
rabbitmqctl.bat add_user username password
e:新增「超級管理員」角色: rabbitmqctl.bat set_user_tags username administrator
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基本概念與原理實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

C#和.NET運行時緊密合作,賦予開發者高效、強大且跨平台的開發能力。 1)C#是一種類型安全且面向對象的編程語言,旨在與.NET框架無縫集成。 2).NET運行時管理C#代碼的執行,提供垃圾回收、類型安全等服務,確保高效和跨平台運行。

要開始C#.NET開發,你需要:1.了解C#的基礎知識和.NET框架的核心概念;2.掌握變量、數據類型、控制結構、函數和類的基本概念;3.學習C#的高級特性,如LINQ和異步編程;4.熟悉常見錯誤的調試技巧和性能優化方法。通過這些步驟,你可以逐步深入C#.NET的世界,並編寫高效的應用程序。

C#和.NET的關係是密不可分的,但它們不是一回事。 C#是一門編程語言,而.NET是一個開發平台。 C#用於編寫代碼,編譯成.NET的中間語言(IL),由.NET運行時(CLR)執行。

C#.NET依然重要,因為它提供了強大的工具和庫,支持多種應用開發。 1)C#結合.NET框架,使開發高效便捷。 2)C#的類型安全和垃圾回收機制增強了其優勢。 3).NET提供跨平台運行環境和豐富的API,提升了開發靈活性。

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C#和.NET通過不斷的更新和優化,適應了新興技術的需求。 1)C#9.0和.NET5引入了記錄類型和性能優化。 2).NETCore增強了雲原生和容器化支持。 3)ASP.NETCore與現代Web技術集成。 4)ML.NET支持機器學習和人工智能。 5)異步編程和最佳實踐提升了性能。

c#.netissutableforenterprise-levelapplications withemofrosoftecosystemdueToItsStrongTyping,richlibraries,androbustperraries,androbustperformance.however,itmaynotbeidealfoross-platement forment forment forment forvepentment offependment dovelopment toveloperment toveloperment whenrawspeedsportor whenrawspeedseedpolitical politionalitable,

C#在.NET中的編程過程包括以下步驟:1)編寫C#代碼,2)編譯為中間語言(IL),3)由.NET運行時(CLR)執行。 C#在.NET中的優勢在於其現代化語法、強大的類型系統和與.NET框架的緊密集成,適用於從桌面應用到Web服務的各種開發場景。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

Dreamweaver Mac版
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器