kafka简介

    xiaoxiao2021-03-25  101

    kafka简介

    本文翻译参考原文为:http://kafka.apache.org/intro 简介 kafka 是一个分布式流平台。那到底意味着什么? 流平台有三个主要能力: 1、它能让你订阅和发布数据流,在这个方面上看它与消息队列和企业消息系统有相似之处。 2、它能以容错的方式存储数据流。 3、它能及时的处理数据流。 kafka 擅长什么? 它有两种广泛的应用: 1、在系统和应用程序间构建可靠的、实时的流数据管道。 2、构建实时的流应用程序传递数据流或者对数据流做出反应。 为了深入的理解kafka如何做到这些事情,让我们继续向下看。 首先是一些概念: kafka以集群的方式运行在多台服务器上。 kafka集群存储到仓库中的流记录叫做topic。 每条记录由key,value和timestamp组成。 kafka有四个核心api 生产者api:它让应用程序发布流记录到一个或者多个kafka topic。 消费者api:它让应用程序订阅一个或者多个kafka topic 并且处理由生产者发布给他们的流记录。 流api:它能让应用程序扮演一个流处理者,消费一个来自一个或者多个topic的流,并且产生一个流到一个或者多个topic。高效的把输入流传输到输出流。 连接api:它能够创建和运行可重用的生产者和消费者,这些生产者和消费者能够把kafka的topic连接到已经存在的应用程序或者数据系统中。例如,一个关系数据库的kafka连接能够捕获一张表的每次变化。 在kafka中,客户端和服务端的连接是简单、高效、语言无关的TCP协议。这个协议是版本化的,并且是向后兼容的。我们提供了一个kafka的java客户端,但是客户端也可以是各种语言的。 Topic和log 让我们首先看一下kafka的核心数据提供者——topic topic是一个类别或者供料部门,能够对外发布信息。kafka中的topic经常是多个订阅者的,也就是说,一个topic能够有0、1、2或者更多的消费者。这些消费者订阅数据并且向数据中继续写入。 对于每一个topic,kafka集群会保存一个分区日志,如下图。 每一个分区都是有序的不可改变的记录序列,这个序列会被持续的追加到日志中。在分区中的记录会被分配一个序列id号,这个序列号也叫做偏移量,能够唯一的定义分区中每条记录的位置。 kafka集群会通过一个可以配置的保留时间,保留所有发布的记录,无论这些记录是否被消费。例如,如果保留策略设置成两天,那么在记录发布的两天内,这条记录能够被消费,但是,两天后,就会为了释放空间被删除。 kafka的对于关心的数据的性能是常数级的,所以很长时间的排序也不是什么问题。
    转载请注明原文地址: https://ju.6miu.com/read-18240.html

    最新回复(0)