网站销售方案深圳关键词优化
news/
2025/9/23 18:26:01/
文章来源:
网站销售方案,深圳关键词优化,大连市建设工程有限公司,wordpress运动鞋模板RabbitMQ六种工作模式
RabbitMQ是由erlang语言开发#xff0c;基于AMQP#xff08;Advanced Message Queue 高级消息队列协议#xff09;协议实现的消息队列#xff0c;它是一种应用程序之间的通信方法#xff0c;消息队列在分布式系统开发中应用非常广泛。 RabbitMQ有六…RabbitMQ六种工作模式
RabbitMQ是由erlang语言开发基于AMQPAdvanced Message Queue 高级消息队列协议协议实现的消息队列它是一种应用程序之间的通信方法消息队列在分布式系统开发中应用非常广泛。 RabbitMQ有六种模式 简单模式work模式Publish/Subscribe发布与订阅模式Routing路由模式Topics主题模式RPC远程调用模式远程调用不太算MQ暂不作介绍 相关概念介绍 AMQP 一个提供统一消息服务的应用层标准高级消息队列协议是应用层协议的一个开放标准为面向消息的中间件设计。 RabbitMQ是AMQP协议的Erlang的实现。 概念说明连接Connection一个网络连接比如TCP/IP套接字连接。信道Channel多路复用连接中的一条独立的双向数据流通道。为会话提供物理传输介质。客户端ClientAMQP连接或者会话的发起者。AMQP是非对称的客户端生产和消费消息服务器存储和路由这些消息。服务节点Broker消息中间件的服务节点一般情况下可以将一个RabbitMQ Broker看作一台RabbitMQ 服务器。端点AMQP对话的任意一方。一个AMQP连接包括两个端点一个是客户端一个是服务器。消费者Consumer一个从消息队列里请求消息的客户端程序。生产者Producer一个向交换机发布消息的客户端应用程序。 准备工作
导入相关依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId/dependency 在你的application中添加以下代码根据自己的实际情况修改
spring:rabbitmq:host: 192.168.67.129port: 5672username: adminpassword: 123 创建配置类 Beanpublic Jackson2JsonMessageConverter messageConverter(){return new Jackson2JsonMessageConverter();}Beanpublic RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory){RabbitTemplate rabbitTemplate new RabbitTemplate(connectionFactory);rabbitTemplate.setConnectionFactory(connectionFactory);rabbitTemplate.setMessageConverter(messageConverter());return rabbitTemplate;}创建枚举类RabblimqConstants 创建常量
public interface RabblimqConstants {String SIMPLE_QUEUE hello_queue_new;//点对点常量String WORK_QUEUE my_work_queue; //工作模式//路由模式String PUBLISHER_A publisher_quque_a;String PUBLISHER_B publisher_quque_b;String PUBLISHER_EXCHANGE my.exchange;//创建两个队列String FANOUT_QUEUE_A fanout_queue_a;String FANOUT_QUEUE_B fanout_queue_b;//创建交换机 广播模式String FANOUT_EXCHANGE my.fanout_exchange;//rounting交换机String ROUTING_QUEUE_ORANGE my_routing_queue_orange;String ROUTING_QUEUE_BLACK my_routing_queue_black;String ROUTING_QUEUE_GRENN my_routing_queue_green;String ROUTING_EXCHANGE my.routing_exchange;//定义rounting keyString ROUNTING_KEY_ORANGE orange;String ROUNTING_KEY_BLACK black;String ROUNTING_KEY_GREEN green;//topic模式String TOPIC_QUEUE_RED my_topic_queue_red;String TOPIC_QUEUE_WHITE my_topic_queue_white;String TOPIC_EXCHANGE my.topic.exchange;String TOPIC_KEY_RED red.#;String TOPIC_KEY_WHITE *.white.#;String NORMAL_QUEUE normal_queue;//正常队列String NORMAL_EXCHANGE normal_exchange;//正常交换机String NORMAL_ROUNTING_KEY normal_routingkey; //正常的keyString DL_QUEUE dl_queue;//死信队列String DL_EXCHANGE dl_exchange;//死信交换机String DL_ROUNTING_KEY dl_routingkey; //死信key//插件完成死信队列String SDL_QUEUE sdl_queue;String SDL_EXCHANGE sdl_exchange;String SDL_ROUNTING_KEY sdl_routingkey;String SDL_EXCHANGE_TYPE x-delayed-message;}
详细介绍 Hello World简单消息模式
模式说明 在上图的模型中有以下概念 P生产者也就是要发送消息的程序C消费者消息的接受者会一直等待消息到来。queue消息队列图中红色部分。类似一个邮箱可以缓存消息生产者向其中投递消息消费者从其中取出消息。 Work queues工作队列模式 Work Queues与入门程序的简单模式相比多了一个或一些消费端多个消费端共同消费同一个队列中的消息。 工作队列模式实际上是一种竞争关系的模式多个消费者之间是竞争关系即一条消息如果被某个消费者消费了那么其他的消费者就获取不到了。 Publish/Subscribe发布与订阅模式 发布订阅模式 1、每个消费者监听自己的队列。2、生产者将消息发给broker由交换机将消息转发到绑定此交换机的每个队列每个绑定交换机的队列都将接收到消息 Routing路由模式 模式说明 路由模式特点 队列与交换机的绑定不能是任意绑定了而是要指定一个RoutingKey路由key 消息的发送方在向 Exchange 发送消息时也必须指定消息的 RoutingKey。 Exchange 不再把消息交给每一个绑定的队列而是根据消息的Routing Key进行判断只有队列的Routingkey与消息的 Routing key 完全一致才会接收到消息 P生产者向Exchange发送消息发送消息时会指定一个routing key。 XExchange交换机接收生产者的消息然后把消息递交给 与routing key完全匹配的队列 C1消费者其所在队列指定了需要routing key 为 error 的消息 C2消费者其所在队列指定了需要routing key 为 info、error、warning 的消息 Topics主题模式 模式说明 Topic主题模式也叫通配符模式。Topic类型与Direct相比都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符 Routingkey 一般都是有一个或多个单词组成多个单词之间以”.”分割例如 item.insert 通配符规则 #匹配零个或多个词 *匹配不多不少恰好1个词 举例 item.#能够匹配item.insert.abc 或者 item.insert item.*只能匹配item.insert
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913461.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!