Apache Kafka —一个不同的消息系统
Apache已经发布了Kafka 0.8,也是自从成为Apache软件基金会的顶级项目后Kafka的 第一个主版本。 Apache Kafka是发布—订阅消息传递,实现了分布式提交日志,适用于离线和在线消息消费。它最初由LinkedIn开发的消息系统,用于低延迟的收集和发送大 量的事件和日志数据。最新版本包括群集内复制和多数据目录支持。目前请求处理也是异步的,使用请求处理线程的附属线程池来实现。日志文件可以按年龄进行覆 盖,并且日志级别可通过JMX进行动态设置。性能测试工具已提供,帮助解决存在的性能问题,并寻找潜在的性能优化点。
Kafka是一个分布式,分区化,可复制的提交日志服务。生产者将消息发布到Kafka主题,消费者订阅这些主题并消费这些消息。在Kafka集群 上一个服务器称为一个Broker。对于每一个主题,Kafka群集保留一个用于缩放,并行化和容错性的分区。每个分区是一个有序,不可变的消息序列,并 不断追加到提交日志文件。分区的消息每个也被赋值一个称为偏移顺序的序列化编号。
偏移是由消费者来控制。典型的消费者将处理列表中的下一条消息,它可以以任何顺序接收消息,因为Kafka集群为所有发布的消息保留一段可配置的时 间。这让消费者很灵活,他们可以来去自由而不影响群集,并适合像Hadoop集群这样的脱机消费者。生产者能够选择那一个主题,主题的那一个分区,来发布 该消息。消费者自己也可以分配一个消费者组名,每个消息将发送给每个订阅消费者组的消费者。如果所有的消费者有不同的消费组,那么消息将被广播到每一个消 费者。
Kafka可以像一个传统的消息Broker使用。它具有高吞吐量,内置分区,可复制和容错等特性,这使得它成为大型消息处理应用的理想解决方案。 Kafka也可以用于高访问量的网站活动的跟踪机制。网站活动可以被发布,并且可以被实时处理,或加载到Hadoop或离线的数据仓库系统。Kafka也 可以用来作为一种日志整合方案。代替工作于日志文件,日志可以作为消息流处理。
Kafka目前用于LinkedIn,它每天处理超过100亿消息,持续负载平均每秒172,000消息。目前,无论从内部和外部的使用数据的应用 程序大量使用多订阅者支持。每个消息发布出来后,基本上会有5.5个消息消费者使用,这导致的结果是每一天将有550亿的消息发送给实时消费者。367个 主题涵盖用户活动的主题和运营数据,其中最大将每天增加的平均92GB批量压缩消息。信息保存时间为7天,这些平均约9.5 TB压缩消息跨越主题。除了在线消费者,还有众多的大型Hadoop集群,它们消费频繁,高吞吐量,并行矩阵,作为离线数据负载的一部分。
作为入门,访问官方的Apache Kafka文档页,你可以学习更多和下载Kafka。也有一篇来自LinkedIn的论文,标题为《构建LinkedIn的实时活动数据管道》 ,该论文讨论Kafka 建立原因和Kafka设计上的特性。
相关文章
- Apache Solr查询语法
- 使用JMeter进行Apache Kafka负载测试
- Apache ZooKeeper在Kafka中的角色 - 监控和配置
- Apache Kafka主题 - 架构和分区
- Kafka-Docker:使用Docker运行Apache Kafka的步骤
- Apache Kafka Producer For Beginners
- 为什么Apache Kafka如此受欢迎
- Apache中关于页面缓存的设置
- 架构师成长系列 | 从 2019 到 2020,Apache Dubbo 年度回顾与总结
- 针对Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1的解决方案
- 主机无法访问虚拟机的apache解决办法
- Linux Apache服务详解——Apache服务基础知识
- [Apache] 网站页面静态化与Apache调优(图)
- kafka详解一、Kafka简介
- kafka详解三:开发Kafka应用
- apache下配置认证用户
- Flink 极简教程: 架构及原理 Apache Flink® — Stateful Computations over Data Streams
- 全网最详细地理解Kafka中的Topic和Partition以及关于kafka的消息分发、服务端如何消费指定分区、kafka的分区分配策略(range策略和RoundRobin策略)
- Java使用apache的开源数据处理框架commons-dbutils完成查询结果集的各种处理输出(8种方式)
- 安装apache ActiveMQ
- Apache Samza流处理框架介绍——kafka+LevelDB的Key/Value数据库来存储历史消息+?
- apache重写规则 rewrite
- 解开Kafka神秘的面纱(五):kafka优雅应用
- RHEL7安装配置Apache
- Apache Kafka 简单生产者消费者示例
- Apache Kafka 概述