rabbitmq用法 直接傳送訊息給佇列

2021-08-13 16:41:10 字數 1864 閱讀 2050

rabbitmq 術語:

connectionfactory、connection、channel都是rabbitmq對外提供的api中最基本的物件。

connection是rabbitmq的socket鏈結,它封裝了socket協議相關部分邏輯。

connectionfactory為connection的製造工廠。

channel是我們與rabbitmq打交道的最重要的乙個介面,我們大部分的業務操作是在channel這個介面中完成的,包括定義queue、定義exchange、繫結queue與exchange、發布訊息接收訊息等。

queue(佇列)是rabbitmq的內部物件,用於儲存訊息,用下圖表示。

多個消費者可以訂閱同乙個queue,這時queue中的訊息會被平均分攤給多個消費者進行處理,而不是每個消費者都收到所有的訊息並處理。

第一種: 直接傳送訊息給佇列

直接傳送訊息給佇列不需要指定exchange ,預設為空。直接傳送訊息給佇列之前需要先建立此佇列。

**如下:

private static finalstringhost="***x";

private static finalstringusername="***";

private static finalstringpassword="***";

public static voidmain(string args)throwsioexception, timeoutexception

消費者consumer**:這裡切記,接收到訊息之後要呼叫channel.basicack 返回給伺服器已經接收到訊息,否則此訊息在佇列中不會刪除 

public static voidmain(string args)throwsioexception, timeoutexception

public classconsumerimplimplementsconsumer

public voidhandleconsumeok(string consumertag)

public voidhandlecancelok(string consumertag)

public voidhandlecancel(string consumertag)throwsioexception

public voidhandleshutdownsignal(string consumertag, shutdownsignalexception sig)

public voidhandlerecoverok(string consumertag)

public voidhandledelivery(string consumertag, envelope envelope, amqp.basicproperties properties,bytebody)throwsioexception

}

golang websocket定向傳送訊息

客戶端管理 type clientmanager struct 客戶端 client type client struct 會把message格式化成json type message struct 建立客戶端管理者 var manager clientmanager socket 設定 var u...

rabbitmq 均勻傳送訊息

在rabbitmq client中 如不加限制 當某一client端連到server端時 server會將大部分資料傳送到該客戶端 後面連線上的client 將接收不到資料 造成某些客戶端任務繁重 某些客戶端十分清閒 可在client 端的channl 加上引數 readchannel.basicq...

Docker初探之執行RabbitMQ訊息佇列服務

我們平時在使用rabbitmq是基於windows作業系統的,在使用前需要安裝er lang和rabbitmq服務程式,如果版本不對rabbitmq就啟動失敗,安裝流程也比較麻煩。但如果在docker中則變得簡單。在使用rabbitmq之前,我們首先需要拉取rabbitmq映象,然後在進行執行rab...