消息队列 MQ中间件
有些面试官会问到MQ的一些问题,下面自己试着整理一下。
看到一个技术,我们都是从终点出发,然后看优缺点。
优点:
- 解耦
- 异步
- 削峰平谷
其实上面这些,我们很好理解,图示表示
解耦:
- 老师要把成绩发给每个学生,在学生收到后,老师在学生的成绩后面标注,已通知,这样老师太累了,学生也等的急。
- 我们搞了个成绩单(消息中间件),当然学生可以用账号密码的方式获取自己的成绩,其他的不可见,然后呢签收就可以了,这样老师学生都解脱出来。
异步:
削峰平谷:
每个事物都有两面性,MQ也不例外,扬长避短,发挥其优势。
缺点: - 系统可用性降低:不可靠因素增多
- 系统复杂度增大:中间件MQ可能出现不可预期的问题,消息重复发送或者接收不到。
- 一致性:原来是一个事务,要么全成功,要么全失败,最后通知其他人,现在是一个重要事务成功,就对别人说成功了,但是他最后失败了,怎么办。