首页 > 编程知识 正文

kafka中文官网,kafka中文社区

时间:2023-05-04 03:29:17 阅读:200788 作者:4024

项目中对kafka有所使用,但一直都是根据公司内部wiki提供的demo来写的,对kafka有一定了解,但是可能不够系统,全面;于是最近找时间浏览了一下官网对kafka的介绍,翻译如下:

一句话概括kafka

kafka是一个具备很强容错能力和实时处理能力的分布式流数据平台。

kafka的应用场景

kafka可在以下场景中应用:基于流数据的发布订阅消息系统、基于流数据的高效异步通信中间件、基于流数据的高可用分布式存储;可以替代传统的消息队列和企业级消息系统;

核心API

核心API有四类:

生产者API

一般生产者发布数据到topic(后面会介绍topic),

消费者API

消费(处理)发布到topic的数据

流API

(暂时没研究明白,这里先跳过,后面的文章继续写)

连接API

用于kafka和其他系统如mysql、mogodb、hbase等进行数据交互;

通信协议

客户端与服务器的通信使用的是基于TCP的简单,高效的并且与语言无关的TCP协议!

主题和日志

一个主题(topic)就是一类数据或者记录的名字;主题支持多个订阅者订阅,即一个主题可以被零个,一个或者多个消费者消费,处理;

一个主题会被分成好多个partition,每一个partition维护着一个log;主题中每一个partition的记录都有一个顺序的ID 记作:offset 偏移量;

kafka集群记录了所有发布的消息(记录),无论是否被消费(有一种配置保留时长的机制);实际上唯一的元数据保留在消费者那里,元数据仅仅记录了消费者在partition的便宜量,或者消费记录的ID;这样以来,消费就可以由消费者自己控制。消费者可以设置这个偏移量。

主题被分为patition的意义在于两方面:一个是数据横向扩展行,另一个是消费的并发性能的提升;

每一个partition的数据在kafka集群中都是有备份的。每一个partition都有一个server作为leader,其他的作为follower;leader负责读写请求,follower负责同步leader的数据; 每一个服务器都扮演一个或多个partition的leader角色,和一些个partition的follower角色,有利于负载均衡。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。