SpringBoot整合ActiveMQ过程解析

目录结构

SpringBoot整合ActiveMQ过程解析

引入 maven依赖

 
    org.springframework.boot
    spring-boot-starter-parent
    1.5.4.RELEASE
    
  
  
    UTF-8
    UTF-8
    1.8
  
  
    
      org.springframework.boot
      spring-boot-starter
    
    
      org.springframework.boot
      spring-boot-starter-web
    
    
      org.springframework.boot
      spring-boot-starter-test
      test
    
    
      org.springframework.boot
      spring-boot-starter-activemq
    
  
  
    
      
        org.springframework.boot
        spring-boot-maven-plugin
      
    
  

引入 application.yml配置

spring:
 activemq:
  broker-url: tcp://127.0.0.1:61616
  user: admin
  password: admin
queue: springboot-queue
server:
 port: 8080

创建QueueConfig

@Configuration
public class QueueConfig {
  @Value("${queue}")
  private String queue;

  @Bean
  public Queue logQueue() {
    return new ActiveMQQueue(queue);
  }

  @Bean
  public JmsTemplate jmsTemplate(ActiveMQConnectionFactory activeMQConnectionFactory, Queue queue) {
    JmsTemplate jmsTemplate = new JmsTemplate();
    jmsTemplate.setDeliveryMode(2);// 进行持久化配置 1表示非持久化,2表示持久化
    jmsTemplate.setConnectionFactory(activeMQConnectionFactory);
    jmsTemplate.setDefaultDestination(queue); // 此处可不设置默认,在发送消息时也可设置队列
    jmsTemplate.setSessionAcknowledgeMode(4);// 客户端签收模式
    return jmsTemplate;
  }

  // 定义一个消息监听器连接工厂,这里定义的是点对点模式的监听器连接工厂
  @Bean(name = "jmsQueueListener")
  public DefaultJmsListenerContainerFactory jmsQueueListenerContainerFactory(
      ActiveMQConnectionFactory activeMQConnectionFactory) {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    factory.setConnectionFactory(activeMQConnectionFactory);
    // 设置连接数
    factory.setConcurrency("1-10");
    // 重连间隔时间
    factory.setRecoveryInterval(1000L);
    factory.setSessionAcknowledgeMode(4);
    return factory;
  }
}

创建生产者:

@SpringBootApplication
@Component
@EnableScheduling
public class Producer {

  @Autowired
  private JmsMessagingTemplate jmsMessagingTemplate;

  @Autowired
  private Queue queue;

  @Scheduled(fixedDelay=3000)
  public void send() {
    String result = System.currentTimeMillis()+"---测试";
    System.out.println("result"+result);
    jmsMessagingTemplate.convertAndSend(queue,result);
  }
  public static void main(String[] args) {
    SpringApplication.run(Producer.class, args);
  }
}

创建消费者的application.yml

spring:
 activemq:
  broker-url: tcp://127.0.0.1:61616
  user: admin
  password: admin
queue: springboot-queue
server:
 port: 8081

创建消费者:

@Component
@SpringBootApplication
public class consumer {

  private int count =0;

  @JmsListener(destination = "${queue}")
  public void receive(TextMessage textMessage,Session session) throws JMSException {
    String text = textMessage.getText();

    System.out.println("消费:"+text+"第几次获取消息count:"+(++count));

    System.out.println();
    String jmsMessageID = textMessage.getJMSMessageID();
  }

  public static void main(String[] args) {
    SpringApplication.run(consumer.class,args);
  }
}

结果显示:

SpringBoot整合ActiveMQ过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2019-09-23

详解spring boot整合JMS(ActiveMQ实现)

本文介绍了spring boot整合JMS(ActiveMQ实现),分享给大家,也给自己留个学习笔记. 一.安装ActiveMQ 具体的安装步骤,请参考我的另一篇文章:http://www.jb51.net/article/127117.htm 二.新建spring boot工程,并加入JMS(ActiveMQ)依赖 三.工程结构 pom依赖如下:

浅谈Spring Boot 整合ActiveMQ的过程

RabbitMQ是比较常用的AMQP实现,这篇文章是一个简单的Spring boot整合RabbitMQ的教程. 安装ActiveMQ服务器,(也可以不安装,如果不安装,会使用内存mq) 构建Spring boot项目,增加依赖项,只需要添加这一项即可 org.springframework.boot spring

Springboot整合activemq的方法步骤

今天呢心血来潮,也有很多以前的学弟问到我关于消息队列的一些问题,有个刚入门,有的有问题都来问我,那么今天来说说如何快速入门mq. 一.首先说下什么是消息队列? 1.消息队列是在消息的传输过程中保存消息的容器. 二.为什么要用到消息队列? 主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update之类的请求同时到达 MySQL ,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too many connections错误.通过使用消息队列

详解SpringBoot下文件上传与下载的实现

SpringBoot后台如何实现文件上传下载? 最近做的一个项目涉及到文件上传与下载.前端上传采用百度webUploader插件.有关该插件的使用方法还在研究中,日后整理再记录.本文主要介绍SpringBoot后台对文件上传与下载的处理. 单文件上传 / 单文件上传 @RequestMapping(value = "/upload") @ResponseBody public String upload(@RequestParam("file") Multipart

activemq整合springboot使用方法(个人微信小程序用)

主题 ActiveMQ Spring Boot 小程序开发 1.引入依赖 org.springframework.boot spring-boot-starter-parent 1.5.3.RELEASE

JAVA获取HTTP请求头的方法示例

本文实例讲述了JAVA获取HTTP请求头的方法.分享给大家供大家参考,具体如下: 在利用Java网络编程时,利用Java获取HTTP Request 和 Response头字段: 可以利用Java语言根据需要添加自定义的HTTP头字段,而不必拘泥于标准HTTP定义的头字段. 365bet体育在线官网_365体育投注平台_365在线体育消息如下: public class TestURL { public static void main(String[] args) { String destURLStr= "http://www.baidu.com&q

python中使用urllib2获取http请求状态码的365bet体育在线官网_365体育投注平台_365在线体育消息例子

采集内容常需要得到网页返回的验证码做进一步处理 下面365bet体育在线官网_365体育投注平台_365在线体育消息是用python写的用来获取网页http状态码的脚本 #!/usr/bin/python # -*- coding: utf-8 -*- #encoding=utf-8 #Filename:states_code.py import urllib2 url = 'http://www.jb51.net/' response = None try: response = urllib2.urlopen(url,timeout=5) excep

PHP getallheaders无法获取自定义头(headers)的问题

在客户端请求的时候增加了自定义的http头,请求如下所示: 自定义http请求头 var_dump(getallheaders); 一开始通过getallheaders参数获取,但是发现在nginx部署的服务器上获取不到,非常奇怪,查看php手册发现getallheaders这个函数只支持apache服务器.于是找到兼容的方法: if (!function_exists('getallheaders')) { function getallheaders() { $headers = array

php查看请求头信息获取远程图片大小的方法分享

如果要获取远程图片的大小,一种普遍的做法是先将远程图片的内容获取回来,再用strlen计算长度,这种方法需要将图片下载下来,然后才能计算.如果图片很大的话,那么网络传输就要花费不少时间,效率显然低下.笔者提供一个方法来提高效率,主要是利用http的头信息. 当访问网页的时候,服务器会返回请求的头信息,其中Content-Length表示请求的网页内容大小.如果请求的是图片,那么Content-Length就表示图片的大小.根据这个,只需要发送head请求获取返回的头信息就OK了.在php中,可以

php获取网页请求状态程序示例

对于网页返回状态365bet体育在线官网_365体育投注平台_365在线体育消息一般情况下我们都会去查自己网站状态码是不是200或错误页面是不是404365bet体育在线官网_365体育投注平台_365在线体育消息,并且多数情况下我们的查看方法就是使用站长工具或ff浏览器等来查看,极少有人想到自己写一个查看状态365bet体育在线官网_365体育投注平台_365在线体育消息的功能. 本文就此简述php获取网页请求状态程序示例如下: 方法一,使用 fsockopen(不推荐使用curl_getinfo!) 复制365bet体育在线官网_365体育投注平台_365在线体育消息 365bet体育在线官网_365体育投注平台_365在线体育消息如下: function get_http_code($url="localhost", $port=80, $fsock_timeout=10)

Angular.Js中过滤器filter与自定义过滤器filter实例详解

本文主要给大家介绍了Angular.Js过滤器filter与自定义过滤器filter的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 一.AngularJS的filter过滤器: uppercase|lowercase:大小写转换过滤 json:json格式过滤 date:日期格式过滤 number:数字格式过滤 currency:货币格式过滤 filter:查找 limitTo:字符串对象截取 orderBy:对象排序

Java获取此次请求URL以及服务器根路径的方法

本文介绍了Java获取此次请求URL以及获取服务器根路径的方法,并且进行举例说明,感兴趣的朋友可以学习借鉴下文的内容. 一. 获取此次请求的URL String requestUrl = request.getScheme() //当前链接使用的协议 +"://" + request.getServerName()//服务器地址 + ":" + request.getServerPort() //端口号 + request.getContextPath() //应用

五、读取HTTP请求头

5.1 HTTP请求头概述 HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST).如有必要,客户程序还可以选择发送其他的请求头.大多数请求头并不是必需的,但Content-Length除外.对于POST请求来说Content-Length必须出现. 下面是一些最常见的请求头: Accept:浏览器可接受的MIME类型. Accept-Charset:浏览器可接受的字符集. Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip

php使用curl获取https请求的方法

本文实例讲述了php使用curl获取https请求的方法.分享给大家供大家参考.具体分析如下: 今日在做一个项目,需要curl获取第三方的API,对方的API是https方式的. 之前使用curl能获取http请求,但今天获取https请求时,出现了以下的错误提示:证书验证失败. SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_

判断请求头中是否含有某属性来判断是否是ajax请求

复制365bet体育在线官网_365体育投注平台_365在线体育消息 365bet体育在线官网_365体育投注平台_365在线体育消息如下: -->