更新时间:2023-04-23 GMT+08:00

RabbitMqProducer类说明

路径

com.roma.apic.livedata.client.v1.RabbitMqProducer

说明

生产RabbitMQ消息。若发送消息没有异常,则消息发送成功;若发送消息抛出异常,则消息发送失败。

使用示例

  • 用direct交换器生产消息,把消息路由到bindingKey与routingKey完全匹配的Queue中。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    importClass(com.roma.apic.livedata.client.v1.RabbitMqProducer);
    importClass(com.roma.apic.livedata.config.v1.RabbitMqConfig);
    importClass(com.roma.apic.livedata.config.v1.QueueConfig);
    importClass(com.roma.apic.livedata.config.v1.ExchangeConfig);
    importClass(com.roma.apic.livedata.config.v1.ConnectionConfig);
     
    function execute(data) {
        var connectionConfig = new ConnectionConfig("10.10.10.10", 5672, "admin", "123456");
        var queueConfig = new QueueConfig("directQueue", false, false, false, null);
        var exchangeConfig = new ExchangeConfig("directExchange", "direct", true, false, false, null);
        var config = new RabbitMqConfig(connectionConfig, queueConfig, exchangeConfig);
     
        var producer = new RabbitMqProducer(config);
        producer.produceWithDirectExchange("direct.exchange", "PERSISTENT_TEXT_PLAIN", "direct exchange message");
     
        return "produce successful.";
    }
    
  • 用topic交换器生产消息,把消息路由到bindingKey与routingKey模糊匹配的Queue中。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    importClass(com.roma.apic.livedata.client.v1.RabbitMqProducer);
    importClass(com.roma.apic.livedata.config.v1.RabbitMqConfig);
    importClass(com.roma.apic.livedata.config.v1.QueueConfig);
    importClass(com.roma.apic.livedata.config.v1.ExchangeConfig);
    importClass(com.roma.apic.livedata.config.v1.ConnectionConfig);
     
    function execute(data) {
        var connectionConfig = new ConnectionConfig("10.10.10.10", 5672, "admin", "123456");
        var queueConfig = new QueueConfig(topicQueue, false, false, false, null);
        var exchangeConfig = new ExchangeConfig("topicExchange", "topic", true, false, false, null);
        var config = new RabbitMqConfig(connectionConfig, queueConfig, exchangeConfig);
     
        var producer = new RabbitMqProducer(config);
        producer.produceWithTopicExchange("topic.#", topic.A, null, message);
        return "produce successful.";
    }
    
  • 用fanout交换器生产消息,把所有发送到该Exchange的消息路由到所有与它绑定的Queue中。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    importClass(com.roma.apic.livedata.client.v1.RabbitMqProducer);
    importClass(com.roma.apic.livedata.config.v1.RabbitMqConfig);
    importClass(com.roma.apic.livedata.config.v1.QueueConfig);
    importClass(com.roma.apic.livedata.config.v1.ExchangeConfig);
    importClass(com.roma.apic.livedata.config.v1.ConnectionConfig);
     
    function execute(data) {
        var connectionConfig = new ConnectionConfig("10.10.10.10", 5672, "admin", "123456");
        var queueConfig = new QueueConfig(fanoutQueue, false, false, false, null);
        var exchangeConfig = new ExchangeConfig(fanoutExchange, "fanout", true, false, null);
        var config = new RabbitMqConfig(connectionConfig, queueConfig, exchangeConfig);
     
        var producer = new RabbitMqProducer(config);
        producer.produceWithFanoutExchange( null, message);
     
        return "produce successfull"
    }
    

构造器详情

public RabbitMqProducer(RabbitMqConfig rabbitMqConfig)

构造一个RabbitMQ消息生产者。

参数:rabbitMqConfig表示RabbitMQ的配置信息。

方法列表

返回类型

方法和说明

void

produceWithDirectExchange(String routingKey, String props, String message)

用direct交换器生产消息,把消息路由到bindingKey与routingKey完全匹配的Queue中。

void

produceWithTopicExchange(String bindingKey, String routingKey, String props, String message)

用topic交换器生产消息,把消息路由到bindingKey与routingKey模糊匹配的Queue中。

void

produceWithFanoutExchange(String props, String message)

用fanout交换器生产消息,把所有发送到该Exchange的消息路由到所有与它绑定的Queue中。

方法详情

  • public void produceWithDirectExchange(String routingKey, String props, String message)

    用direct交换器生产消息,把消息路由到bindingKey与routingKey完全匹配的Queue中。

    输入参数

    • routingKey:消息路由键
    • props:消息持久化设置,非必填
    • message:消息内容
  • public void produceWithTopicExchange(String bindingKey, String routingKey, String props, String message)

    用topic交换器生产消息,把消息路由到bindingKey与routingKey模糊匹配的Queue中。

    输入参数

    • bindingKey:队列绑定键
    • routingKey:消息路由键
    • props:消息持久化设置,非必填
    • message:消息内容
  • produceWithFanoutExchange(String props, String message)

    用fanout交换器生产消息,把所有发送到该Exchange的消息路由到所有与它绑定的Queue中。

    输入参数

    • props:消息持久化设置,非必填
    • message:消息内容