阿里云 MNS 切换为 自建 RabbitMQ
介于阿里云的MNS收费超过预算,因此决定切换为自行搭建的RabbitMQ队列,费用能大幅度降低。
由于之前的代码很整齐规范,消息的发送和读取,与业务处理完全分开,因此切换起来毫不费力。
新增了几个公共类,将代码引用改掉,删除阿里云MNS的相关代码,即可完成队列切换。
1、RabbitMQ jar的版本为3.6.6
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>3.6.6</version>
</dependency>
2、类解释
RabbitMqConnUtil.java RabbitMQ连接工具类,包含创建连接的封装,连接池的封装,以及queue、exchange的存在判断封装。
RabbitMqProducer.java 发消息的工具类,实现了实时消息、延迟消息的发送。
RabbitMqCustomer.java 接收实时消息的基类,业务消费者只需要继承该类,并实现相应的业务方法。
RabbitMqCustomerDelay.java 接收延迟消息的基类,业务消费者只需要继承该类,并实现相应的业务方法。
RabbitMqFactory.java 用于项目中,消费者在服务启动后,连接队列监听消息使用。
OrderCustomer.java 接收实时消息的消费者(业务演示代码)。
OrderCustomerDelay.java 接收延迟消息的消费者(业务演示代码)。
3、注意事项
实现延迟消息时,生产者与消费者,在队列的命名规则,遵守统一的约定,否则消费者无法正常接收到延迟消息。
4、参考
延迟消息实现原理 参考 https://blog.csdn.net/u013256816/article/details/55106401
连接池实现 参考 https://www.cnblogs.com/skyfeng/p/rabbitmq.html
VirtualHost 解读 参考 https://blog.csdn.net/h996666/article/details/83304626
其他常见问题参考 https://blog.csdn.net/a1063916463/article/details/90288013
5、完整代码,参考附件
https://download.csdn.net/download/u011453631/12171877
6、不足
仅仅只是简单的切换,实现了消息的发送、接收,以及延迟消息。
未实现事务性消息,也没有采用广播、主题等方式。
阿里云 MNS 切换为 自建 RabbitMQ相关推荐
- 阿里云RDS与ECS自建库搭建主从复制
前言 最近尝试在阿里云RDS与ECS自建库之间搭建主从复制,主要是想用于备份数据,所以对于同步一致性要求不是很高.模拟了几次,遇到的一些坑记录在这里,使用的是基于GTID的主从服务,关于GTID: M ...
- 初创企业选择阿里云服务器与传统自建服务器的对比与选择
与普通的IDC机房或服务器厂商相比,阿里云提供的云服务器ECS具有高可用性.安全性和弹性的优势. 高可用性 相较于普通的IDC机房以及服务器厂商,阿里云使用更严格的IDC标准.服务器准入标准以及运维标 ...
- 基于阿里云RDS创建ECS自建从库
使用阿里云ECS自建RDS MySQL从库 友情提示:安装MySQL软件步骤本文暂不介绍,安装完MySQL无需着急初始化数据库和启动服务.只需确保安装的MySQL版本不低于阿里云RDS MySQL版本 ...
- 阿里云数据库MYSQL和自建数据库的对比(附新手领取免费的一个月云服务器)
首先云数据库在服务的可用性和数据可靠性方面基本可以完全保证,但是自建服务器就不行了,如果使用阿里云数据库出现了问题可以得到赔偿,自建数据库的话一切都要自己承担.另外,企业版数据库服务器的成本很高,如果 ...
- 阿里云RDS数据库与自建数据库做主从同步
场景 购买了阿里云的RDS数据库,基础版,没有主备,有做本地备份,但是如果RDS宕机了没办法马上切到可用的数据库,为了系统的高可用和容灾,决定做一下RDS和自建数据库的主从同步(不购买RDS的高可用版 ...
- 阿里云自助建站+模板建站+功能定制建站如何选择,详细教程
使用阿里云建网站的三种方式购买云服务器手动建站.云速成美站模板建站或者选择阿里云定制建站三种方式,站长分享利用阿里云创建网站的三种方式及优势对比: 阿里云建站方式介绍 使用阿里云建站可以有三种方式, ...
- 阿里云MNS Queue Rest API操作示例
概述 阿里云消息服务(Message Service)是一种高效.可靠.安全.便捷.可弹性扩展的分布式消息服务.MNS能够帮助应用开发者在他们应用的分布式组件上自由的传递数据.通知消息,构建松耦合系统 ...
- 阿里云dataworks/maxcomputer和自建集群的对比
云平台近几年在飞速发展,有些公司也会把自己的在线业务和离线数据业务迁移到阿里云上,一方面节省研发成本,另一方面服务更加稳定,下面我以自己粗浅的认识对比下两者. 2021年7月又换了一家公司,又用回了原 ...
- 阿里云Linux系统新手快速建站视频教程
原文链接 [阿里云大学---云上建站快速入门:博客.论坛.CMS.电子商务网站统统搞定] 废话不多说,本教程将带领0基础新手朋友快速在阿里云ECS服务器上搭建常用的网站程序,如果有意见建议请在本帖或 ...
最新文章
- 小赋诗歌一首,以感学生时代结束
- Linux学习之033_2
- Action和Func的区别
- 浅析Mysql InnoDB存储引擎事务原理
- Java多线程初学者指南(12):使用Synchronized块同步变量
- 使用verilog实现基于FPGA的TDC设计
- oppo售后解锁恢复工具.zip_OPPO手机4个不为人知的小技巧,全知道的竟然不到1%,令人唏嘘...
- 郑州大学计算机学科导论,郑州大学计算机导论大一试题答案.doc
- Linux磁盘分区详解(parted)
- echarts如何获取后端的值_echarts图怎么用从后台获取的数据
- MATLAB经纬度转化
- 杰理之ANC降噪基本原理【篇】
- QQ聊天记录生成词云--WordCloud
- 男人不想打工一辈子,再忙也要读这10本书,提高情商智商
- 百利药业IPO过会:扣非后年亏1.5亿 奥博资本是股东
- 各种编码中使用到的工具类
- Esp8266学习搭建开发环境,开始一个“hellow world”串口打印。
- 内网端口映射详解(花生壳)
- Python:字符串中的方法--strip()
- Ubuntu18 安装SciDavis