《SpringBoot篇》25.SpringBoot整合ActiveMQ

这篇具有很好参考价值的文章主要介绍了《SpringBoot篇》25.SpringBoot整合ActiveMQ。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

陈老老老板🦸
👨‍💻本文专栏:SpringBoot篇(主要讲一些与springboot整合相关的内容)
👨‍💻本文简述:本文讲一下SpringBoot整合ActiveMQ的整合教程,特别详细。
👨‍💻上一篇文章: 《SpringBoot篇》24.SpringBoot整合Freemarker超详细教程
👨‍💻有任何问题,都可以私聊我,在文章最后也可以加我的vx。感谢支持!
🦹我认为人人都可以学好编程,我愿意成为你的领路人!

activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

一、ActiveMQ简介

1.简介:

在先学习整合之前先了解一下ActiaveMQ,ActiveMQ是早期MQ产品之一,是使用JAVA语言编写。大部分现在的项目可能已经不使用,但是公司中的产品咱也说不准,所以还是要学习一下的。简单来说就是用作服务间的通信。以下是官方解释:
Apache ActiveMQ是最流行的开源、多协议、基于Java的消息代理。它支持行业标准协议,因此用户可以在广泛的语言和平台上获得客户端选择的好处。从用JavaScript、C、C++、Python、.Net等编写的客户端连接。使用无处不在的AMQP协议集成多平台应用程序。通过websockets使用STOMP在web应用程序之间交换消息。ActiveMQ提供了支持任何消息传递用例的功能和灵活性。

2.作用:

    1. 降低服务之间代码耦合,按功能将一个整体的项目进行分割成多个系统,比如将报告系统、短信系统分割出来。
    1. 使用消息队列,增加系统并发处理量,这样并发量就可以变高了,根据不同的消息通信机制,选择合适的发送模式。

3.特性:

    1. 实现松耦合:ActiveMQ以异步的形式提供松耦合的应用架构,也就是说生产者和消费者互不影响。
    1. 遵循JMS规范:ActiveMQ的各种特性是JMS1.1规范的实现。JMS规范保证了同步和异步消息传递、一次和仅一次的传递、对于订阅者的消息持久化。
    1. 支持多种连接协议:ActiveMQ提供了各种连接选择,包括HTTP、HTTPS、SSL、TCP、UDP、XMPP、IP多点传送等。
    1. 提供多种客户端接口:ActiveMQ对多种编程语言提供了API接口,例如C/C++、java 、.NET、PHP、Python和Perl等版本。
    1. 支持多种应用服务器:ActiveMQ与Java应用服务器很好地集成。
    1. 提供持久性:ActiveMQ拥有多种持久性方案可供选择。
    1. 提供安全保障:ActiveMQ可以按自己的需求定制安全等级,既可以通过配置文件提供简单的验证和授权,也可以实现标准的JAAS登录模块。
    1. 支持代理集群:为了更好的扩展性,多个ActiveMQ代理可以通过代理网络(Network of Brokers)进行联合的工作。
    1. 提供简单的管理:ActiveMQ提供了各种简便而又强大的管理方式,除了Java语言中最基本的JConsole,还有ActiveMQ Web Console、消息报告和各种系统日志等。

二、ActiveMQ的下载与安装

1.下载:

(1).不想麻烦直接去我网盘下载,这是5.16.5的版本,适配与jdk1.8.这里要注意每个版本适配的jdk版本可能不一样。网盘链接:ActiveMQ压缩包,提取码CLLB。
(2).去官网下载,官网地址:ActiveMQ官网,点击下载5.16.5版本适配jdk1.8
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

2.安装:

(1)直接进行解压就能使用。
(2)点击进入bin,win64,activemq.bat就能就行使用了。
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

3.错误:

分析日志错误:运行发现报错,通过日志可以看出是端口被占用。
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq
解决问题:首先应该想到查看是什么服务占用了5672端口,打开命令窗口,
如果想查看PID输入tasklist|findstr “5672”
如果想查看所有有关“5672”的服务可以输入netstat -aon|findstr “5672”
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq
将进程杀死就ok了,输入taskkill -f -pid 7816 。在重新启动。
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

4.测试

再次打开avtivemq,在浏览器网址栏输入

http://127.0.0.1:8161/

会进入activemq的可视化界面,用户名密码都是admin
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq
点击manage进入控制台:
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq
点击Queues查看使用到的队列:
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

三、SpringBoot整合ActiveMQ

1.创建项目:

运行环境:

  • springboot 2.7.6
  • lombok

activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

2.添加依赖

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

activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

3.配置文件

spring:
  activemq:
    broker-url: tcp://localhost:61616

activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

4.实现类

实现接口MessageService

public interface MessageService {
    void sendMessage(String message);

    String doMessage();
}

实现类MessageServiceImpl

@Service
public class MessageServiceImpl implements MessageService{

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @Override
    public void sendMessage(String message) {
        System.out.println("等待发送的信息为:" + message);
        jmsMessagingTemplate.convertAndSend("order.queue.message",message);
    }

    @Override
    public String doMessage() {
        String message = jmsMessagingTemplate.receiveAndConvert("order.queue.message",String.class);
        System.out.println("已经接收到信息:" + message);
        return message;
    }
}

5.使用监听器自动消费

@Component
public class MessageListener {

   @JmsListener(destination = "order.queue.message")
   private void receive(String message){
       System.out.println("自动接收到消息:"+ message);
   }
}

6.测试类

@SpringBootTest
class ActivemqApplicationTests {

    @Autowired
    private MessageService messageService;

    @Test
    void sendmessage() {
        String message = "陈老老老板";
        messageService.sendMessage(message);
    }
	
	//这个是手动消费,如果使用了监听器就会自动消费
	@Test
    void domessage() {
        messageService.doMessage();
    }
}

成功效果:
没有监听器:
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq
使用监听器:
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

在可视化中也可以看到消息的生产与消费
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

7.扩展知识

说明:扩展监听器功能,@SendTo将消息处理完继续发送继续处理

@Component
public class MessageListener {

    @JmsListener(destination = "order.queue.message")
    @SendTo("other.queue")	
    private String receive(String message){
        System.out.println("自动接收到order.queue.message消息:"+ message);
//        注意是将此方法的返回值返回到 新的队列中
        return message;
    }

    @JmsListener(destination = "other.queue")
    private void  receiveOther(String message){
        System.out.println("接收到other.queue继续发送的消息:" + message);
    }
}

成功演示:
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq
activemq集成springboot,SpringBoot篇,java-activemq,spring boot,activemq

总结:SpringBoot整合ActiveMQ超详细教程。希望对您有帮助,感谢阅读

结束语:裸体一旦成为艺术,便是最圣洁的。道德一旦沦为虚伪,便是最下流的。
勇敢去做你认为正确的事,不要被世俗的流言蜚语所困扰。
文章来源地址https://www.toymoban.com/news/detail-780489.html

到了这里,关于《SpringBoot篇》25.SpringBoot整合ActiveMQ的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【花艺电商】SpringBoot集成MyBatis-Plus、Swagger2、SpringSecurity、OAuth2等技术整合开发

    目录 一、功能介绍 1. 说明 2. 功能实现 3. 技术应用 二、技术详述 1.MyBatis-Plus 主要体现 项目应用 2.SpringSecurity 应用作用 三、页面展示 1. 登入 2. 主页 3. 详情 4. 购物车 5. 订单 6. 沙箱支付 每篇一获 这个项目主要使用了 Spring Security 、 MyBatis-Plus 、 Redis 、 雪花ID 、 参数校验技

    2024年01月25日
    浏览(48)
  • 【SpringBoot整合系列】SpringBoot整合FastDFS(一)

    FastDFS(Fast Distributed File System)是一款开源的分布式文件系统,它提供了高性能、高可靠性、高扩展性和高容错性的分布式文件存储解决方案。 FastDFS采用了类似于Google File System(GFS)的架构,它的设计目标是解决大规模数据存储和高访问速度的问题。 分布式架构: FastDFS采用

    2024年04月27日
    浏览(41)
  • SpringBoot入门篇3 - 整合junit、整合mybatis、基于SpringBoot实现ssm整合

    目录 Spring整合JUnit  SpringBoot整合JUnit 测试类注解:@SpringBootTest 作用:设置JUnit加载的SpringBoot启动类 ①使用spring initializr初始化项目的时候,添加依赖。  ②设置数据源application.yml 注意: SpringBoot版本低于2.4.3,Mysql驱动版本大于8.0时,需要在url连接串中配置时区。 ③定义数据

    2024年02月10日
    浏览(44)
  • 【SpringBoot】SpringBoot整合Milvus

    Milvus,一个开源的高性能向量数据库,它在各种应用场景中展现出强大的性能和灵活性。 在许多现代应用中,处理和分析大规模向量数据变得越来越重要。例如,在图像和视频搜索、推荐系统、自然语言处理和生物信息学等领域,向量数据被广泛应用。 在公司推荐系统中,

    2024年02月12日
    浏览(26)
  • 【Springboot系列】SpringBoot整合Jpa

    前言: Spring Boot是一种快速开发框架,它简化了Java应用程序的开发过程。而Jpa(Java Persistence API)是Java持久化规范的一种实现,它提供了一种方便的方式来访问和操作数据库。将Spring Boot与Jpa整合可以更加方便地进行数据库操作,提高开发效率。本文将介绍如何使用Spring Bo

    2024年02月05日
    浏览(42)
  • SpringBoot整合、SpringBoot与异步任务

    java 的代码是同步顺序执行,当我们需要执行异步操作时我们通常会去创建一个新线程去执行。比如new Thread()。start(),或者使用线程池线程池 new ThreadPoolExecutor().execute 。 在 Springboot 中对其进行了简化处理,使用@EnableAsync + @Async 可以快速开启一个异步线程执行任务 启动类上使

    2024年02月13日
    浏览(35)
  • 【SpringBoot】SpringBoot整合Mybatis、druid

    🌕博客x主页:己不由心王道长🌕! 🌎文章说明:SpringBoot🌎 ✅系列专栏:spring 🌴本篇内容:基于SpringBoot整合Mybatis、druid🌴 ☕️每日一语:有时候,没有下一次,没有机会重来,没有暂停继续。有时候,错过了现在,就永远永远的没机会了。☕️ 🕤作者详情:作者是一名

    2024年02月10日
    浏览(40)
  • [SpringBoot系列]SpringBoot如何整合SSMP

    SpringBoot之所以好用,就是它能方便快捷的整合其他技术,这里我们先介绍四种技术的整合: 整合JUnit 整合MyBatis 整合MyBatis-Plus 整合Druid ​ SpringBoot技术的定位用于简化开发,再具体点是简化Spring程序的开发。所以在整合任意技术的时候,如果你想直观感触到简化的效果,你必

    2023年04月23日
    浏览(35)
  • 【SpringBoot篇】SpringBoot整合Mybatis实战

    🎊专栏【SpringBoot】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 Spring Boot可以非常方便地集成MyBatis来实现对数据库的访问,从而快速搭建项目持久层。如果你也想利用Spring Boot整合MyBatis,本文将为你详细讲解整合过

    2024年02月05日
    浏览(65)
  • 【SpringBoot系列】SpringBoot整合Kafka(含源码)

    前言 在现代的微服务架构中,消息队列已经成为了一个不可或缺的组件。 它能够帮助我们在不同的服务之间传递消息,并且能够确保这些消息不会丢失。 在众多的消息队列中,Kafka 是一个非常出色的选择。 它能够处理大量的实时数据,并且提供了强大的持久化能力。 在本

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包