消息中间件MQ与RabbitMQ⾯试题(2020最新版)
Java⾯试总结(2021优化版)已发布在个⼈【技术⼈成长之路】,优化版⾸先修正了读者反馈的部分答案存在的错误,同时根据最新⾯试总结,删除了低频问题,添加了⼀些常见⾯试题,对⽂章进⾏了精简优化,欢迎⼤家关注!
【技术⼈成长之路】,助⼒技术⼈成长!更多精彩⽂章第⼀时间在发布哦!
⽂章⽬录
Java⾯试总结汇总,整理了包括Java基础知识,集合容器,并发编程,JVM,常⽤开源框架Spring,MyBatis,数据库,中间件等,包含了作为⼀个Java⼯程师在⾯试中需要⽤到或者可能⽤到的绝⼤部分知识。欢迎⼤家阅读,本⼈见识有限,写的博客难免有错误或者疏忽的地⽅,还望各位⼤佬指点,在此表⽰感激不尽。⽂章持续更新中…
序号内容链接地址1Java基础知识⾯试题(2020最新版)
2Java集合容器⾯试题(2020最新版)
3Java异常⾯试题(2020最新版)
4并发编程⾯试题(2020最新版)
5JVM⾯试题(2020最新版)
6Spring⾯试题(2020最新版)
7Spring MVC⾯试题(2020最新版)
8Spring Boot⾯试题(2020最新版)
9Spring Cloud⾯试题(2020最新版)
10MyBatis⾯试题(2020最新版)
11Redis⾯试题(2020最新版)
12MySQL数据库⾯试题(2020最新版)
13消息中间件MQ与RabbitMQ⾯试题(2020最新版)
14Dubbo⾯试题(2020最新版)
15Linux⾯试题(2020最新版)
16Tomcat⾯试题(2020最新版)
17ZooKeeper⾯试题(2020最新版)
input在c语言怎么用招聘简历模板18Netty⾯试题(2020最新版)
19架构设计&分布式&数据结构与算法⾯试题(2020最新版)
mysql面试题初级为什么使⽤MQ?MQ的优点浮点型的两种表示方法
简答
异步处理 - 相⽐于传统的串⾏、并⾏⽅式,提⾼了系统吞吐量。
应⽤解耦 - 系统间通过消息通信,不⽤关⼼其他系统的处理。
流量削锋 - 可以通过消息队列长度控制请求量;可以缓解短时间内的⾼并发请求。
食通宝登录管理系统⽇志处理 - 解决⼤量⽇志传输。
消息通讯 - 消息队列⼀般都内置了⾼效的通信机制,因此也可以⽤在纯的消息通讯。⽐如实现点对点消息队列,或者聊天室等。
详答
主要是:解耦、异步、削峰。
解耦:A 系统发送数据到 BCD 三个系统,通过接⼝调⽤发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责⼈⼏乎崩溃…A 系统跟其它各种乱七⼋糟的系统严重耦合,A 系统产⽣⼀条⽐较关键的数据,很多系统都需要 A 系统将这个数据发送过来。如果使⽤ MQ,A 系统产⽣⼀条数据,发送到 MQ ⾥⾯去,哪个系统需要数据⾃⼰去 MQ ⾥⾯消费。如果新系统需要数据,直接从MQ ⾥消费即可;如果某个系统不需要这条数据了,就取消对 MQ 消息的消费即可。这样下来,A 系统压根⼉不需要去考虑要给谁发送数据,不需要维护这个代码,也不需要考虑⼈家是否调⽤成功、失败超时等情况。
就是⼀个系统或者⼀个模块,调⽤了多个系统或者模块,互相之间的调⽤很复杂,维护起来很⿇烦。但是其实这个调⽤是不需要直接同步调⽤接⼝的,如果⽤ MQ 给它异步化解耦。
异步:A 系统接收⼀个请求,需要在⾃⼰本地写库,还需要在 BCD 三个系统写库,⾃⼰本地写库要 3ms,BCD 三个系统分别写库要
300ms、450ms、200ms。最终请求总延时是 3 + 300 + 450 + 200 = 953ms,接近 1s,⽤户感觉搞个什么东西,慢死了慢死了。⽤户通过浏览器发起请求。如果使⽤ MQ,那么 A 系统连续发送 3 条消息到 MQ 队列中,假如耗时 5ms,A 系统从接受⼀个请求到返回响应给⽤户,总时长是 3 + 5 = 8ms。
slf4j配置文件削峰:减少⾼峰时期对服务器压⼒。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论