kafka
分布式消息系统 作为多种类型的数据管道和消息系统使用。 Kafka原本开发自LinkedIn,用作LinkedIn的活动流和运营数据处理管道(Pipeline)的基础。 活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。 活动数据 包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。 这种数据通常的 处理方式 是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。 运营数据 指的是服务器的性能数据(CPU、IO使用率、请求时间、服务日志等等数据)。运营数据的统计方法种类繁多。 近年来,活动和运营数据处理已经成为了网站软件产品特性中一个至关重要的组成部分,这就需要一套稍微更加复杂的基础设施对其提供支持。 2.3 为何使用消息系统 解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 冗余 有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造成丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的”插入-获取-删除”范式中,在把一个消息从队列中删除之前