每天一练:SpringBoot连接mq

目录

每天一练:Springboot连接rabbitmq


每天一练:Springboot连接rabbitmq

  • 目录
  • 一、部署Rabbitmq?
  • 二、增加maven依赖
  • 三、连接RabbitMq
  • 四、发布和订阅消息
  • 总结


一、部署Rabbitmq?

这里rabbitmq采用docker安装部署。
拉取docker镜像

[root@192 ~]# docker pull rabbitmq
Using default tag: latest
latest: Pulling from library/rabbitmq
7b1a6ab2e44d: Pull complete 
37f453d83d8f: Pull complete 
e64e769bc4fd: Pull complete 
c288a913222f: Pull complete 
12addf9c8bf9: Pull complete 
eaeb088e057d: Pull complete 
b63d48599313: Pull complete 
05c99d3d2a57: Pull complete 
43665bfbc3f9: Pull complete 
Digest: sha256:884146137011519524d506a12687127f3d2c7c37c2cc11206dc72c59bedea5e2
Status: Downloaded newer image for rabbitmq:latest
docker.io/library/rabbitmq:latest

启动容器

docker run -itd --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq

进入容器内激活rabbitmq的控制台界面,其中175cee03809cc67fd679d9525e3633b3ace4a02cb582533e247c445da6b7a0da 是容器id。
激活管理界面的命令是rabbitmq-plugins enable rabbitmq_management

[root@192 ~]# docker exec -it 175cee03809cc67fd679d9525e3633b3ace4a02cb582533e247c445da6b7a0da /bin/bash
root@my-rabbit:/# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@my-rabbit:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_prometheus
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@my-rabbit...
The following plugins have been enabled:
  rabbitmq_management

started 1 plugins.

访问控制台:http://192.168.1.5:15672/,用默认的guest/guest登录,然后重新创建admin/admin用户,并指定tags为administrator
在这里插入图片描述
进入docker,启用channel的查看,不配置的话在管理台查看channel会报错:
Stats in management UI are disabled on this node
在docker容器内执行:

root@my-rabbit:/etc/rabbitmq/conf.d# echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf

然后重启docker容器
到这里,rabbitmq安装完成

二、增加maven依赖

在springboot项目的pom.xml中增加maven依赖

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

工程的创建、maven的安装和配置可以参考我之前的文章,都是练习的内容,很简单
用SpringBoot实现post和get请求

三、连接RabbitMq

在Controller中增加方法

    @RequestMapping(value="/mq/send/{message}",method=RequestMethod.GET)
    public String sendRabbitMQ(@PathVariable("message") String message) {
        producer.send(message);
        return "0";
    }

增加一个常量类定义队列名称,方便练习

package net.csdn.blog.xiaoma.example.springboot.controllerdemo.controllerdemo.services.rabbitmq;

public class RabbitConsts {

    public static final String QUEUE_NAME="TEST";

}
在service层增加配置类:

```java
package net.csdn.blog.xiaoma.example.springboot.controllerdemo.controllerdemo.services.rabbitmq;

import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitmqConfig {

    @Bean
    public RabbitTemplate rabbitTemplate(CachingConnectionFactory cachingConnectionFactory) {
        RabbitTemplate rabbitTemplate = new RabbitTemplate(cachingConnectionFactory);
        rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());

        return rabbitTemplate;
    }
    @Bean
    public Queue Queue() {
        return new Queue(RabbitConsts.QUEUE_NAME);
    }
}

启动服务

四、发布和订阅消息

通过浏览器访问url,发送消息
http://127.0.0.1:8080/demo/mq/send/test2
其中test2模拟的是发送消息。
执行后在rabbitmq中可以看到新增的消息
在这里插入图片描述

总结

因为是练习帖,所以代码逻辑和风格不好,以后再完善

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/76724.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测。基于分位…

【探索Linux】—— 强大的命令行工具 P.3(Linux开发工具 vim)

阅读导航 前言vim简介概念特点 vim的相关指令vim命令模式(Normal mode)相关指令插入模式(Insert mode)相关指令末行模式(last line mode)相关指令 简单vim配置&#xff08;附配置链接&#xff09;温馨提示 前言 前面我们讲了C语言的基础知识&#xff0c;也了解了一些数据结构&…

c#设计模式-结构型模式 之 桥接模式

前言 桥接模式是一种设计模式&#xff0c;它将抽象与实现分离&#xff0c;使它们可以独立变化。这种模式涉及到一个接口作为桥梁&#xff0c;使实体类的功能独立于接口实现类。这两种类型的类可以结构化改变而互不影响。 桥接模式的主要目的是通过将实现和抽象分离&#xff0c;…

机器学习知识点总结:什么是GBDT(梯度提升树)

什么是GBDT(梯度提升树) 虽然GBDT同样由许多决策树组成&#xff0c;但它与随机森林由许多不同。 其中之一是GBDT中的树都是回归树&#xff0c;树有分类有回归&#xff0c;区分它们的方法很简单。将苹果单纯分为好与坏的是分类树&#xff0c;如果能为苹果的好坏程度打个分&…

c++实现哈希桶

闭散列的回顾 在前面的学习中我们知道了闭散列的运算规则&#xff0c;当两个数据计算得到的位置发生冲突时&#xff0c;它会自动的往后寻找没有发生冲突的位置&#xff0c;比如说当前数据的内容如下&#xff1a; 当插入的数据为33时计算的位置为3&#xff0c;可是位置3已经被占…

一百五十二、Kettle——Kettle9.3.0本地连接Hive3.1.2(踩坑,亲测有效,附截图)

一、目的 由于先前使用的kettle8.2版本在Linux上安装后&#xff0c;创建共享资源库点击connect时页面为空&#xff0c;后来采用如下方法&#xff0c;在/opt/install/data-integration/ui/menubar.xul文件里添加如下代码 <menuitem id"file-openZiyuanku" label&…

Zass主题 - 手工艺术家和工匠的WooCommerce商城主题

Zass主题是适合手工艺术家和工匠的完美 WordPress / WooCommerce 主题。无论您是想为您的手工制作业务构建功能齐全的 Etsy Style 在线商店、博客还是作品集&#xff0c;Zass 主题都是您的正确选择。凭借其极其强大的自定义电子商务功能、无限的作品集风格、不同的博客风格和无…

DNNGP模型解读-early stopping 和 batch normalization的使用

一、考虑的因素&#xff08;仅代表个人观点&#xff09; 1.首先我们看到他的这篇文章所考虑的不同方面从而做出的不同改进&#xff0c;首先考虑到了对于基因组预测的深度学习方法的设计 &#xff0c;我们设计出来这个方法就是为了基因组预测而使用&#xff0c;这也是主要目的&…

sklearn机器学习库(二)sklearn中的随机森林

sklearn机器学习库(二)sklearn中的随机森林 集成算法会考虑多个评估器的建模结果&#xff0c;汇总之后得到一个综合的结果&#xff0c;以此来获取比单个模型更好的回归或分类表现。 多个模型集成成为的模型叫做集成评估器&#xff08;ensemble estimator&#xff09;&#xf…

NLP中的RNN、Seq2Seq与attention注意力机制

目录 NLP自然语言处理 的RNN、Seq2Seq与attention注意力机制 RNN循环神经网络 前馈网络入门 前馈网络 循环网络 多层感知器架构示例 循环神经网络的运作原理 展开 RNN seq2seq模型 Attention&#xff08;注意力机制&#xff09; 总结 引用 NLP自然语言处理 的RNN、…

iPhone删除的照片能恢复吗?不小心误删了照片怎么找回?

iPhone最近删除清空了照片还能恢复吗&#xff1f;大家都知道&#xff0c;照片对于我们来说是承载着美好回忆的一种形式。它记录着我们的平淡生活&#xff0c;也留住了我们的美好瞬间&#xff0c;具有极其重要的纪念价值。 照片不小心误删是一件非常难受的事&#xff0c;那么iP…

【Redis】Redis的持久化(备份)

【Redis】Redis的持久化&#xff08;备份&#xff09; Redis的数据全部在内存里&#xff0c;如果突然宕机&#xff0c;数据就会全部丢失&#xff0c;因此必须有一种机制来保证Redis的数据不会因为故障而丢失&#xff0c;这种机制就是Redis的持久化机制。 如图所示&#xff0c…

改善神经网络——优化算法(mini-batch、动量梯度下降法、Adam优化算法)

改善神经网络——优化算法 梯度下降Mini-batch 梯度下降&#xff08;Mini-batch Gradient Descent&#xff09;指数加权平均包含动量的梯度下降RMSprop算法Adam算法 优化算法可以使神经网络运行的更快&#xff0c;机器学习的应用是一个高度依赖经验的过程&#xff0c;伴随着大量…

2023年Android性能优化常见30道面试题解

在Android开发领域&#xff0c;性能优化是一个关键而广泛讨论的话题。对于任何一位Android开发者而言&#xff0c;了解和掌握性能优化的技巧是至关重要的。无论是在开发过程中还是在面试环节中&#xff0c;掌握Android性能优化的知识都能展示出你作为一名优秀开发者的能力。 本…

利用HTTP代理实现请求路由

嘿&#xff0c;大家好&#xff01;作为一名专业的爬虫程序员&#xff0c;我知道构建一个高效的分布式爬虫系统是一个相当复杂的任务。在这个过程中&#xff0c;实现请求的路由是非常关键的。今天&#xff0c;我将和大家分享一些关于如何利用HTTP代理实现请求路由的实用技巧&…

HTML(JavaEE初级系列12)

目录 前言&#xff1a; 1.HTML结构 1.1认识HTML标签 1.2HTML文件基本结构 1.3标签层次结构 1.4快速生成代码框架 2.HTML常见标签 2.1注释标签 2.2标题标签&#xff1a;h1-h6 2.3段落标签&#xff1a;p 2.4换行标签&#xff1a; br 2.5格式化标签 2.6图片标签&#…

【k8s】基于Prometheus监控Kubernetes集群安装部署

目录 基于Prometheus监控Kubernetes集群安装部署 一、环境准备 二、部署kubernetes集群 三、部署Prometheus监控平台 四、部署Grafana服务 五、grafana web操作 基于Prometheus监控Kubernetes集群安装部署 一、环境准备 IP地址 主机名 组件 192.168.100.131 k8s-ma…

Activiti6

一、Activiti介绍与搭建开发环境 二、运行官方例子 三、编写第一个Activiti程序 3.1 流程部署 代码 /*** 部署流程* 涉及到的表有&#xff1a; * 1.act_ge_bytearray 两条记录&#xff0c;一条xml数据&#xff0c;一条png图片信息 * 2.act_re_deployment 一条记录 * 3.a…

Android FrameWork 层 Handler源码解析

Handler生产者-消费者模型 在android开发中&#xff0c;经常会在子线程中进行一些耗时操作&#xff0c;当操作完毕后会通过handler发送一些数据给主线程&#xff0c;通知主线程做相应的操作。 其中&#xff1a;子线程、handler、主线程&#xff0c;其实构成了线程模型中经典的…

【独立版】新零售社区团购电商系统生鲜水果商城兴盛优选十荟团源码

【独立版】新零售社区团购电商系统生鲜水果商城兴盛优选十荟团源码