网站关键词布局,广州建网站价格,微信是什么公司开发的,酒店小程序定制开发一、概述
1. 大多应用中#xff0c;可通过消息服务中间件来提升系统异步通信、扩展解耦能力
2. 消息服务中两个重要概念#xff1a; 消息代理#xff08;message broker#xff09;和目的地#xff08;destination#xff09; 当消息发送者发送消息以后#xff0c;将由…一、概述
1. 大多应用中可通过消息服务中间件来提升系统异步通信、扩展解耦能力
2. 消息服务中两个重要概念 消息代理message broker和目的地destination 当消息发送者发送消息以后将由消息代理接管消息代理保证消息传递到指定目的地。 3. 消息队列主要有两种形式的目的地 1. 队列queue点对点消息通信point-to-point 2. 主题topic发布publish/订阅subscribe消息通信 4. 点对点式 • 消息发送者发送消息消息代理将其放入一个队列中消息接收者从队列中获 取消息内容消息读取后被移出队列 • 消息只有唯一的发送者和接受者但并不是说只能有一个接收者 5. 发布订阅式 • 发送者发布者发送消息到主题多个接收者订阅者监听订阅这个 主题那么就会在消息到达时同时收到消息 6. JMSJava Message ServiceJAVA消息服务 • 基于JVM消息代理的规范。ActiveMQ、HornetMQ是JMS实现 7. AMQPAdvanced Message Queuing Protocol • 高级消息队列协议也是一个消息代理的规范兼容JMS • RabbitMQ是AMQP的实现 8. Spring支持 • spring-jms提供了对JMS的支持 • spring-rabbit提供了对AMQP的支持 • 需要ConnectionFactory的实现来连接消息代理 • 提供JmsTemplate、RabbitTemplate来发送消息 • JmsListenerJMS、RabbitListenerAMQP注解在方法上监听消息 代理发布的消息 • EnableJms、EnableRabbit开启支持 9. Spring Boot自动配置 • JmsAutoConfiguration • RabbitAutoConfiguration 10、市面的MQ产品 • ActiveMQ、RabbitMQ、RocketMQ、Kafka 二、RabbitMQ概念
RabbitMQ简介
RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。
核心概念
Message 消息消息是不具名的它由消息头和消息体组成。消息体是不透明的而消息头则由一系列的可选属性组成 这些属性包括routing-key路由键、priority相对于其他消息的优先权、delivery-mode指出该消息可 能需要持久性存储等。 Publisher 消息的生产者也是一个向交换器发布消息的客户端应用程序。 Exchange 交换器用来接收生产者发送的消息并将这些消息路由给服务器中的队列。 Exchange有4种类型direct(默认)fanout, topic, 和headers不同类型的Exchange转发消息的策略有所区别 Queue 消息队列用来保存消息直到发送给消费者。它是消息的容器也是消息的终点。一个消息可投入一个或多个队列。消息一直 在队列里面等待消费者连接到这个队列将其取走。 Binding 绑定用于消息队列和交换器之间的关联。一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则所以可以将交 换器理解成一个由绑定构成的路由表。 Exchange 和Queue的绑定可以是多对多的关系。 Connection 网络连接比如一个TCP连接。 Channel 信道多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的TCP连接内的虚拟连接AMQP 命令都是通过信道 发出去的不管是发布消息、订阅队列还是接收消息这些动作都是通过信道完成。因为对于操作系统来说建立和销毁 TCP 都 是非常昂贵的开销所以引入了信道的概念以复用一条 TCP 连接。