Spring Boot / Spirng Cloud 引入Rabbit MQ

注意:
spring cloud版本:Greenwich.RELEASE
spring boot 版本: 2.1.5.RELEASE
1.导包,在pom.xml中导入

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

2.加入配置文件

spring:
  rabbitmq:
    addresses: ${RABBIT_MQ_HOST:mq地址:5672(端口号)}
    password: ${RABBIT_MQ_PWD:密码}
    username: ${RABBIT_MQ_USER:用户名}
    virtual-host: ${RABBIT_MQ_VHOST:null}
    listener:
      simple:
        retry:
          enabled: true   #是否开启消费者重试(为false时关闭消费者重试,这时消费端代码异常会一直重复收到消息)
#         multiplier: 1
          max-attempts: 5   #最大重试次数
          initial-interval: 5s    #重试间隔时间
        default-requeue-rejected: true   #重试次数超过上面的设置之后是否丢弃(false不丢弃时需要写相应代码将该消息加入死信队列)
 

3.在Rabbit MQ建立话题模式的exchanges,和queue,进入exchanges的test ,然后通过Routing key: 绑定queue
在这里插入图片描述在这里插入图片描述在这里插入图片描述4.这时已经准备好可以使用mq了,创建测试类往mq发送一条队列,ControllerApplication.class为springboot的启动类

import com.css.cloud.modules.ControllerApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = ControllerApplication.class)
public class MqTest {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @Test
    public void  sendMsg(){
        rabbitTemplate.convertAndSend("test","test.Q1","主题模式测试");
    }
}

5.创建一个消费者

package com.css.cloud.modules.xxx;

import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
@RabbitListener(queues = "testqueue")
public class CustomerQ1 {

    @RabbitHandler
    public void getMsg(String msg){
        System.out.println("test:"+msg);
    }

}

6.测试
看到rabbitmq收到一条信息,java的控制台的消费者也收到一条发送的记录,引入rabbit成功
在这里插入图片描述在这里插入图片描述

热门文章

暂无图片
编程学习 ·

Mathmatica多项式带余除法代码

几乎没有调用内置函数,除了求多项式最高次数时用了一下 Exponent[] (*解析多项式*) (*将f=a0+a1*x+...+an*x^n解析成{{a0,0},{a1,1},...,{an,n}}的形式*) polyCoefficients[f_] := Module[{rules1 = {c_*base_^power_ -> {c, power},base_^power_ -> {1, power},c_*x_ -…
暂无图片
编程学习 ·

Struts2远程代码执行漏洞复现

环境搭建docker pull medicean/vulapps:s_struts2_s2-029docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2-029http://yourIP/default.action打开页面漏洞利用(%23_memberAccess[allowPrivateAccess]=true,%23_memberAccess[allowProtectedAccess]=true,%23_memberAcce…
暂无图片
编程学习 ·

QT的::和:记录

******1.:一般指继承. Class 派生类 : 基类 (1)表示结构体内 位域的定义(即该变量占几个bit空间) (2)构造函du数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。 (3)public:和private:后面的冒号,表示后面定义的所有成员都是…
暂无图片
编程学习 ·

什么是语音直播源码,语音下直播系统可以做什么?

语音直播源码是指用户能够通过语音进行聊天的软件功能。语音直播源码的形式多样化的,现在市场上也出现了很多很多语音形式的源码出现,比如,可以多人语音聊天,语音视频通话,语音直播,语音教学还有很多的语音游戏,像最近很多的和平精英,王者荣耀,狼人杀之类的,都是在游…
暂无图片
编程学习 ·

如何重命名data.frame中的单个列?

本文翻译自:How to rename a single column in a data.frame? I know if I have a data frame with more than 1 column, I can use 我知道如果我有一个多于一列的数据框,我可以使用 colnames(x) <- c("col1","col2")to rename the columns. 重命名…
暂无图片
编程学习 ·

单调栈解决Next Greater Number一类题

单调栈是什么? 单调栈使得每次新元素入栈后,栈内元素都保持有序(单调递增或者单调递减)。 单调递增栈:栈中数据出栈的序列为单调递增序列。 单调递减栈:栈中数据出栈的序列为单调递减序列。 注意:这里所说的递增递减是出栈的顺序,不是栈中数据的顺序。 单调栈的应用 通…
暂无图片
编程学习 ·

LeetCode题解(0762):二进制表示中质数个计算置位(Python)

题目:原题链接(简单)解法 时间复杂度 空间复杂度 执行用时Ans 1 (Python) O(N)O(N)O(N) O(1)O(1)O(1) 200ms (99.05%)Ans 2 (Python)Ans 3 (Python)LeetCode的Python执行用时随缘,只要时间复杂度没有明显差异,执行用时一般都在同一个量级,仅作参考意义。解法一:【思路】…
暂无图片
编程学习 ·

mysql(一)认知了解

文章目录mysql(一)数据库(database)什么是mysql系统特性应用场景 mysql(一) 官网 中文的 数据库(database)数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是以一定方式储…
暂无图片
编程学习 ·

Spring Boot + RabbitMQ 配置参数解释

application.properties配置文件写法#rabbitmq spring.rabbitmq.virtual-host=/ spring.rabbitmq.host=192.168.124.20 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest spring.rabbitmq.listener.concurrency=10 spring.rabbitmq.l…
暂无图片
编程学习 ·

spring @Primary-@Qualifier在spring中的使用

在spring 中使用注解,常使用@Autowired, 默认是根据类型Type来自动注入的。但有些特殊情况,对同一个接口,可能会有几种不同的实现类,而默认只会采取其中一种的情况下 @Primary 的作用就出来了。下面是个简单的使用例子。 有如下一个接口 public interface Singer {String …
暂无图片
编程学习 ·

梯度直方图和灰度共生矩阵

下面这三篇文章写的不错:https://blog.csdn.net/guanyuqiu/article/details/53117507https://blog.csdn.net/qq_32892383/article/details/79768684https://blog.csdn.net/qq_32892383/article/details/79779513
暂无图片
编程学习 ·

Opencv数据类型

一、由一个错误引出 错误信息如下: OpenCV Error: Assertion failed (type == B.type() && (type == CV_32FC1 || type == CV_64FC1 ||type == CV_32FC2 || type == CV_64FC2)) in gemm, file /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core/src/matmul.cpp, l…
暂无图片
编程学习 ·

imx6 DDR Stress Test Tool

DDR Stress Test Tool 提供了两种用途。首先,它可以用来对校准DDR3,以便于MMDC PHY delay settings和PCB配对 来达到最佳的DRAM新能。整个过程是全自动的,因此客户可以在较短的时间内让他们的DDR3工作起来。另外,该工具可以运行内存压力测试,用来验证DDR3的功能和可靠性。…
暂无图片
编程学习 ·

HTML5 向网页嵌入视频和音频

现在很多网站上都会使用到视频和音频,HTML5 中提供了展示视频和音频的标签。向网页嵌入视频可以使用 <video> 标签,而嵌入音频可以使用 <audio> 标签。这两个标签都是 HTML 5 中新增的标签,两个标签中的属性和方法也很类似,但也有些不同。其中 audio 元素用于…
暂无图片
编程学习 ·

《ES6模块化》知识点总结

以下内容纯属个人扯淡,仅供参考目录一、概述二、基本语法一、概述1、传统开发模式的问题命名冲突:多个js文件之间,不能存在同名的变量 文件依赖:js文件之间无法实现相互引用2、模块化1。概述将单独的一个功能封装到一个模块文件中,模块之间相互隔离,但可通过特定的接口公…
暂无图片
编程学习 ·

【小甲鱼python】Tkinter学习笔记1-4

1.1 import tkinter as tkapp=tk.Tk() #生成了顶层窗口的实例 root窗口,T大写k小写 app.title("Fishc Demo")#设置标题栏#Label是一个组件,组件实例化后成为一个对象。 #该组件放在app这个窗口上 #该组件是最常见的组件之一,主要用于显示文本和图标 theLabel=tk.L…
暂无图片
编程学习 ·

操作系统 第二章 (用户态 核心态 中断 异常)

操作系统 第二章进程的定义进程的状态与转换进程控制进程通信线程概念和多线程模型处理机调度的概念、层次进程调度的时机、切换与过程、方式、调度算法评价指标 进程的定义 程序:就是一个指令序列 PCB(进程控制块存放有进程位置等信息)、程序段和数据构成了进程实体(进程映像…
暂无图片
编程学习 ·

[leetCode]83.删除排序链表中的重复元素

解法一 双指针 思路:跟删除排序数组相同元素想法一致,想到的是使用双指针,一个慢指针i,一个快指针j。首先i指向链表头部,j指向i的下一个元素 如果j元素的值等于i元素的值则跳过重复元素j = j.next,否则不用跳过该元素 每次内循环结束(跳过相同元素结束)使i.next = j;i=…
暂无图片
编程学习 ·

使用MapReduce实现join操作

文章目录一.概述二.需求三.map+reduce实现join四.MapReduce Map端 join实现原理(没有reduce处理) 一.概述 熟悉SQL的读者都知道,使用SQL语法实现join是很简单的,只需要一条SQL语句即可,但是在大数据场景下使用MapReduce编程模型实现join还是比较繁琐的在实际生产中我们可以借助…
暂无图片
编程学习 ·

转:好领导要具备的十个条件

个人理解:信守承诺,敢做敢当,言行一致 信守承诺,敢做敢当,言行一致,绝不虚伪处世 帮助员工成长,与大家一起成就;团队不是领导一个人的领地,而是大家共同成长与奋斗、一起收获的地方 目的和行动一致,一以贯之,坚持不懈,有张有驰;成功是有惯性的 严于律己,常于过程…