1.你认为一款优秀的消息队列应该具备什么特质?
消息堆积有处理策略:当生产消息的速度大于消费者消费速度时,会发生消息的堆积,所以消息队列必须能够处理这种情况,防止消息中心无限堆积。一般都是设置阈值,超过阈值消息将不进入消息中心,防止消息中心挂掉。
消息应该持久化:异步消息的存储,绝对不是简单的内存存储,否则一旦断电或重启,消息就没有了,所以消息队列一定要做持久化操作,比如存储在文件中。
消息是可靠的:生产者生产的消息,应该是可靠的被持久化保存,并被消费者消费掉。
消息不能重复:虽然很多接口都做了消息的幂等操作,即保证即使重复的消息也不会影响消息的结果。但是作为消息队列来说,应该是不能出现消息重复的。
消息的有序性、消息队列支持集群等等。
2.你使用过云消息队列RocketMQ吗?它让你印象最深刻的点是什么?
第一、没有使用过云消息队列RocketMQ,使用过RocketMQ,但是是以前下载的开源组件在本地部署的,不是云消息队列RocketMQ.
印象深刻的是,目前阿里云的RocketMQ是Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式消息、事件、流统一处理平台,面向互联网分布式应用场景提供微服务异步解耦、流式数据处理、事件驱动处理等核心能力。
第二、印象深刻的功能是 运维门槛更低 这个优势,因为在运维的同事技术要求不是很高,使用云消息队列的时候,可以直接根据可视化的操作,进行业务峰谷弹性、日常灰度环境等等,自适应弹性等解决方案,运维门槛和风险更低。
最后:
目前一般公司都是使用的微服务的架构项目,消息队列的使用必不可少,流程的解耦、异步操作、延迟处理、并发操作等等都要使用到消息队列的方式进行,所以一款比较好用的消息队列非常重要。目前一些企业还在使用开源组件进行消息队列的处理,然后部署到公司内部的服务器上面,但是云消息队列的原理也是类似的,只不过功能更加强大,界面更加的友好,在服务器费用上更加省一些、在操作运维上更加的方便,这是个趋势,后面一些企业都会慢慢迁移到云服务器上进行处理,由于是一些中小企业来说,没有必要自己购买服务器部署。