
消息中间件
主要介绍消息中间件相关知识
阳光下的米雪
在校研究生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ActiveMQ与SpringBoot的整合
ActiveMQ配置类@Configuration@EnableJmspublic class ActiveMQConfig {/** * 定义存放消息的队列 * @return */ @Bean public Queue queue (){ return new ActiveMQQueue("springboot.queue"); }/** * springboot默认只配置queue类型消息,如果使用topic类型的消息,则需要配置该原创 2020-09-29 17:37:01 · 256 阅读 · 0 评论 -
ActiveMQ的同步阻塞方式与异步非阻塞方式
ActiveMQ的同步阻塞方式与异步非阻塞方式同步阻塞方式(receive())订阅者或接收者调用MessageConsumer的receive()方法来接收消息,recieve()方法在能够接收到消息之后(或超时之前)将一直阻塞。异步非阻塞方式(监听器onMessage())订阅者或接收者通过MessageConsumer的setMessageListener(MessageListener listener)注册一个消息监听器,当消息到达之后,系统自动调用监听器的MessageListener的原创 2020-09-30 11:12:40 · 691 阅读 · 0 评论 -
ActiveMQ
ActiveMQ生产者public class JmsProduce { //默认tcp private static final String ACTIVEMQ_URL = "tcp://localhost:61616"; private static final String QUEUE_NAME = "queue01"; public static void main(String[] args) throws JMSException { //1.原创 2020-09-29 17:45:28 · 255 阅读 · 1 评论 -
RabbitMQ--五种模式之RabbitMQ与SpringBoot进行整合
五种模式之RabbitMQ与SpringBoot进行整合application.propertiesspring.application.name=rabbitmq-springbootspring.rabbitmq.host=10.15.0.9spring.rabbitmq.port=5672spring.rabbitmq.username=emsspring.rabbitmq.password=123spring.rabbitmq.virtual-host=/ems#RabbitTem原创 2021-02-25 19:32:18 · 177 阅读 · 2 评论 -
RabbitMQ介绍
RabbitMQ介绍本文主要从一下几个方面介绍:MQMQ(Message Queue)消息队列,通过典型的生产者和消费者模型。生产者不断向消息队列中生产消息,消费者不断从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松实现系统间解耦。别名为消息中间件,通过高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。MQ有哪些ActiveMQ、RabbitMQ、Kafka、RocketMQ不同MQ的特点ActiveMQ原创 2021-02-24 17:40:58 · 318 阅读 · 0 评论 -
RabbitMQ--Fanout(广播模型)
Fanout(广播模型)生产者发送的消息,只能发送到交换机,交换机决定要发给哪个队列,生产者无法决定。交换机把消息发送给绑定过的所有队列,队列的消费者都能拿到消息,实现一条消息被多个消费者消费RabbitMqUtils在RabbitMQ工作原理中已经介绍,这里不在赘述了Providerpublic class Provider { public static void main(String[] args) throws IOException { //获取连接对象原创 2021-02-24 19:35:01 · 241 阅读 · 0 评论 -
RabbitMQ--Work Queue(任务模型)
Work Queue(任务模型)Work quenes也被称为(Task queues),任务模型。当消息处理比较耗时的时候,可能生产消息的速度远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时处理。此时就可以使用work模型:让多个消费者绑定到同一个队列,共同消费队列中的消息。队列中的消息一旦消费,就会消失,因此任务是不会被重复执行的。默认情况下消费者1和消费者2消费的消息是一致的,也就是平均分配消息RabbitMQ连接工具类在RabbitMQ工作原理中已经介绍这里不在赘述了Pro原创 2021-02-24 19:29:47 · 287 阅读 · 0 评论 -
RabbitMQ的集群
RabbitMQ的集群主要有以下两种:普通集群(副本集群)主备架构:主节点同步(仅能同步exchange,不能同步队列),从节点备份默认情况下:RabbitMQ代理操作所需的所有数据状态都将跨所有节点复制。这方面的一个例外是,消息队列位于一个节点上,尽管他们可以从所有节点看到和访问核心解决问题:当集群中某一时刻master节点宕机,可以对Queue中的信息,进行备份注意:1) 队列仅存在在主节点上,当主节点宕机之后,从节点不能对外提供服务。2) 只有主节点活着,才可以对外提供服务。3)原创 2021-02-24 19:49:09 · 163 阅读 · 0 评论 -
RabbitMQ工作原理
RabbitMQ工作原理Hello World(直连)模式RabbitMQ连接工具类public class RabbitMqUtils { private static ConnectionFactory connectionFactory; static { connectionFactory = new ConnectionFactory(); //设置连接rabbitmq主机 connectionFactory.setHo原创 2021-02-24 19:23:36 · 277 阅读 · 0 评论 -
RabbitMQ--Routing之订阅模型-Topic
Routing之订阅模型-TopicTopic类型的Exchange与Direc相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列再绑定RoutingKey的时候使用通配符!这种模型RoutingKey一般都是由一个或多个单词组成,多个单词之间以“.”分割,例如item.insert其中,匹配不多不少恰好1个词,#匹配一个或多个词;比如:audit .# 匹配audit.irs.corporate或者audit.irsaudit . 只能匹原创 2021-02-24 19:42:33 · 195 阅读 · 0 评论 -
RabbitMQ--Routing之订阅模型-Direct(直连)
Routing之订阅模型-Direct(直连)在Fanout模式中,一条消息会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct的Exchange。在Direct模型下:队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)消息的发送在向Exchange发送消息时,也必须指定消息的RoutingKeyExchange不再把消息交给每一个绑定的队列,而是根据消息的RoutingKey进行判断,只有队列的Routi原创 2021-02-24 19:38:16 · 164 阅读 · 0 评论