关于大数据:Kafka之为什么需要消息队列

14次阅读

共计 780 个字符,预计需要花费 2 分钟才能阅读完成。

大数据课程中在解说音讯队列的时候也说过为啥须要音讯队列,“音讯队列”是在音讯的传输过程中保留音讯的容器,当零碎中呈现“生产“和“生产“的速度或稳定性等因素不统一的时候,就须要音讯队列,作为形象层,弥合单方的差别。
1)解耦:
容许你独立的扩大或批改两边的处理过程,只有确保它们恪守同样的接口束缚。
2)冗余:
音讯队列把数据进行长久化直到它们曾经被齐全解决,通过这一形式躲避了数据失落危险。许多音讯队列所采纳的”插入 - 获取 - 删除”范式中,在把一个音讯从队列中删除之前,须要你的解决零碎明确的指出该音讯曾经被处理完毕,从而确保你的数据被平安的保留直到你应用结束。
3)扩展性:
因为音讯队列解耦了你的处理过程,大数据培训所以增大音讯入队和解决的频率是很容易的,只有另外减少处理过程即可。
4)灵活性 & 峰值解决能力:
在访问量剧增的状况下,利用依然须要持续发挥作用,然而这样的突发流量并不常见。如果为以能解决这类峰值拜访为规范来投入资源随时待命无疑是微小的节约。应用音讯队列可能使要害组件顶住突发的拜访压力,而不会因为突发的超负荷的申请而齐全解体。
5)可恢复性:
零碎的一部分组件生效时,不会影响到整个零碎。音讯队列升高了过程间的耦合度,所以即便一个解决音讯的过程挂掉,退出队列中的音讯依然能够在零碎复原后被解决。
6)程序保障:
在大多应用场景下,数据处理的程序都很重要。大部分音讯队列原本就是排序的,并且能保证数据会依照特定的程序来解决。(Kafka 保障一个 Partition 内的音讯的有序性)
7)缓冲:
有助于管制和优化数据流通过零碎的速度,解决生产音讯和生产音讯的处理速度不统一的状况。
8)异步通信:
很多时候,用户不想也不须要立刻解决音讯。音讯队列提供了异步解决机制,容许用户把一个音讯放入队列,但并不立刻解决它。想向队列中放入多少音讯就放多少,而后在须要的时候再去解决它们。

正文完
 0