发布订阅模式与前面的点对点模式很类似,简直一毛一样

注意:发布订阅模式 先启动消费者

公用pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.toov5</groupId>
<artifactId>springboot-topic-producer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<!-- 管理依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.M7</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- SpringBoot整合Web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- SpringBoot Activemq -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
</dependencies>
<!-- 注意: 这里必须要添加, 否者各种依赖有问题 -->
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>

 与上一篇博客类似的:改改就欧克了 猜猜都知道该怎么玩

 yml:

spring:
activemq:
broker-url: tcp://192.168.91.6:61616
user: admin
password: admin
my_topic: springboot-topic-toov5
server:
port: 8081

  config

package com.toov5.config;

import javax.jms.Topic;

import org.apache.activemq.command.ActiveMQTopic;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component; @Component
public class ConfigQueue {
@Value("${my_topic}")
private String myTopic; //首先将队列注入到SpringBoot容器中去
@Bean
public Topic queue() {
return new ActiveMQTopic(myTopic);
} }

producer

package com.toov5.topicProducer;

import javax.jms.Topic;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; @Component
public class TopicProducer {
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
//把队列注入进来
@Autowired //此注解默认是以类型找 在配置文件中 已经注入的 @Bean
private Topic topic; //每隔5s时间向队列发送消息
@Scheduled(fixedDelay=5000) //每间隔2s向队列发送消息
public void send() {
String msgString = System.currentTimeMillis()+" ";
jmsMessagingTemplate.convertAndSend(topic,msgString);
System.out.println("发布订阅通讯,msg"+msgString);
}
}

创建producer maven

SpringBoot 默认开启点对点的!!!! 订阅模式需要手动!!!!!

yml中: 

#### 开启发布订阅
jms:
pub-sub-domain: true

yml:

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

consumer

package com.toov5.activemqConsumer;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component; @Component
public class P2PConsumer { @JmsListener(destination= "${my_queue}") //用这个注解去监听 监听的队列
public void receiver(String msg) {
System.out.println("消费者成功获取到生产者的消息,msg"+msg);
} }

启动类

package com.toov5.activemqConsumer;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class AppConsumer { public static void main(String[] args) {
SpringApplication.run(AppConsumer.class, args);
} }

先启动消费者 然后启动生产者,多开几个端口玩玩集群~

SpringBoot2.0之整合ActiveMQ(发布订阅模式)的更多相关文章

  1. SpringBoot2.0之整合ActiveMQ(点对点模式)

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  2. ActiveMQ发布订阅模式

    ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思.意思就是一个来源分到N个出口.还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一 ...

  3. ActiveMQ发布订阅模式(转)

    ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思.意思就是一个来源分到N个出口.还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一 ...

  4. ActiveMQ发布订阅模式 转发 https://www.cnblogs.com/madyina/p/4127144.html

    ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思.意思就是一个来源分到N个出口.还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一 ...

  5. ACtiveMQ中间件-发布订阅模式

    前言:ActiveMQ学习心得 1.MQ是什么 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信, ...

  6. ActiveMQ (二)—发布订阅模式

    ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思.意思就是一个来源分到N个出口.还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一 ...

  7. ActiveMQ发布-订阅消息模式(同点对点模式的区别)

    点对点与发布订阅最初是由JMS定义的.这两种模式主要区别或解决的问题就是发送到队列的消息能否重复消费(多订阅) 点对点: 消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费 ...

  8. ActiveMQ入门系列三:发布/订阅模式

    在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点 ...

  9. ActiveMQ的p2p模式与发布订阅模式

    1.消息中间件:采用异步通讯防止,支持点对点以及发布订阅模式,可以解决高并发问题        传统调用接口,可能发生阻塞,重复提交,超时等等问题,可以利用消息中间件发送异步通讯请求          ...

随机推荐

  1. Oracle内存管理(之五)

    [深入解析--eygle]学习笔记 1.4. 2其它内存组件 Large Pool-大池是SGA的一个可选组件,通经常使用于共享server模式(MTS). 并行计算或 RMAN的备份恢复等操作. J ...

  2. 17、Spring Boot普通类调用bean【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/52013017 我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个 ...

  3. linux 之体验(JDK7+Tomcat7+MySQL5.5)部署环境

    ---------------------------------------------------------------------------------------------------- ...

  4. Vue 渲染优先级

    当 v-if 与 v-for 一起使用时,v-for 具有比 v-if 更高的优先级.

  5. Material Design Get Started

    使用Material Design设计应用: Take a look at the material design specification. Apply the material theme to ...

  6. MongoDB入门学习(二):MongoDB的基本概念和数据类型

    上一篇讲了MongoDB的安装和管理,当中涉及到了一些概念,数据结构另一些API的调用,不知道的没关系,事实上非常easy,这篇会简介一下. 1.文档 文档是MongoDB的核心概念.多个键值对有序的 ...

  7. JS创建表单提交备份

    //保存 function saveFT() { var data = { createDate: GetDateStr(0), name: $("#txtName").val() ...

  8. MySQL -进阶

    一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用 SELECT * FROM(SELE ...

  9. CPU核心电压与VID电压

    1.CPU核心电压与VID电压的区别 VID是CPU电压识别信号,CPU的工作电压就是由VID来定义的,CPU核心电压是CPU正常工作所需的电压 原理: (1)通常主板上用硬件VID确定BOOT VI ...

  10. hdu 1203 I NEED A OFFER!(01背包)

    题意:"至少一份offer的最大概率".即求拿不到offer的最小概率 (得到offer的最大概率 = 1 - 反例的最小概率). 状态转移方程:dp[j]= Min(dp[j], ...