0
点赞
收藏
分享

微信扫一扫

Kotlin基本语法 4 类

爪哇驿站 02-21 17:00 阅读 2

RabbitMQ六种工作模式

RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

 

相关概念介绍

概念说明
连接Connection一个网络连接,比如TCP/IP套接字连接。
信道Channel多路复用连接中的一条独立的双向数据流通道。为会话提供物理传输介质。
客户端ClientAMQP连接或者会话的发起者。AMQP是非对称的,客户端生产和消费消息,服务器存储和路由这些消息。
服务节点Broker消息中间件的服务节点;一般情况下可以将一个RabbitMQ Broker看作一台RabbitMQ 服务器。
端点AMQP对话的任意一方。一个AMQP连接包括两个端点(一个是客户端,一个是服务器)。
消费者Consumer一个从消息队列里请求消息的客户端程序。
生产者Producer一个向交换机发布消息的客户端应用程序。

准备工作

导入相关依赖

  <dependency>
    <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-amqp</artifactId>
  </dependency>

在你的application中添加以下代码(根据自己的实际情况修改)

spring:
  rabbitmq:
    host: 192.168.67.129
    port: 5672
    username: admin
    password: 123

创建配置类

  @Bean
    public Jackson2JsonMessageConverter messageConverter(){
        return new Jackson2JsonMessageConverter();
    }

    @Bean
    public 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 key
    String 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"; //正常的key

    String 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简单消息模式

模式说明

Work queues工作队列模式

Publish/Subscribe发布与订阅模式

Routing路由模式

 

P:生产者,向Exchange发送消息,发送消息时,会指定一个routing key。
X:Exchange(交换机),接收生产者的消息,然后把消息递交给 与routing key完全匹配的队列
C1:消费者,其所在队列指定了需要routing key 为 error 的消息
C2:消费者,其所在队列指定了需要routing key 为 info、error、warning 的消息

Topics主题模式

举报

相关推荐

0 条评论