rabbitMQ学习的点点滴滴

最近在做支付平台,在支付成功之后需要涉及15/15/30/180/1800/1800/1800/1800/3600s的阶梯性异步通知,实现方法应该有很多,公司大神推荐还是用MQ,MQ的优势消峰、降耦合,异步等大家应该都有所了解,了解activeMq  、Kafaka、rokectMQ、rabbitMQ,总结如下:

activeMq   老牌消息中间件,api全面,但是吞吐量不大

Kafaka      吞吐量大,但是数据无法保证不丢失,主要面向大数据

rokectMQ:吞吐量大,保证数据不丢失,并且支持分布式事物,但是商业版需要收费

rabbitMQ:基于Erlang语言,吞吐量大,数据不易丢失

最后选择rabbitMQ

rabbitMQ简介

RabbitMQ是一个实现了AMQP(Advanced Message Queuing Protocol)高级消息队列协议的消息队列服务,用Erlang语言。

因为erlang语言产生就是为了解决电话网络高性能的需求,因此在分布式和并发方面RabbitMQ表现比较突出,了解RabbitMQ主要是需要了解Queue、exchange、生产者、消费者等,这里介绍的比较多

https://zhuanlan.zhihu.com/p/63700605

同步、异步、事务等的执行效率比较
https://juejin.im/post/5b54681bf265da0f82023014

安装rabbitMq

在linux内核的安装需要考虑linux的版本,我的是centeros8x,参考地址如下:https://www.cnblogs.com/yadongliang/p/12504187.html

rabbitmq和erlang版本对应关系(来自官方):

RabbitMQ versionMinimum required Erlang/OTPMaximum supported Erlang/OTPNotes
3.8.421.323.xErlang/OTP 23 compatibility notes
Erlang 22.x or 23.x is recommended
Erlang 22.x dropped support for HiPE
3.8.321.322.xErlang 22.x is recommended.
3.8.2Erlang 22.x dropped support for HiPE
3.8.1 
3.8.0 
3.7.2621.322.xErlang/OTP 20.x support is discontinued
3.7.25Erlang 22.x dropped support for HiPE
3.7.24 
3.7.23 
3.7.22 
3.7.21 
3.7.20 
3.7.19 
3.7.1820.322.xErlang/OTP 22.0 compatibility notes
3.7.17TLSv1.0 and TLSv1.1 support is disabled by default on Erlang 22.x
3.7.16 
3.7.15 
3.7.1420.321.xErlang/OTP 19.x support is discontinued
3.7.13For the best TLS support, the latest version of Erlang/OTP 21.x is recommended
3.7.12 
3.7.11 
3.7.1019.321.xErlang/OTP 21.0 compatibility notes
3.7.9
3.7.8
3.7.7
3.7.619.320.xFor the best TLS support, the latest version of Erlang/OTP 20.x is recommended
3.7.5Erlang versions prior to 19.3.6.4 have known bugs (e.g. ERL-430ERL-448) that can prevent RabbitMQ nodes from accepting connections (including from CLI tools) and stopping
3.7.4Versions prior to 19.3.6.4 are vulnerable to the ROBOT attack (CVE-2017-1000385)
3.7.3On Windows, Erlang/OTP 20.2 changed default cookie file location
3.7.2 
3.7.1 
3.7.0 

延迟队列的实现方法

rabbitmq延迟队列的实现方法有两种,死信和延迟队列插件的方案,我选择的是延迟队列,这个需要下载插件

本来rabbitmq和x-delayed-message插件的对应关系如下:

插件   rabbitmq
     3.6.x          3.8.x
    3.6.x          3.7.x
     3.5.x          3.7.x
     =< 3.4.x     3.6.16

但我发觉并没有什么卵用,我最先安装3.6.x版本的结果报错:

Request to node rabbit@DESKTOP-RTV2QA7 failed with {'EXIT',
{function_clause,
[{rabbit_exchange_type_delayed_message,
validate,
[{exchange,
{resource,<<"/">>,
exchange,<<"top">>},
'x-delayed-message',
true,false,false,[],
undefined,undefined,........................

截图如下:

升级到最新版的插件rabbitmq_delayed_message_exchange-3.8.0.ez解决问题,具体命令如下:

进入rabbit安装目录:cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.1/plugins
获取插件:wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.8.0/rabbitmq_delayed_message_exchange-3.8.0.ez

启动插件 rabbitmq-plugins enable rabbitmq_delayed_message_exchange
关闭插件 rabbitmq-plugins disable rabbitmq_delayed_message_exchange
参考地址:https://blog.csdn.net/skiof007/article/details/80914318

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值