RabbitMq总结

Rabbitmq

应用场景

异步、解耦、削峰、发布订阅、事物一致性等等

windows集群搭建

1.下载erlang、rabbitmq

2.配置环境变量ERLANG_HOME、RABBITMQ_BASE

3.统一erlang.cookie

4.在hosts文件中增加节点名称和对应的ip配置

5.逐个修改rabbitmq节点的配置文件

1).etc目录下修改config文件的监听listener


2).sbin目录下的rabbitmq-env.bat


6.逐个启动节点并打开管理界面



7.把从节点集群到主节点


最后访问管理界面127.0.0.1:15672来验证搭建是否成功


至此,搭建完成。

Rabbitmq demo

说明:demo搭建为springboot

1、导入maven依赖


2、配置rabbitmq基本信息


3、编写RabbitConfig类,类里面设置很多个EXCHANGE,QUEUE,ROUTINGKEY,是为了接下来的不同使用场景。



4.生产者


5.消费者


启动项目后,可以从管理界面看到项目中声明的bean:

交换机


队列


测试debug


结果:



另外的模式就不一一去做了

 

 

补充几点:

1、TTL(Time To Live)

队列的过期时间决定了在没有任何消费者以后,队列可以存活多久。

有两种设置方式:


通过队列属性设置消息过期时间:


Mapargss=newHashMap();argss.put("x-message-ttl",6000);


channel.queueDeclare("TEST_TTL_QUEUE",false,false,false,argss);

设置单条消息的过期时间:



2、死信队列

有三种情况消息会进入DLX(Dead Letter Exchange)死信交换机。

1)、(NACK || Reject ) && requeue == false

2)、消息过期

3)、队列达到最大长度(先入队的消息会被发送到DLX)

可以设置一个死信队列(Dead Letter Queue)与DLX绑定,即可以存储Dead Letter,消费者可以监听这个队列取走消息。


3、优先级队列

设置一个队列的最大优先级:

发送消息时指定消息当前的优先级:


优先级高的消息可以优先被消费,但是:只有消息堆积(消息的发送速度大于消费者的消费速度)的情况下优先级才有意义。

4、延迟队列

  可用死性队列实现

5、RPC

两个队列

你可能感兴趣的:(RabbitMq总结)