0
点赞
收藏
分享

微信扫一扫

学习记录:第一天

8052cf60ff5c 2022-03-19 阅读 64
java

RabbitMQ的学习

1.MQ

消息队列,接收并转发消息

队列先进先出的特性

2.消息队列的特性

1.与业务无关;

2.FIFO

3.容灾:消息持久化,服务器崩了,重启后仍然能找到消息。

4.性能

3.消息队列的优点

1)系统解耦:消费者和使用者可以不在同一台主机上;

2)异步调用:不必等使用者完成所有业务才返回结果;

3)流量削峰:过多的请求排队处理,不会压溃服务器。

4.消息流转过程

1)生产者将消息交给交换机(Exchange),并指定路由键;

2)交换机可以与多个消息队列绑定,通过路由键可以找到指定消息队列,然后将消息放进消息队列。

3)消费者与消息队列进行绑定,监听着消息队列。

5.多个消费者共享一个消息队列的消息分配原则

1)数量平均原则 : 一个消息分配一个,循环调度

2)公平派遣 : 消息手动确认,处理完一个消息分配下一个消息,时间平均。

6.RabbitMQ的使用流程

1)创建连接工厂:ConnectionFactory factory = new ConnectionFactory();

2) 输入MQ的主机、用户名、密码:factory.set...();

3) 获取连接: Connection connection = factory.newConnection();

4) 创建信道: Channel channel = connection.createChannel();

5) 生产消息: channel.basicPublish(); 

6)关闭信道,关闭连接。

5)消费消息:channel.basicConsume();

7.交换机的类型

交换机的使用:

生产者发送消息前要指定交换机:

    channel.exchangeDeclare() - 声明交换机;

    channel.basicPublish() - 绑定交换机;

消费者接收消息时要将消息队列绑定指交换机:

    channel.exchangeDeclare() - 声明交换机;

    channel.queueDeclare().getQueue() - 声明临时队列,监听消息队列的进程被销毁时也被销毁;

    channel.queueBind() - 将消息队列绑定到指定交换机

    channel.basicConsume() - 监听消费消息。

交换机的类型:

1)fanout - 广播形式,所有与交换机绑定的消息队列都收到消息。

2)derect - 指定形式,生产者生产消息时指定交换机并且指定消息的路由键;消费者消费时将自创建的消息队列与交换机进行路由键绑定。

3)topic - 指定种类形式,生产者生产消息时指定交换机并且指定路由键,消费者消费时将自创建的消息队列与交换机进行模糊的路由键绑定(*:代表一个单词, #:代表0个或多个单词)。

 

举报

相关推荐

0 条评论