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

RabbitMQ: SpringBoot 整合 RabbitMQ

這篇具有很好參考價值的文章主要介紹了RabbitMQ: SpringBoot 整合 RabbitMQ。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、生產(chǎn)者模塊

1.導入依賴

重點是這個依賴

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
  <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!--    聲明springboot的版本號 -->
        <spring-boot.version>2.2.9.RELEASE</spring-boot.version>
    </properties>
    <!--  引入springboot官方提供的所有依賴的版本號定義,如果項目中使用相關依賴,可以不必寫版本號了-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>




        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

    </dependencies>

2.yml配置文件

spring:
  rabbitmq:
    host: 8.140.244.227
    port: 6786
    username: test
    password: test
    virtual-host: /test
server:
  port: 8081

3.用接口方式實現(xiàn)生產(chǎn)者

通過

@Autowired
RabbitTemplate rabbitTemplate;//這個模板
package com.qf.bootmq2302.controller;

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

@RestController
public class TestController {
    @Autowired
    RabbitTemplate rabbitTemplate;
    @GetMapping("/test1")
    public String test1(String msg){
        System.out.println(msg);
        String exchangeName = "";//默認交換機
        String routingkey = "hello";//隊列名字
        //生產(chǎn)者發(fā)送消息
        rabbitTemplate.convertAndSend(exchangeName,routingkey,msg);
        return "ok";
    }


    @GetMapping("/test2")
    public String test2(String name,Integer age){

        TreeMap<String, Object> map = new TreeMap<String, Object>();
        map.put("name",name);
        map.put("age",age);
        String exchangeName = "";//默認交換機
        String routingkey = "work";//隊列名字
        //生產(chǎn)者發(fā)送消息
        rabbitTemplate.convertAndSend(exchangeName,routingkey,map);
        return "ok";
    }
}

4.主啟動類

package com.qf.bootmq2302;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class BootMqApp {
    public static void main(String[] args) {
        SpringApplication.run(BootMqApp.class,args);
    }
}

二、消費者模塊

? 1.導入依賴

? ? ? ? ? ? ?和上一個一樣

?? 2.yml配置文件

spring:
  rabbitmq:
    host: 8.140.244.227
    port: 6786
    username: test
    password: test
    virtual-host: /test
    #手動ACK
    listener:
      simple:
        acknowledge-mode: manual
        prefetch: 1 #等價于basicQos(1)

3.通過注解綁定 隊列名字

package com.qf.bootconsumer.consumer;

import com.rabbitmq.client.Channel;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;

@Component
public class MyConsumer {

//    @RabbitListener(queues = "hello")
//    public void getMsg(Message message) throws UnsupportedEncodingException {
//        byte[] body = message.getBody();
//        String s = new String(body, "utf-8");
//        System.out.println(s);
//
//    }

//    @RabbitListener(queues = "hello")
//    public void getMsg(String msg) throws UnsupportedEncodingException {
//
//        System.out.println(msg);
//
//    }


    @RabbitListener(queues = "hello")
    public void getMsg(Map<String,Object> message) throws UnsupportedEncodingException {

        System.out.println(message);

    }

    @RabbitListener(queues = "work")
    public void getMsg1(Map<String,Object> data, Channel channel,Message message) throws IOException {


        System.out.println(data);

        //手動ack//若開啟手動ack,不給手動ack,就按照 prefetch: 1 #等價于basicQos(1)的量,就這么多,不會多給你了,因為你沒有確認。確認一條,就給你一條
        channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);

    }



}

4.通過配置類,創(chuàng)建隊列,交換機,綁定隊列給交換機和給予路由

?文章來源地址http://www.zghlxwxcb.cn/news/detail-700533.html

package com.qf.bootconsumer.config;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 在 該配置類中可以,通過@Bean 方法定義 mq內(nèi)部的交換機和隊列 ,及其綁定關系
 */
@Configuration
public class MyConfig {

    @Bean
    public TopicExchange exchange01(){
        return  new TopicExchange("boot-exchange",true,false);
    }

    @Bean
    public Queue queue01(){
        /**
         * 第一個參數(shù):隊列名字
         * 第二個參數(shù):true:代表服務重啟后,此隊列還存在
         * 第三個參數(shù): true:排外,不能讓其他連接來訪問此隊列,只有創(chuàng)建此隊列的連接能訪問消費此隊列
         * 第四個參數(shù): true:代表服務關閉時,RabbitMQ會自動把 此隊列刪除了。
         */
        Queue queue = new Queue("boot-Queue", true, false, false);
        return queue;
    }
    @Bean
    public Binding binding01(TopicExchange exchange01,Queue queue01){
        Binding binding = BindingBuilder.bind(queue01).to(exchange01).with("*.orange.*");
        return binding;
    }

    @Bean
    public Binding binding02(TopicExchange exchange01,Queue queue01){
        Binding binding = BindingBuilder.bind(queue01).to(exchange01).with("*.*.rabbit");
        return binding;
    }

    @Bean
    public FanoutExchange exchange02(){
        return new FanoutExchange("boot-fanout");
    }

    @Bean
    public Queue queue02(){
        return new Queue("boot-queue02",true,false,false);
    }
    @Bean
    public Queue queue03(){
        return new Queue("boot-queue03",true,false,false);
    }
    @Bean
    public Binding binding03(FanoutExchange exchange02,Queue queue02){
        Binding binding = BindingBuilder.bind(queue02).to(exchange02);
        return binding;
    }
    @Bean
    public Binding binding04(FanoutExchange exchange02,Queue queue03){
        Binding binding = BindingBuilder.bind(queue03).to(exchange02);
        return binding;
    }

}

到了這里,關于RabbitMQ: SpringBoot 整合 RabbitMQ的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關文章

  • Spring Boot整合RabbitMQ之路由模式(Direct)

    Spring Boot整合RabbitMQ之路由模式(Direct)

    RabbitMQ中的路由模式(Direct模式)應該是在實際工作中運用的比較多的一種模式了,這個模式和發(fā)布與訂閱模式的區(qū)別在于路由模式需要有一個routingKey,在配置上,交換機類型需要注入DirectExchange類型的交換機bean對象。在交換機和隊列的綁定過程中,綁定關系需要在綁定一個

    2024年02月11日
    瀏覽(20)
  • RabbitMQ和spring boot整合及其他內(nèi)容

    在現(xiàn)代分布式應用程序的設計中,消息隊列系統(tǒng)是不可或缺的一部分,它為我們提供了解耦組件、實現(xiàn)異步通信和確保高性能的手段。RabbitMQ,作為一款強大的消息代理,能夠協(xié)助我們實現(xiàn)這些目標。在本篇CSDN博客中,我們將探討一些高級主題,包括RabbitMQ與Spring Boot的整合、

    2024年02月07日
    瀏覽(21)
  • 【RabbitMQ】4 Spring/SpringBoot整合RabbitMQ

    spring-amqp 是對AMQP的一些概念的一些抽象, spring-rabbit 是對RabbitMQ操作的封裝實現(xiàn)。 主要有幾個核心類 RabbitAdmin 、 RabbitTemplate 、 SimpleMessageListenerContainer 等。 RabbitAdmin 類完成對Exchange,Queue,Binding的操作,在容器中管理了 RabbitAdmin 類的時候,可以對Exchange,Queue,Binding進行自

    2024年01月22日
    瀏覽(21)
  • 消息隊列——spring和springboot整合rabbitmq

    消息隊列——spring和springboot整合rabbitmq

    目錄 spring整合rabbitmq——生產(chǎn)者 rabbitmq配置文件信息 倒入生產(chǎn)者工程的相關代碼 簡單工作模式 spring整合rabbitmq——消費者 spring整合rabbitmq——配置詳解 SpringBoot整合RabbitMQ——生產(chǎn)者 ?SpringBoot整合RabbitMQ——消費者 ? 使用原生amqp來寫應該已經(jīng)沒有這樣的公司了 創(chuàng)建兩個工程

    2024年02月16日
    瀏覽(28)
  • 【SpringBoot】Spring Boot 項目中整合 MyBatis 和 PageHelper

    目錄 前言? ? ? ?? 步驟 1: 添加依賴 步驟 2: 配置數(shù)據(jù)源和 MyBatis 步驟 3: 配置 PageHelper 步驟 4: 使用 PageHelper 進行分頁查詢 IDEA指定端口啟動 總結 ????????Spring Boot 與 MyBatis 的整合是 Java 開發(fā)中常見的需求,特別是在使用分頁插件如 PageHelper 時。PageHelper 是一個針對 MyBat

    2024年04月25日
    瀏覽(32)
  • 【Spring Boot】SpringBoot 優(yōu)雅整合Swagger Api 自動生成文檔

    【Spring Boot】SpringBoot 優(yōu)雅整合Swagger Api 自動生成文檔

    Swagger 是一套 RESTful API 文檔生成工具,可以方便地生成 API 文檔并提供 API 調(diào)試頁面。 而 Spring Boot 是一款非常優(yōu)秀的 Java Web 開發(fā)框架,它可以非常方便地構建 Web 應用程序。 在本文中,我們將介紹如何使用 Swagger 以及如何在 Spring Boot 中整合 Swagger 。 首先,在 pom.xml 文件中添

    2023年04月22日
    瀏覽(24)
  • spring boot es | spring boot 整合elasticsearch | spring boot整合多數(shù)據(jù)源es

    spring boot es | spring boot 整合elasticsearch | spring boot整合多數(shù)據(jù)源es

    目錄 Spring Boot與ES版本對應 Maven依賴 配置類 使用方式 @Test中注入方式 @Component中注入方式 查詢文檔 實體類 通過ElasticsearchRestTemplate查詢 通過JPA查詢 保存文檔 參考鏈接 項目組件版本: Spring Boot:2.2.13.RELEASE Elasticsearch:6.8.0 JDK:1.8.0_66 Tips: 主要看第3列和第5列,根據(jù)ES版本選擇

    2023年04月18日
    瀏覽(27)
  • RabbitMQ: SpringBoot 整合 RabbitMQ

    重點是這個依賴 通過 ? ? ? ? ? ? ?和上一個一樣 ?

    2024年02月09日
    瀏覽(28)
  • 【RabbitMQ】RabbitMQ整合SpringBoot案例

    【RabbitMQ】RabbitMQ整合SpringBoot案例

    【RabbitMQ】消息隊列-RabbitMQ篇章 RabbitMQ實現(xiàn)流程 2.1 實現(xiàn)架構總覽 實現(xiàn)步驟: 1:創(chuàng)建生產(chǎn)者工程:sspringboot-rabbitmq-fanout-producer 2:創(chuàng)建消費者工程:springboot-rabbitmq-fanout-consumer 3:引入spring-boot-rabbitmq的依賴 4:進行消息的分發(fā)和測試 5:查看和觀察web控制臺的狀況 2.2 具體實現(xiàn)

    2024年02月12日
    瀏覽(20)
  • 【RabbitMQ】Spring整合RabbitMQ、Spring實現(xiàn)RabbitMQ五大工作模式(萬字長文)

    【RabbitMQ】Spring整合RabbitMQ、Spring實現(xiàn)RabbitMQ五大工作模式(萬字長文)

    目錄 一、準備 1、創(chuàng)建maven項目?編輯 2、引入依賴 3、創(chuàng)建配置文件 1.RabbitMQ配置文件 2.生產(chǎn)者項目配置文件 3.消費者項目配置文件 二、生產(chǎn)者xml中文件創(chuàng)建隊列 三、生產(chǎn)者xml文件中創(chuàng)建交換機以及綁定隊列 1、創(chuàng)建交換機 2、綁定隊列? 四、消費者xml文件中創(chuàng)建隊列消息監(jiān)

    2024年01月21日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包