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成功
在这里插入图片描述在这里插入图片描述

热门文章

暂无图片
编程学习 ·

GPS卫星位置计算(卫星位置计算小程序)

目录一、准备以及结果图二、数据三、计算四、全部代码附:一、准备以及结果图软件:eclipse(2020-6版本)带有WindowBuilder插件编程语言:Java结果图:二、数据t0e星历的基准时间单位:秒a_sqrt轨道半长轴的平方根单位:米e1轨道离心率单位:无量纲i0倾角(在 t0e时)单位:r…
暂无图片
编程学习 ·

c++数制2~16数进制的转换

通项公式: while(n!=0){ a[i]=n%d; n=(n/d); i++; } 其中n为要转换的十进制的数。d为要转换的数制,如二进制为2. #include<iostream> using namespace std;int main() {int i,n,d,a[100];//n 为要转换的十进制数,d为要转为的数制 while(cin>>n>>d){i=0;wh…
暂无图片
编程学习 ·

电信云堤·抗D(电信云堤清洗高防服务器)提供超强T级DDoS处理能力

电信云堤”下辖四大产品: 电信云堤DDoS攻击防护(简称“电信云堤抗D”) 电信云堤域名安全防护(简称“电信云堤域名无忧”) 电信云堤反钓鱼网站处置(简称:“电信云堤反钓鱼”) 电信云堤网站安全专家(简称:“电信云堤网站安全专家)电信云堤抗D “电信云堤抗D”依托于中…
暂无图片
编程学习 ·

线程

1.线程 1.什么叫做线程,跟进程之间的关系 进程:独立的cup空间运行 线程:进程中的一个执行流程,一个进程中可以包含多个线程,这些线程共享该进程提供的资源 2.创建线程(两种方式) 让这类继承Thread类 class XXX extends Thread{ public void run() Thread xx = new Threa…
暂无图片
编程学习 ·

火墙优化策略

实验环境 : 两台主机 一台可以连外网 一台只能内网连接 火墙切换方式及安装 iptables的安装及切换iptables -------->firewalldiptables 的永久保存策略iptables命令数据包状态 在服务器上:在客户主机中snat(13.30-14.00) 服务器主机:客户主机:在客户机中测试:fire…
暂无图片
编程学习 ·

【数据结构】数据结构三要素

数据结构三要素 数据结构的三要素包括数据逻辑结构、数据存储结构和数据的运算。 数据逻辑结构 数据的逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。它与数据的具体存储形式无关,是独立于计算机的。数据逻辑结构通常分为线性结构和非线性结构。典型的数据结构…
暂无图片
编程学习 ·

JDBC

JDBC(Java DataBase Connectivity) JDBC 简介 Java 数据库连接技术。即用 Java 程序操作数据库的一套接口。是独立与 特定数据库(MySQL、SQLServer) 的管理系统,也就是无论使用的是什么类型的数据库都可以用 JDBC 去连接。 让 JDBC 去翻译底层数据库的各种指令,我们只需要使…
暂无图片
编程学习 ·

Java并发编程之深入理解volatile

个人博客请访问 http://www.x0100.top 1. 保证可见性volatile保证了不同线程对volatile修饰变量进行操作时的可见性。对一个volatile变量的读,(任意线程)总是能看到对这个volatile变量最后的写入。一个线程修改volatile变量的值时,该变量的新值会立即刷新到主内存中,…
暂无图片
编程学习 ·

Java小型计算器

通过对程序的编写,可以不同位数实现对加减乘除的计算 ,以及对错误答案给出提示。以满足一些大人给小孩出题的困惑 ,此程序可以自己出题,自己检测答案。随时随地想做就做。需求:1.实现计算器的基本功能。 2.可以练习加减乘除的计算,以提高自己算题的速度 和探索新的解题方…
暂无图片
编程学习 ·

百度云在线播放视频设置倍速播放

百度云在线播放器为html5播放器,所以直接修改其属性可达到加速效果:本人使用的是Safari浏览器,有效。右击网页打开“审查元素”(有的叫做“检查”)。2. 选择控制台3.粘贴命令 //设置默认倍速 为2倍 document.querySelector(video).defaultPlaybackRate = 2.0; document.qu…
暂无图片
编程学习 ·

计算机网络基础,看完不怕面试

前言 计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。一个很形象地比喻就是我们的语言,我们大天朝…
暂无图片
编程学习 ·

STM32HAL库的串口通讯流程详解

一 查询模式 待定,日后补充 二 中断模式 1 中断接收 1.1中断接收流程 先在启动文件中找到中断向量表(此处以USART1为例子)然后找到USART1_IRQHandler的函数定义在这里就会发现又跳转到了 HAL_UART_IRQHandler(&huart1);,追进去为下图所示:在图中标记的前三步是读取寄存…
暂无图片
编程学习 ·

java四种访问修饰符

Java四种访问修饰符 最近在公司面试的时候,被问到Java的四种访问修饰符的访问域,一时难住了我,平时练习的时候,基本上使用的private和public两种,虽然知道其他两种是default和protected,但是 用的比较少,没有认真的去了解它们具体的访问域,有点知识模糊。今天就归纳总结…
暂无图片
编程学习 ·

Java工厂模式解耦合的例子

目录第一个例子第二个例子第三个例子第四个例子Reference 最终项目路径如下:第一个例子 假设有如下接口, package service;public interface Notice {public void work(String message); }实现类如下, package service;public class NoticeImpl implements Notice {@Overrid…
暂无图片
编程学习 ·

JavaScript从入门到精通复习资料大全(基础知识篇)

JavaScript从入门到精通复习一、JavaScript中的常量和变量1、常量:就是程序运行过程中,保持不变的数据。2、变量:是程序中一个已经命名的存储单元。3、 变量的赋值二:JavaScript中的运算符1、算术运算符2、比较运算符3、赋值运算符4、字符串运算符5、 逻辑运算符6、条件运…
暂无图片
编程学习 ·

LeetCode 58. 最后一个单词的长度

目录结构1.题目2.题解2.1java split()函数2.2字符串遍历1.题目给定一个仅包含大小写字母和空格 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组…
暂无图片
编程学习 ·

Vue循环渲染&key的原理

v-for用于循环的数组里面的值可以是对象,也可以是普通元素<ul id="example-1"><!-- 循环结构-遍历数组 item 是我们自己定义的一个名字 代表数组里面的每一项 items对应的是 data中的数组--><li v-for="item in items">{{ item.mess…
暂无图片
编程学习 ·

linux弱密码检测

1.安装一个john软件包用来检测弱密码2.进入桌面可以看到3.使用mkdir /soft 在/下创建一个soft的文件夹;然后使用mv命令:mv john-1.8.0.tar.xz /soft/ 把john包移动到soft下面:4.在soft的文件夹下使用:tar -xf john-1.8.0.tar.xz 解压缩:5.进入到src目录下:6.make + 系统注…
暂无图片
编程学习 ·

论面向服务架构设计及其应用

在准备架构师考试过程中发现可供参考的论文范围非常少且内容陈旧给学习带来很大烦恼,通过考试后把我准备的论文共享出来水平有限但内容格式迎合考试,希望给大家一个参考。范文以“论面向服务架构设计及其应用”为题书写,希望对大家有所帮助。【摘要】2017年5月,我参加了某省…