queue: queue_mq # 点对点消费名字
topic: topic_mq # 订阅式消费名字
5、配置Bean
@Configuration
@EnableJms
public class ActiveMqConfig {
@Value(“${queue}”)//对应yml文件中定义的queue
private String queue;
@Value(“${topic}”)//对应yml文件中定义的topic
private String topic;
/**
-
创建点对点的队列 一个消息只能被一个消费者消费 — 一对一
-
@return
*/
@Bean
public Queue queue(){
return new ActiveMQQueue(queue);
}
/**
-
创建订阅式的队列 一个消息可以被多个消费者消费 — 一对多
-
@return
*/
@Bean
public Topic topic(){
return new ActiveMQTopic(topic);
}
}
6、创建生产者(Queue+Topic)
@RestController
public class ProducerController {
@Autowired
private Queue queue;
@Autowired
private Topic topic;
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
/**
-
点对点的消息队列的生产者
-
@param string
*/
@GetMapping(“/queue”)
public void sendMsgQueue(@RequestParam String string){
System.out.println("消息已经发送,准备被消费,消息为 —> "+string);
jmsMessagingTemplate.convertAndSend(queue,string);
}
/**
-
一对多的消息队列的生产者
-
@param string
*/
@GetMapping(“/topic”)
public void sendMsgTopic(@RequestParam String string){
System.out.println("消息已经发送,准备被消费,消息为 —> "+string);
jmsMessagingTemplate.convertAndSend(topic,string);
}
}
7、创建消费者(Topic模式下)
@Component
public class TopicConsumer {
/**
-
监听消息,名字为生产者发送的名字,要一致,不然监听不到.
-
因为是订阅者模式,可以有多个消费者,我们这里举两个来进行测试
-
@param string
*/
@JmsListener(destination = “${topic}”)
public void consumerTopicOne(String string){
System.out.println("我是消费者一号:消费消息成功,信息为—> "+string);
}
@JmsListener(destination = “${topic}”)
public void consumerTopicTwo(String string){
System.out.println("我是消费者二号:消费消息成功,信息为—> "+string);
}
}
8、测试结果(Topic模式下)
9、网页版查看是否成功(Topic模式下)
网站地址 http://127.0.0.1:8161/admin/ 账号密码都是admin
10、创建消费者(Queue模式下)
首先把yml文件中的配置修改为Queue:pub-sub-domain: false
@Component
public class QueueConsumer {
/**
-
监听消息,名字为生产者发送的名字,要一致,不然监听不到.
-
因为是队列模式,只能消费者
-
@param string
*/
@JmsListener(destination = “${queue}”)
public void consumerQueue(String string){
System.out.println("消费消息成功,信息为—> "+string);
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后总结
ActiveMQ+Kafka+RabbitMQ学习笔记PDF
关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
65)]
关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!