欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java編寫簡易rabbitmq生產(chǎn)者與消費(fèi)者的代碼

 更新時(shí)間:2023年11月13日 15:08:52   作者:追逐夢(mèng)想永不停  
開發(fā)時(shí)經(jīng)常與其它系統(tǒng)用rabbitmq對(duì)接,當(dāng)需要自測(cè)時(shí),還是自己寫rabbitmq生產(chǎn)者、消費(fèi)者自測(cè)方便些,下面給大家總結(jié)使用java編寫簡易rabbitmq的方法,感興趣的朋友一起看看吧

一、前言

開發(fā)時(shí)經(jīng)常與其它系統(tǒng)用rabbitmq對(duì)接,當(dāng)需要自測(cè)時(shí),還是自己寫rabbitmq生產(chǎn)者、消費(fèi)者自測(cè)方便些。

下面總結(jié)下不用框架、使用java編寫簡易rabbitmq的方法。

二、代碼

1.導(dǎo)入jar包

(1)如果是maven,那就用

<dependency>
		    <groupId>com.rabbitmq</groupId>
		    <artifactId>amqp-client</artifactId>
		    <version>3.3.4</version>
		</dependency>

(2)如果沒用maven,那就找一個(gè)amqp-client-3.3.4.jar文件,然后引入項(xiàng)目

2.生產(chǎn)者代碼

package RABBIT_MQ;
import com.rabbitmq.client.*;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class RabbitMQSender {
    //交換機(jī)
    private final static String exchange_name = "x.mySys.test";
    //路由鍵
    private final static String route_key = "topmess";
    public static void main(String[] args) throws IOException, TimeoutException {
        //定義一個(gè)鏈接工廠
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //設(shè)置服務(wù)地址
        connectionFactory .setHost("10.123.123.123");
        //設(shè)定端口
        connectionFactory .setPort(5673);
        //設(shè)定用戶名
        connectionFactory .setUsername("myuser");
        //設(shè)定密碼
        connectionFactory .setPassword("mypass");
        //設(shè)定虛擬機(jī)
        connectionFactory .setVirtualHost("my_host");
        //從mq工具類獲取連接信息
        Connection connection = connectionFactory.newConnection();
        //獲取一個(gè)通道
        Channel channel = connection.createChannel();
        String message = "Hello World!";
        channel.basicPublish(exchange_name, route_key, null, message.getBytes());
        System.out.println("運(yùn)行完畢,已發(fā)送消息【" + message + "】");
        channel.close();
        connection.close();
    }
}

說明:
(1)其中的配置,按照自己的rabbitmq配置更改
(2)生產(chǎn)者配置了交換機(jī)名與路由鍵

3.消費(fèi)者代碼

package RABBIT_MQ;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.DefaultConsumer;
import com.rabbitmq.client.Envelope;
public class RabbitMQReceiver {
    private static String queue_name="q.mySys.test";
    public static void main(String[] args) throws IOException, TimeoutException {
        //定義一個(gè)鏈接工廠
        ConnectionFactory connectionFactory = new ConnectionFactory();
        //設(shè)置服務(wù)地址
        connectionFactory .setHost("10.123.123.123");
        //設(shè)定端口
        connectionFactory .setPort(5673);
        //設(shè)定用戶名
        connectionFactory .setUsername("myuser");
        //設(shè)定密碼
        connectionFactory .setPassword("mypass");
        //設(shè)定虛擬機(jī)
        connectionFactory .setVirtualHost("my_host");
        //從mq工具類獲取連接信息
        Connection connection = connectionFactory.newConnection();
        //獲取一個(gè)通道
        Channel channel = connection.createChannel();
        //監(jiān)聽該隊(duì)列,false代表手動(dòng)確認(rèn)
        channel.basicConsume(queue_name,false,new DefaultConsumer(channel){
            public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties basicProperties, byte[] body) throws IOException{
                System.out.println("接收到的消息:"+ new String(body,"UTF-8"));
            }
        });
        System.out.println("運(yùn)行完畢,等待mq接收消息");
    }
}

說明:
(1)其中的配置,按照自己的rabbitmq配置更改
(2)消費(fèi)者配置了監(jiān)聽隊(duì)列
(3)消費(fèi)者啟動(dòng)后一直開啟,除非手動(dòng)關(guān)閉項(xiàng)目運(yùn)行

到此這篇關(guān)于Java編寫簡易rabbitmq生產(chǎn)者與消費(fèi)者的文章就介紹到這了,更多相關(guān)Java rabbitmq生產(chǎn)者與消費(fèi)者內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis三種批量插入數(shù)據(jù)的方式

    Mybatis三種批量插入數(shù)據(jù)的方式

    這篇文章主要介紹了Mybatis的三種批量插入方式,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-04-04
  • Java超詳細(xì)大文件分片上傳代碼

    Java超詳細(xì)大文件分片上傳代碼

    文件上傳是一個(gè)很常見的功能。在項(xiàng)目開發(fā)過程中,我們通常都會(huì)使用一些成熟的上傳組件來實(shí)現(xiàn)對(duì)應(yīng)的功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2022-06-06
  • 談?wù)剬?duì)Java多態(tài)性的一點(diǎn)理解

    談?wù)剬?duì)Java多態(tài)性的一點(diǎn)理解

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā)出的方法調(diào)用在編程時(shí)并不確定,而是在程序運(yùn)行期間才確定,即一個(gè)引用變量倒底會(huì)指向哪個(gè)類的實(shí)例對(duì)象,該引用變量發(fā)出的方法調(diào)用到底是哪個(gè)類中實(shí)現(xiàn)的方法,必須在由程序運(yùn)行期間才能決定
    2017-08-08
  • 如何基于Jenkins構(gòu)建Docker鏡像

    如何基于Jenkins構(gòu)建Docker鏡像

    這篇文章主要介紹了基于Jenkins構(gòu)建Docker鏡像,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Mybatis執(zhí)行SQL命令的流程分析

    Mybatis執(zhí)行SQL命令的流程分析

    這篇文章主要介紹了Mybatis執(zhí)行SQL命令的流程分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • 淺談java多線程 join方法以及優(yōu)先級(jí)方法

    淺談java多線程 join方法以及優(yōu)先級(jí)方法

    下面小編就為大家?guī)硪黄獪\談java多線程 join方法以及優(yōu)先級(jí)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringBoot訪問MongoDB數(shù)據(jù)庫的兩種方式

    SpringBoot訪問MongoDB數(shù)據(jù)庫的兩種方式

    MongoDB是一種非關(guān)系型數(shù)據(jù)庫,通過文檔存儲(chǔ)數(shù)據(jù),適用于大規(guī)模數(shù)據(jù)存儲(chǔ)和高并發(fā)訪問,這篇文章主要介紹了SpringBoot訪問MongoDB數(shù)據(jù)庫的兩種方式,感興趣想要詳細(xì)了解可以參考下文
    2023-05-05
  • Java中內(nèi)存分配的幾種方法

    Java中內(nèi)存分配的幾種方法

    本文主要介紹Java中幾種分配內(nèi)存的方法。我們會(huì)看到如何使用sun.misc.Unsafe來統(tǒng)一操作任意類型的內(nèi)存。以前用C語言開發(fā)的同學(xué)通常都希望能在Java中通過較底層的接口來操作內(nèi)存,他們一定會(huì)對(duì)本文中要講的內(nèi)容感興趣
    2014-03-03
  • Java結(jié)構(gòu)型設(shè)計(jì)模式之橋接模式詳細(xì)講解

    Java結(jié)構(gòu)型設(shè)計(jì)模式之橋接模式詳細(xì)講解

    橋接,顧名思義,就是用來連接兩個(gè)部分,使得兩個(gè)部分可以互相通訊。橋接模式將系統(tǒng)的抽象部分與實(shí)現(xiàn)部分分離解耦,使他們可以獨(dú)立的變化。本文通過示例詳細(xì)介紹了橋接模式的原理與使用,需要的可以參考一下
    2022-09-09
  • Kotlin中?StateFlow?或?SharedFlow?的區(qū)別解析

    Kotlin中?StateFlow?或?SharedFlow?的區(qū)別解析

    Kotlin協(xié)程中的StateFlow和SharedFlow是響應(yīng)式數(shù)據(jù)流,分別用于UI狀態(tài)管理和事件通知,StateFlow有初始值,只保留最新值,適用于UI狀態(tài)管理;SharedFlow沒有初始值,可以配置緩存大小,適用于事件通知,感興趣的朋友一起看看吧
    2025-03-03

最新評(píng)論