kafka的介绍,照搬官网,自己在翻译一下…… 是时候展现我英语水平技术的时候了……
特征
作为一个流处理平台,其三个关键能力:
- 流记录的发布和订阅,与MQ、企业消息系统相似
- 流记录的容错存储方式
- 动态处理流记录
运用场景
kafka的常见运用场景:一是实时将批量(管道)数据可靠地从系统和应用之间获取;二是实时地在应用上转换、响应流数据。
底层实现思路
为了理解上述的情况,从底层上解释了kafka的实现思路:
- kafka作为一个簇运行,其底下可能有若干个(至少一个)服务;使其能横盖多个数据中心(有点像区块链去中心化……)
- kafka的簇存储的流记录,按类型区分后,就是一个topic(类似于MQ中的topic)
- 每一条记录,是一个entry结构,有个key有个value一一对应,并且会有一个时间戳。
核心API
- Producer API ,顾名思义,生产者的Api,可以发布一系列的主题
- Consumer API ,消费者Api,收到Producer发布的topic以后,可以对其进行处理
- Streams API ,可以将应用作为一个消息处理者,消费接受到的若干主题,并将处理完的结果作为主题输出,高效的转换接收和输出流信息。
- Connector API,已经存在的应用,其topic可以被消费者和生产者重用;就像是关系型数据库可以捕捉到每个表的变化。