
第 1 章
初识
Kafka
数据为企业的发展提供动力。我们从数据中获取信息,对它们进行分析处理,然后生成更
多的数据。每个应用程序都会产生数据,包括日志消息、度量指标、用户活动记录、响应
消息等。数据的点点滴滴都在暗示一些重要的事情,比如下一步行动的方向。我们把数据
从源头移动到可以对它们进行分析处理的地方,然后把得到的结果应用到实际场景中,这
样才能够确切地知道这些数据要告诉我们什么。例如,我们每天在
Amazon
网站上浏览感
兴趣的商品,浏览信息被转化成商品推荐,并在稍后展示给我们。
这个过程完成得越快,组织的反应就越敏捷。花费越少的精力在数据移动上,就越能专注
于核心业务。这就是为什么在一个以数据为驱动的企业里,数据管道会成为关键性组件。
如何移动数据,几乎变得与数据本身一样重要。
每一次科学家们发生分歧,都是因为掌握的数据不够充分。所以我们可以先就获
取哪一类数据达成一致。只要获取了数据,问题也就迎刃而解了。要么我是对
的,要么你是对的,要么我们都是错的。然后我们继续研究。
——
Neil deGrasse Tyson
1.1
发布与订阅消息系统
在正式讨论
Apache Kafka
(以下简称
Kafka
)之前,先来了解发布与订阅消息系统的概念,
并认识这个系统的重要性。数据(消息)的发送者(发布者)不会直接把消息发送给接收
者,这是发布与订阅消息系统的一个特点。发布者以某种方式对消息进行分类,接收者
(订阅者)订阅它们,以便接收特定类型的消息。发布与订阅系统一般会有一个
broker
,也
就是发布消息的中心点。
1