EasyNetQ WithTopic過濾失效的解決方案

来源:https://www.cnblogs.com/axel10/archive/2018/03/11/8544619.html
-Advertisement-
Play Games

RabbitMQ原理及教程:http://www.cnblogs.com/AlvinLee/p/6141834.html EasyNetQ是什麼以及常見用法這裡都不做講解。可以參考這篇博文:http://blog.csdn.net/hesi9555/article/details/70139346 ...


RabbitMQ原理及教程:http://www.cnblogs.com/AlvinLee/p/6141834.html

EasyNetQ是什麼以及常見用法這裡都不做講解。可以參考這篇博文:http://blog.csdn.net/hesi9555/article/details/70139346

這裡主要來談談EasyNetQ中WithTopic方法中的一個容易浪費大量時間的點。

使用EasyNetQ的Subscribe方法後,再使用SubscribeWithTopic方法,你可能會發現無論Routing Key(SubscribeWithTopic中的第三個參數)寫什麼東西都沒用,不管你的Routing key和發送者的Routing Key一樣或者不一樣,接收者統統都能收得到,即WithTopic的過濾功能失效了。這是為什麼呢?

這時候,只要你打開RabbitMQ的web管理後臺的隊列面板,

(http://localhost:15672/#/queues ,開不了的去rabbitmq-server的安裝目錄的sbin下右鍵打開命令行,運行 

.\rabbitmq-plugins.bat enable rabbitmq_management

來啟動web管理後臺。)

點開新創建出來的隊列,點開bindings下拉菜單,如果你看到Routing key這一欄的第一項是“#”,意味著之後添加的所有Routing key都失效了。#代表接受所有。每次運行Subscribe都會自動加上“#”過濾規則並且置頂。

解決方案有:

1、手動刪除。"#"那一項點擊unbind按鈕即可。之後如果使用了Subscribe後還想改成SubscribeWithTopic就必須再手動刪一次

2、利用代碼刪除。

            var bus = RabbitHutch.CreateBus(connectionString);
IAdvancedBus advancedBus = bus.Advanced; IBinding bind = advancedBus.Bind(new Exchange("Model.Message:Model(交換機名)"), new Queue("Model.Message:Model_id1(隊列名)",false), "#" ); advancedBus.BindingDelete(bind);

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Python機器學習 機器學習,如今最令人振奮的電腦領域之一。看看那些大公司,Google、Facebook、Apple、Amazon早已展開了一場關於機器學習的軍備競賽。從手機上的語音助手、垃圾郵件過濾到逛淘寶時的物品推薦,無一不用到機器學習技術。 如果你對機器學習感興趣,甚至是想從事相關職業... ...
  • 一、前言 JUC這部分還有線程池這一塊沒有分析,需要抓緊時間分析,下麵開始ThreadPoolExecutor,其是線程池的基礎,分析完了這個類會簡化之後的分析,線程池可以解決兩個不同問題:由於減少了每個任務調用的開銷,它們通常可以在執行大量非同步任務時提供增強的性能,並且還可以提供綁定和管理資源(包 ...
  • 內容:Java變數,基本數據類型 邏輯類型:boolean =true/false整數類型:byte占一個位元組,short占兩個位元組,int占四個位元組,long占8個位元組 int 可以表達十進位範圍 (2147483648,4294967296)字元類型:char占兩個位元組 (加單引號)ch=97, ...
  • 前言 在一個小項目的需求中,我需要一個短鏈生成伺服器來縮短一些某個網站的鏈接。 剛開始我使用的是新浪的短鏈生成服務,後來心血來潮Google了一下短鏈生成的演算法,在知乎上看到了 "一個非常棒的構思" ,也就是直接使用資料庫的id的62進位形式作為短鏈索引。 當天我們就把新浪的短鏈換成了自己的服務,不 ...
  • 作為一個java的學習者,我相信JDBC是大家最早接觸也是入門級別的資料庫連接方式,所以我們先來回憶一下JDBC作為一種用於執行SQL語句的Java API是如何工作的。下麵的一段代碼就是最基本的JDBC開發流程。 在上代碼之前要先導入JDBC的jar包,由於我用的資料庫是mysql,所以要先導 入 ...
  • 兩個星期前,微軟發佈了 "EF Core 2.1 Preview 1" ,同時還發佈了 ".NET Core 2.1 Preview 1" 和 "ASP.NET Core 2.1 Preview 1" ;EF Core 2.1 Preview 1 除了 "許多小改進和超過100種產品錯誤修複之外" ...
  • 本次 Windows Developer Day,最值得期待的莫過於 Windows AI Platform 了,可以說是千呼萬喚始出來。觀看直播的開發者們,留言最多的也是 Windows AI Platform。 下麵結合微軟提供的展示過程,文檔和 Git Sample 來詳細分析一下。 基礎概念 ...
  • 以前實現數據的緩存有多種方法,如客戶端的Cookie,伺服器端的Session、Application。 一、Cookie Cookie是保存客戶端的一組數據,主要用來保存用戶的個人信息,主要存放瀏覽器請求伺服器時的請求信息,這些信息是非敏感信息。主要用於當用戶訪問您的系統時,應用程式可以檢索以前存 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...