架构师必读:Kafka消息队列深度历险

作者:禅与计算机程序设计艺术

1.简介

消息队列简介

“消息队列”是一个核心组件,在分布式系统中扮演着至关重要的角色。它可以帮助我们解决复杂的问题,例如异步调用、流量削峰、解耦等等。消息队列通常被用来缓冲数据并将其转移到另一个进程或服务。消息队列分为两种类型——点对点(PTP)型和发布/订阅(Pub/Sub)型。点对点类型的消息队列从接收者那里获取信息,而发布/订阅类型的消息队列允许多个消费者同时收到信息。消息队列最常用的场景就是用于削峰。假设某系统有上万请求每秒,但是处理每个请求需要花费几十毫秒甚至几百毫秒的时间,那么当瞬间访问过多时,就会造成系统负载激增,甚至导致崩溃。这种情况下,通过消息队列对请求进行排队,可以平滑系统压力。 消息队列的一些主要功能包括:

  1. 异步通信:消息队列在传递消息的时候不需要等待接受方回应,因此可以实现异步通信。

  2. 流量削峰:消息队列可以在一定程度上限制系统的流量,因此可以避免因处理大量请求而占用过多资源。

  3. 解耦合:消息队列可以解耦发送端和接收端之间的依赖关系,使得发送端不再依赖于接收端的响应速度。

  4. 最终一致性:由于分布式环境下各个节点的数据可能存在延迟,因此消息队列一般采用最终一致性模式。

  5. 可恢复性:消息队列一般会记录消息是否投递成功,如果失败了可以重新投递。

    Kafka简介

    Apache Kafka是一个开源分布式发布-订阅消息系统。Kafka使用Scala语言编写,由LinkedIn公司开发和维护。Kafka是一个分布式的,可扩展的,

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/132867755