www.365zg.com
作者:365bet指数 发布时间:2019-10-19 阅读:
(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后,直接返回成功。每个人都认为他们的请求成功了。但是,问题在于存在3个BCD系统,2个BD系统正常写入,而C系统无法写入该库。 数据不一致。 因此,消息队列实际上是一个非常复杂的体系结构。实现有很多优点,但是必须创建各种附加的技术解决方案和体系结构以避免这些缺点。妈妈,系统的复杂度是一个数量级,也许要复杂十倍。 但是,必须在非常重要的时刻使用它。 (3)kafka,activemq,rabbitmq,rocketmq的优缺点是什么? 通用MQ实际上是这种类型,并且还有许多其他MQ,但是由于它们不那么流行所以不再赘述。 作为代码农民,您至少需要了解MQ的一些优缺点。 ![]() |