关于rabbitmq:119

57次阅读

共计 917 个字符,预计需要花费 3 分钟才能阅读完成。

rabbitmq 六种模式



发送音讯的程序就是生产者
队列就代表一个邮箱。
消费者期待从队列接管音讯
ConnectionFactory f = new ConnectionFactory();

    f.setHost("192.168.64.140");
    f.setPort(5672);// 可选,5672 是默认端口
    f.setUsername("admin");
    f.setPassword("admin");

工作模式



一个生产者,两个消费者
rabbitmq 在所有消费者中轮询散发音讯, 把音讯平均地发送给所有消费者

正当的散发

abbitmq 会一次把多个音讯分发给消费者, 这样可能造成有的消费者十分忙碌, 而其它消费者闲暇. 而 rabbitmq 对此无所不知, 依然会平均的散发音讯

咱们能够应用 basicQos(1) 办法, 这通知 rabbitmq 一次只向消费者发送一条音讯, 在返回确认回执前, 不要向消费者发送新音讯. 而是把音讯发给下一个闲暇的消费者

音讯长久化

当 rabbitmq 敞开时, 咱们队列中的音讯依然会失落, 除非明确要求它不要失落数据

要求 rabbitmq 不失落数据要做如下两点: 把队列和音讯都设置为可长久化(durable)

队列设置为可长久化, 能够在定义队列时指定参数 durable 为 true

第二个参数是长久化参数 durable

ch.queueDeclare(“helloworld”, true, false, false, null);

公布和订阅模式



咱们将做一些齐全不同的事件——咱们将向多个消费者传递同一条音讯。这种模式称为“公布 / 订阅”。

Exchanges 交换机

RabbitMQ 消息传递模型的核心思想是,生产者永远不会将任何音讯间接发送到队列。实际上,通常生产者甚至不晓得音讯是否会被传递到任何队列。
有几种可用的替换类型:direct、topic、header 和 fanout。咱们将关注最初一个——fanout。让咱们创立一个这种类型的交换机,并称之为 logs: ch.exchangeDeclare("logs", "fanout");

主动生成队列名
非长久, 独占, 主动删除
String queueName = ch.queueDeclare().getQueue();

4. 路由模式


正文完
 0