【原】kafka简介

1.背景

起源于Linkedin,在apache开源,基于发布订阅的分布式消息系统。

2.特点

高吞吐量:单机每秒几百MB的读写 
消息持久化 
高扩展性 
高可靠性 
支持多消费者(这个是比较重要的特点)

3.拓扑结构

Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker 
Producer: 负责发布消息到Kafka broker 
Consumer: 消息消费者,向Kafka broker读取消息的客户端

Consumer Group: 每个Consumer属于一个特定的Consumer Group

1. broker、producer、consumer这三个在所有消息队列中都有。这里注意一下consumer group的概念,如图所示,hadoop clusterreal-time monitoringotherservicedatawarehouse分别是四个不同的集群,每一个集群中有成百上千个消费者,但是这时候如果发送了一条helloworld的消息,这四个集群中只有四个consumer客户端可以接收到这条消息,每个集群中只有一个consumer客户端可以消费到消息。这就是kafka 支持多消费者

2. kafka用zookeeper来做配置中心,用于协调各节点、consumer 之间的关系。但是图中的线可以看到kafka中producer并不和 zookeeper保持相连。

4.基本概念

有三个比较基础的概念。

Topic

逻辑上的队列;

Patition

物理上把Topic分成多个Partition
一个topic分布在多个broker上(为了负载均衡和备份,很多分布式组件都有这种设计,如mongodbsharding)。

1.如上图,假设我们的kafka集群有3个broker,创建了1个topic,这个topic我们创建的时候指定它的partition为3,这时候partition就会平均分布到每个broker上,1个broker上面有一个partition(物理上分开),但是这三个partition仍然属于同一个topic(逻辑上还是一个队列)。

2.如图所示,kafka只保证partition级别的有序

5.适用场景

kafka在业界的使用主要还是用来处理日志,因为像flink、storm、spark这些大数据中间件和kafka对接得很好,也可以用来做业务逻辑处理,主要是多消费者的情况,同学们可以结合自己的情况做方案设计。 
前段时间《架构师》上面推送了《有赞日志统一平台初探》,这是有赞团队的日志处理系统,其他的日志处理系统也大同小异。包括日志接入、日志传输、日志处理、日志存储。在日志处理的时候由于支持多消费者,可以在这里用spark做实时数据分析,也可以直接在这里做简单的处理做重要日志备份、也可以根据业务需要做离线的日志分析。

参考

  1. kafka官方文档
  2. 有赞日志统一平台
时间: 2024-10-03 22:40:07

【原】kafka简介的相关文章

Kafka简介

Kafka简介 在当前的大数据时代,第一个挑战是海量数据的收集,另一个就是这些数据的分析.数据分析的类型通常有用户行为数据.应用性能跟踪数据.活动数据日志.事件消息等.消息发布机制用于连接各种应用并在它们之间路由消息,例如通过message broker.Kafka是快速地将海量信息实时路由到消费者的解决方案,实现信息的生产者和消费者的无缝集成.它不会阻塞信息的生产者,同时信息生产者不会知道信息消费者. Apache Kafka是个开源的分布式消息发布订阅系统,具有以下特征: 消息持久化(per

分布式消息系统 Kafka 简介

Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务.它主要用于处理活跃的流式数据. 在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转.传统的企业消息系统并不是非常适合大规模的数据处理.为了已在同时搞定在线应用(消息)和离线应用(数据文件,日志)Kafka就出现了.Kafka可以起到两个作用: 降低系统组网复杂度. 降

kafka详解一、Kafka简介

背景: 当今社会各种应用系统诸如商业.社交.搜索.浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何及时做到如上两点 以上几个挑战形成了一个业务需求模型,即生产者生产(produce)各种信息,消费者消费(consume)(处理分析)这些信息,而在生产者与消费者之间,需要一个沟通两者的桥梁-消息系统. 从一个微观层面来说,这种需求也可理解为不同的系统之间如何传递消息. Kafka诞生:由 linked-in 开源 kafka-

【Apache Kafka】 Kafka简介及其基本原理

??对于大数据,我们要考虑的问题有很多,首先海量数据如何收集(如Flume),然后对于收集到的数据如何存储(典型的分布式文件系统HDFS.分布式数据库HBase.NoSQL数据库Redis),其次存储的数据不是存起来就没事了,要通过计算从中获取有用的信息,这就涉及到计算模型(典型的离线计算MapReduce.流式实时计算Storm.Spark),或者要从数据中挖掘信息,还需要相应的机器学习算法.在这些之上,还有一些各种各样的查询分析数据的工具(如Hive.Pig等).除此之外,要构建分布式应用还

kafka深入研究之路(2) kafka简介与专业术语解释说明

目录:1.kafka简介 什么是kafka? 设计目标是什么?2.kafka的优缺点3.kafka中专业术语解释说明 官方网站: http://kafka.apache.org/introkafka中文教程 http://orchome.com/kafka/index 1/ kafka 简介Kafka是最初由Linkedin公司开发,是一个分布式.分区的.多副本的.多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志.访问日志,消息服务等

ZOOKEEPER和KAFKA简介

目录 KAFKA 1.    kafka的特性 2.    Kafka的架构组件简介 3.    重要组件或概念详解 Topic.Partition.Offset Producers Consumers 4.    Kafka的一些设计思想和基本概念 5.    Kafka核心特性 压缩 消息可靠性 备份机制 6.    Kafka的应用场景 zookeeper 1     zookeeper简介 2     zookeeper特性 3     Zookeeper的架构及原理 3.1      

Kafka简介、基本原理、执行流程与使用场景

一.简介 Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交日志服务. 几种分布式系统消息系统的对比: ##二.Kafka基本架构它的架构包括以下组件: 话题(Topic):是特定类型的消息流.消息是字节的有效负载(Payload),话

Kafka 系列(一)—— Kafka 简介

一.简介 ApacheKafka 是一个分布式的流处理平台.它具有以下特点: 支持消息的发布和订阅,类似于 RabbtMQ.ActiveMQ 等消息队列: 支持数据实时处理: 能保证消息的可靠性投递: 支持消息的持久化存储,并通过多副本分布式的存储方案来保证消息的容错: 高吞吐率,单 Broker 可以轻松处理数千个分区以及每秒百万级的消息量. 二.基本概念 2.1 Messages And Batches Kafka 的基本数据单元被称为 message(消息),为减少网络开销,提高效率,多个

中间件 | kafka简介、使用场景、设计原理、主要配置及集群搭建

开源Java学习 公众号 一.入门 1.简介 Kafka is a distributed,partitioned,replicated commit logservice.它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现.kafka对消息保存时根据Topic进行归类,发送消息者成为Producer,消息接受者成为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker.无论是kafka集群,还是producer和c