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

热门文章

暂无图片
编程学习 ·

mysql8 windows版密码忘记如何重新设置?

本机安装位置:D:\Program Files (x86)\java\mysql-8.0.13-winx64重设密码具体过程:还好有一个navicat的连接可以打开,查看其中的用户名和主机名称(一般默认是这个,改了又忘了的话我也没办法了)打开cmd,用管理员的身份运行,先关闭mysql(net stop mysql);然后进入mysql8所…
暂无图片
编程学习 ·

达梦数据守护集群(dmwatch)启停方式

注: 在$DM_HOME/bin目录下执行相关脚本。 停止集群:关闭确认监视器:./DmMonitorServiceDMMONITOR stop 关闭备库守护进程:./DmWatcherServiceDM2 stop 关闭主库守护进程:./DmWatcherServiceDM1 stop 关闭备库数据库服务:./DmServiceDM2 stop 关闭主库数据库服务:./D…
暂无图片
编程学习 ·

WEB安全的总结学习与心得(十一)——命令注入

WEB安全的总结学习与心得(十一) 01 命令注入之简介 类型:服务器端漏洞 02 命令注入的三个条件 1.调用可执行系统命令的函数 2.函数或函数的参数可控 3.拼接注入命令 03 命令注入的攻击过程 1.构造命令 2.拼接命令,执行注入的命令 3.结果回显
暂无图片
编程学习 ·

百天打卡计划第四天-Thread之类的加载过程

类的加载过程 类的加载过程一般分为三个大阶段,加载阶段、连接阶段、初始化阶段。 1加载阶段:主要是负责查找并加载类的二进制数据文件,其实就是class文件。 2连接阶段:连接阶段的工作主要分为三个阶段验证:主要是确保类文件的正确性。 准备:为类的静态变量分配内存,并为…
暂无图片
编程学习 ·

vue or h5分享页面 唤起和下载app(苹果和安卓判断 及 微信浏览器和其他浏览器的判断)

题外话: 菜鸡是没有发言权的,导致即使不是前端的锅,也把它变成是你的锅。 哎!!!!!!!!!!!!!首先必须感谢我认识的大佬,一直在帮我解决问题(我关注的那个jamesluozhiwei 这位)步入正题: 1 。唤起和下载 用的框架 和 参考文档(重要,弄清原理啥的看这个)…
暂无图片
编程学习 ·

微信小程序--修改switch组件的大小

修改switch组件的大小 小程序中switch组件的大小往往和实际项目中的大小有些出入,但是发现文档中并没有修改大小的方法,但是可以根据自己的实际情况进行颜色设置。 直接上代码: <switch checked>正常开关</switch> <switch checked style="transform:sc…
暂无图片
编程学习 ·

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…
暂无图片
编程学习 ·

2-Openwrt ipv6之-pppoev6客户端

pppoe拨号方式上网,ubunut服务器需要有pppoe-server也要有dhcpv6-server,路由器端需要ppp-client,也要odhcp6c指向pppoe-wan端口。1. PPPOEv6客户端启动过程pppoe拨号为wan上面的另一种方式,所以需要将uci里面的上网模式proto 改成pppoe config interface wanoption ipv6 1…
暂无图片
编程学习 ·

带你全面了解蓝牙定位原理,蓝牙定位方案种类-新导智能

蓝牙定位服务是蓝牙技能领域增加最快的解决方案,现在已经被越来越多的运用于寻物、室内定位、室内导航以及财物追寻等领域。蓝牙联盟也在不断的迭代蓝牙技能,使得定位技能的精度越来越高,从最早的朴实基于信号强度的Beacon定位,到蓝牙5.1支撑的多天线视点定位等。从方案视点…
暂无图片
编程学习 ·

CMMI 2.0 和 1.3

CMMI2.0与1.3在组织形式区别很大,很多PA和之前的不太一样了,而且PA在2.0中叫实践域,1.3中叫过程域。不过其实核心内容没有大的变化,只是相关内容的位置进行了调整,部分描述进行了优化。目前是过渡阶段,2.0和1.3都可以评估,但截止日期之后就只适用2.0了。1.3评估的截止日…
暂无图片
编程学习 ·

产品经理新人必看的避坑指南

产品经理的一路走来,会遇到大大小小的“坑”。从毕业开始做产品经理已有7年,一直在回想自己有哪些地方做的不够好需要改进的。趁自己闲暇时间总结分享出来,希望能给产品新人一些启示。 一、不问要求埋头苦干。 产品新人刚入职的时候,因为经验不足,不太熟悉业务,往往一开始…
暂无图片
编程学习 ·

java.lang.UnsupportedOperationException异常处理

今天写代码的时候遇到的,原因是因为使用Arrays.asList()将数组转为list之后,想调用add方法增加元素时的异常,后来查了资料才发现猫腻 在Arrays中有一个方法Arrays.asList(),这个平常我们都用作数组转List的,但是这个方法转出来的List是无法进行add/remove操作的,原因是由…
暂无图片
编程学习 ·

.NET中解决ajax跨域问题

一行代码解决:HttpContext.Response.AppendHeader(“Access-Control-Allow-Origin”,"*"); 然后,该怎么返回数据怎么返回数据
暂无图片
编程学习 ·

redis 集群

看问题:容量不够,redis如何进行扩容? 并发写操作, redis如何分摊? 另外,主从模式,薪火相传模式,主机宕机,导致ip地址发生变化,应用程序中配置需要修改对应的主机地址、端口等信息。之前通过代理主机来解决,但是redis3.0中提供了解决方案。就是无中心化集群配置。什么…
暂无图片
编程学习 ·

字符串按固定长度分割

字符串分隔题目描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; •长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组示例1输入abc 123456789…
暂无图片
编程学习 ·

登录小Demo(错题记录)

Demo描述:实现C3P0数据库池连接数据库。部署Tomcat服务器,使用servlet完成简单登录测试。错误描述:测试时,登录账号名和密码与数据库表中信息一致。但是提示登录失败,控制台无错误提示。产生原因:细节问题。忽略了setCharacterEncoding设置字符的编码方式.注意点:1.setC…
暂无图片
编程学习 ·

Android Studio 连接夜神模拟器

1、在夜神模拟器安装bin目录下,输入cmd,回车打开命令窗口2、输入命令nox_adb.exe connect 127.0.0.1:62001unable to connect to 127.0.0.1:62001: cannot connect to 127.0.0.1:62001: 由于目标计算机积极拒绝,无法连接。 (10061) 这是端口号问题 【若没有问题,可跳过3、4…
暂无图片
编程学习 ·

Java数据结构--串的模式匹配算法

一、Brute-Force模式匹配算法 public class BruteForce {/*** Brute-Force(暴风算法)* 算法思想:* 从目标串s的第一个字符起和模式串t的第一个字符进行比较,若相等,则继续逐个比较后续字符,* 否则从s串的第二个字符起再重新和串t进行比较。以此类推,直至串t中每个字符…