国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JAVA發(fā)送消息到RabbitMq

這篇具有很好參考價值的文章主要介紹了JAVA發(fā)送消息到RabbitMq。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

項目中,作為生產者自定義消息發(fā)送到RabbitMq。

1.引入rmq依賴

     <!-- rabbitmq 依賴 -->
        <dependency>
            <groupId>com.rabbitmq</groupId>
            <artifactId>amqp-client</artifactId>
            <version>5.9.0</version>
        </dependency>

2.創(chuàng)建鏈接、斷開連接工具類。

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * RabbitMq 工具類
 *
 * @author Klay
 * @date 2023/6/25
 */
public class RabbitmqUtils {
    private static Channel channel = null;
    private static Connection connection = null;

    /**
     * 獲取連接
     *
     * @author Klay
     * @date 2023/6/25 10:37
     */
    public static Channel getChannel() {
        //定義連接池
        ConnectionFactory factory = new ConnectionFactory();
        //設置主機地址
        factory.setHost("127.0.0.1");
        //設置端口
        factory.setPort(5672);
        //設置用戶名
        factory.setUsername("guest");
        //密碼
        factory.setPassword("guest");
        //虛擬機路徑
        factory.setVirtualHost("/");
        try {
            connection = factory.newConnection();
            //創(chuàng)建信道
            channel = connection.createChannel();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TimeoutException e) {
            e.printStackTrace();
        }
        return channel;
    }

    /**
     * 關閉連接
     *
     * @author Klay
     * @date 2023/6/25 10:37
     */
    public static void closeConnection() {
        try {
            channel.close();
            connection.close();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (TimeoutException e) {
            e.printStackTrace();
        }

    }
}

3.發(fā)送消息。大部分業(yè)務應用場景中,只需要發(fā)送消息到指定的交換機(exchange)中。如果業(yè)務需要創(chuàng)建交換機,則將注釋的代碼打開,創(chuàng)建交換機、隊列,并綁定。發(fā)送消息時,將對應的交換機、路由進行替換即可。


import com.hikvision.ardatatormq.utils.RabbitmqUtils;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;

/**
 * @author Klay
 * @date 2023/10/16 016
 */
@Slf4j
public class SendMessageTest {
    public static void main(String[] args){
        //利用寫好工具類獲取信道連接
        Channel channel = RabbitmqUtils.getChannel();
        try {
            /**
             *創(chuàng)建一個交換機
             *1.交換機名稱
             *2.交換機類型有fanout,direct,topic,headers
             *3.是否持久化
             *4.設置是自動刪除,當沒有隊列與當前交換機綁定時自動刪除
             *5.設置是否內置,表示內置的交換機
             *6.設置其他的一些結構化參數
             */
//            channel.exchangeDeclare("text_pubsub", BuiltinExchangeType.FANOUT, false, false, false, null);
            /**
             *1.隊列名稱
             *2.是否持久化,持久化會存盤,重啟也還存在
             *3.exclusive 是否排他如果一個隊列被聲明為排他的隊列,該隊列僅對首次聲明它的連接可見,并在連接斷開時自動刪除這里需要注意三點:排他的隊列是基于連接(Connection)可見的,同一個連接的不同信道(Channel)是可以同時訪問同一連接創(chuàng)建的排他隊列;“首次”是指如果一個連接已經聲明了一個排他隊列,其它連接是不允許建立同名的排他隊列的,這個與普通隊列不同;即使該隊列是持久化的,一旦連接關閉或者客戶端退出,該排他隊列都會被自動刪除,這種隊列適用于一個客戶端同時發(fā)送和讀取消息的應用場景。
             *4.是否自動刪除至少有一個消費者連接到這個隊列,之后所有與這個隊列連接的消費者都斷開時,才會自動刪除
             *5.設置隊列的其他配置參數
             */
//            channel.queueDeclare("pubsub_queue1", false, false, false, null);
            /**
             *將交換機與隊列綁定
             *1.隊列名稱
             *2.交換機名稱
             *3.routerkey(路由key)
             *4.其他的綁定參數
             */
//            channel.queueBind("pubsub_queue1", "text_pubsub", "routingKeyTest");

            /**
             *發(fā)送消息
             *1.交換機名稱
             *2.routerkey路由key,目前沒有指定雙引號即可
             *3.無額外配置寫null
             *4.消息體
             */
            String msg = "發(fā)布訂閱模式?。?!";
            channel.basicPublish("amq.topic", "routingKeyTest", null, msg.getBytes());
            log.info("消息發(fā)送成功!:{}", msg);
        } catch (IOException e) {
            log.error("發(fā)送消息IOException:{}", e);
        } finally {
            //關閉連接
            RabbitmqUtils.closeConnection();
        }

    }
}

4.進行測試。

? ? ? ? 4.1為交換機amq.topic創(chuàng)建一個測試隊列并綁定。

JAVA發(fā)送消息到RabbitMq,java,rabbitmq,java-rabbitmq,java,rabbitmq

JAVA發(fā)送消息到RabbitMq,java,rabbitmq,java-rabbitmq,java,rabbitmq

? ? ?4.2發(fā)送消息

JAVA發(fā)送消息到RabbitMq,java,rabbitmq,java-rabbitmq,java,rabbitmq文章來源地址http://www.zghlxwxcb.cn/news/detail-722926.html

到了這里,關于JAVA發(fā)送消息到RabbitMq的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Centos安裝RabbitMQ,JavaSpring發(fā)送RabbitMQ延遲延時消息,JavaSpring消費RabbitMQ消息

    Centos安裝RabbitMQ,JavaSpring發(fā)送RabbitMQ延遲延時消息,JavaSpring消費RabbitMQ消息

    erlang 和 rabbitmq 版本說明 https://www.rabbitmq.com/which-erlang.html 確認需要安裝的mq版本以及對應的erlang版本。 RabbitMQ下載地址: https://packagecloud.io/rabbitmq/rabbitmq-server Erlang下載地址: https://packagecloud.io/rabbitmq/erlang RabbitMQ延遲消息插件下載 https://github.com/rabbitmq/rabbitmq-delayed-message-exc

    2024年02月08日
    瀏覽(23)
  • RabbitMQ基于Java實現消息應答

    RabbitMQ基于Java實現消息應答

    概念 RabbitMQ是一個消息中間件:它接受并轉發(fā)消息。你可以把它當做一個快遞站點,當你要發(fā)送一個包裹時,你把你的包裹放到快遞站,快遞員最終會把你的快遞送到收件人那里,按照這種邏輯RabbitMQ是一個快遞站, 一個快遞員幫你傳遞快件。RabbitMQ 與快遞站的主要區(qū)別在于,它不

    2024年04月10日
    瀏覽(17)
  • Java RabbitMQ消息隊列簡單使用

    Java RabbitMQ消息隊列簡單使用

    消息隊列,即MQ,Message Queue。 消息隊列是典型的:生產者、消費者模型。生產者不斷向消息隊列中生產消息,消費者不斷的從隊列中獲取消息。因為消息的生產和消費都是異步的,而且只關心消息的發(fā)送和接收,沒有業(yè)務邏輯的侵入,這樣就實現了生產者和消費者的解耦。

    2024年02月12日
    瀏覽(34)
  • RabbitMQ系列(5)--使用Java實現RabbitMQ的消費者接收消息

    RabbitMQ系列(5)--使用Java實現RabbitMQ的消費者接收消息

    前言:先簡單了解RabbitMQ的工作過程,方便后續(xù)開發(fā)理清思路 簡略: 詳細: 1、新建消費者類 效果圖: 2、編寫消費者消費消息的代碼 例: 3、查看代碼運行結果 運行代碼后如果有輸出生產者發(fā)送的”Hello World”信息,則證明消費者消費消息成功 4、在web頁面上查看隊列的消

    2024年02月06日
    瀏覽(19)
  • 90、RabbitMQ如何確保消息發(fā)送?消息接收?

    信道需要設置為 confirm 模式,則所有在信道上發(fā)布的消息都會分配一個唯一 ID。 一旦消息被投遞到queue(可持久化的消息需要寫入磁盤),信道會發(fā)送一個確認給生產者(包含消息唯一 ID) 如果 RabbitMQ 發(fā)生內部錯誤從而導致消息丟失,會發(fā)送一條 nack (未確認) 消息給生產者。

    2024年02月16日
    瀏覽(37)
  • rabbitmq管理頁面發(fā)送消息

    rabbitmq管理頁面發(fā)送消息

    有的時候我們因為一些特殊的原因或者需要測試某個功能,需要發(fā)送mq,但是又不能直接觸發(fā)消息。這種情況下,我們可以直接在mq控制臺發(fā)送消息。 一、首先打開rabbitmq管理臺 二、右上角選擇環(huán)境,開發(fā)或者測試 三、打開Queues Tab頁 四、選中某個queue,頁面下拉到Publish mes

    2024年02月12日
    瀏覽(20)
  • Java開發(fā) - 消息隊列之RabbitMQ初體驗

    Java開發(fā) - 消息隊列之RabbitMQ初體驗

    目錄 前言 RabbitMQ 什么是RabbitMQ RabbitMQ特點 安裝啟動 RabbitMQ和Kafka的消息收發(fā)區(qū)別 RabbitMQ使用案例 添加依賴 添加配置 創(chuàng)建RabbitMQ配置類 RabbitMQ消息的發(fā)送 RabbitMQ消息的接收 測試 結語 前一篇,我們學習了Kafka的基本使用,這一篇,我們來學習RabbitMQ。他們作為消息隊列本身都具

    2024年02月03日
    瀏覽(21)
  • RabbitMQ管理頁面怎么發(fā)送消息

    RabbitMQ管理頁面怎么發(fā)送消息

    1.登錄RabbitMQ 后臺管理系統(tǒng) 點擊Queues 2.Add a new queue 創(chuàng)建 一個 queue (h5) 3.進入queue (h5) 4.編輯header和發(fā)送內容 5.消費者消費

    2024年02月10日
    瀏覽(19)
  • RabbitMq生產者發(fā)送消息確認

    RabbitMq生產者發(fā)送消息確認

    一般情況下RabbitMq的生產者能夠正常的把消息投遞到交換機Exchange,Exchange能夠根據路由鍵routingKey把消息投遞到隊列Queue,但是一旦出現消息無法投遞到交換機Exchange,或無法路由到Queue的這種特殊情況下,則需要對生產者的消息進行緩存或者保存到數據庫,后續(xù)在調查完RabbitM

    2024年02月04日
    瀏覽(26)
  • 如何使用RabbitMQ發(fā)送和接收消息

    本文介紹了如何使用RabbitMQ的Python客戶端庫pika來發(fā)送和接收消息,并提供了示例代碼。讀者可以根據自己的需求修改代碼,例如修改隊列名稱、發(fā)送不同的消息等。 RabbitMQ 是一個開源的消息隊列軟件,可以用于在應用程序之間傳遞消息。下面是一個使用 RabbitMQ 的流程和代碼

    2024年02月15日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包