rabbitmq

1.简单队列(模式)

/**
 * 1、队列名称
 * 2、是否持久化
 * 3、当前消息队列是否属于当前连接对象所有
 * 4、在消息使用完后是否删除该消息
 * 5、附加参数
 */
 channel.queueDeclare("simlequere", true, false, false, null);
/**
 * 1、消息要发送的交换机对象,不写 deafult
 * 2、当前消息路由地址;简单消息模式,路由地址可以写成队列地址
 * 3、附加消息
 * 4、消息
 */
channel.basicPublish("","simlequere",null,message.getBytes());

2.work模式

一个生产者对应多个消费者,但是只能有一个消费者获得消息!!!

3.发布/订阅模式

一个消费者将消息首先发送到交换器,交换器绑定多个队列,然后被监听该队列的消费者所接收并消费.

/**
 * 1、队列名称
 * 2、是否持久化
 * 3、当前消息队列是否属于当前连接对象所有
 * 4、在消息使用完后是否删除该消息
 * 5、附加参数
 */
 channel.queueDeclare("fanout_quere_1", true, false, false, null);
channel.queueDeclare("fanout_quere_2", true, false, false, null);


/**
 * 交换机
 * 1、交换机名称
 * 2、交换机类型
 */
channel.exchangeDeclare("fanout_exchage", BuiltinExchangeType.FANOUT);
/**
 * 1、队列名称
 * 2、交换机名称
 * 3、routkey
 */
channel.queueBind("fanout_quere_1","fanout_exchage","");
channel.queueBind("fanout_quere_2","fanout_exchage","");
String  message="hello word!";
/**
 * 1、消息要发送的交换机对象,不写 deafult
 * 2、当前消息路由地址;简单消息模式,路由地址可以写成队列地址
 * 3、附加消息
 * 4、消息
 */
channel.basicPublish("fanout_exchage","",null,message.getBytes());

4.路由模式

生产者将消息发送到direct交换器,在绑定队列和交换器的时候有一个路由key,生产者发送的消息会指定一个路由key,那么消息只会发送到相应key相同的队列,接着监听该队列的消费者消费信息

channel.exchangeDeclare("fanout_exchage", BuiltinExchangeType.FANOUT);

/** * 1、队列名称 * 2、交换机名称 * 3、routkey */

channel.queueBind("fanout_quere_1","fanout_exchage","key1");

channel.basicPublish("fanout_exchage","key1",null,message.getBytes());

5.主题模式

上面的路由模式是根据路由key进行完整的匹配(完全相等才发送消息),这里的通配符模式通俗的来讲就是模糊匹配.

符号"#"表示匹配一个或多个词,符号"*"表示匹配一个词.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值