logo

bet36体育投

MQ主流比较

发布者:admin 发布时间:2019-10-05 阅读:

(1)使用消息队列的原因
实际上,对于使用消息队列和项目中特定场景的场景,我想问一下有关该场景中使用什么消息队列的情况。
面试官问这个问题。一个可能的答案是贵公司有什么商业场景?在这种商业场景中,哪些技术挑战?如果您不使用MQ,这可能会很成问题,但是使用MQ获得了很多好处。
描述消息队列的典型使用方案。实际上,场景很多,但是有三个核心:去耦,异步和微调尖峰。
解耦:一个绘制图像进行说明的站点,系统A将数据发送到三个BCD系统。您发送的接口呼叫在系统E中是否有此数据?
如果现在不需要系统C怎么办?
系统A是否需要再次发送第二个数据?
系统A的负责人正处于崩溃的边缘。
如果其他问题崩溃了,如果系统A挂起了,我们是否应该始终考虑使用四个BCDE系统?
是否应该重新发行?
您要保存新闻吗?
头发是白色的。
面试技巧:您应考虑系统中是否存在类似情况。调用多个系统或模块的系统或模块。相互调用很复杂且难以维护。
但是,实际上,此调用不需要直接同步调用接口。如果使用MQ异步分离,那很好。您应该考虑是否可以使用此MQ来隔离项目中的系统。
这在使用MQ作为解耦的简历中得到了反映。
异步:将图像绘制到场景中进行说明,系统必须接收请求并在自己的前提下编写库,必须将库写入3个BCD系统,3毫秒本地写入库,需要3个BCD系统编写300 ms,450 ms,200 ms库。
最终请求的总延迟为3 + 300 + 450 + 200 = 953毫秒,接近1。用户觉得他们需要做一些事情并花时间去死。
峰值削减:从每天的0:00到11:00,系统A处于平静状态,每秒100个同时请求。
结果,每秒的同时请求数在1到11:00之间跃升到10,000。
但是,系统的最大处理能力每秒只能处理1000个请求。
哦,系统会死的。
(2)消息队列的优缺点是什么?
好处如上所述,对于特殊方案,去耦,异步和削峰有好处。
缺点是什么?
明显的
系统可用性降低。系统输入外部依赖关系的次数越多,挂起就越容易。最初,您是一个System A接口,它调用三个BCD系统。四个ABCD系统都可以,但是要加上MQ。
MQ挂起,整个系统崩溃,但尚未完成。
系统复杂性得到了改善。很难将MQ添加到输入中。如何防止重复使用邮件?
如何处理信息丢失
如何查看邮件的发送顺序?
大头,大问题,痛苦。
一致性问题:处理系统A后,直接返回成功。每个人都认为他们的请求成功了。但是问题是,如果那里有三个BCD系统,则两个BD系统将正常写入,而C系统将无法写入该库。
数据不一致。
因此,消息队列实际上是一个非常复杂的体系结构。实施它有很多优点,但是您需要创建各种其他技术解决方案和体系结构来避免这些缺点。妈妈,系统的复杂度是一个数量级,也许要复杂十倍。
但是在关键时刻要使用,您仍然需要使用它。
(3)kafka,activemq,rabbitmq,rocketmq的优缺点是什么?
通用MQ实际上是这种类型,并且还有许多其他MQ,但是由于它们不那么流行所以不再赘述。
作为代码农民,您至少需要了解多个mq的优缺点。