Kafka3.0文档 - 1.0 Apache Kafka介绍


在10分钟内了解kafka的一些.

什么是事件流

事件流是数字的等同于人类体内神精系统. 对于始终在线的世界kafka是技术的基基础,业务越来越多的定义软件和自动化,用软件用户也导致有更多的软件.
严格来讲,事件流是实时捕获数据的一个实践,从事件源像 数据库,传感器,手机,云服务和流事件的软件应用.存储事情流为了过后检索.操作,处理,和对事件流的反应等同于回顾,在技术需要时路由实时事件流到不同的目的地.每个事件流确保不断流动和解析数据,导致合适的信息在合适的位置,在合适的时间.

我可以用事件流做什么

事件流被应用在更广泛的例子从大量企业到组织.非常多的例子包括:

  • 实时处理支付和财务交易,库存交易,银行,或保险.
  • 实时跟踪和监控汽车,卡车,舰队,和运载货物,像后勤和自动化工厂.
  • 从IoT装置或其它设备持续捕获或分区传感器数据,像工厂或风力发电场.
  • 收集或立刻反应顾客操作或订单,像零食,旅店和旅游产业和手机应用.
  • 监控医院护理病人和预测在条件下的改变来及时做紧及治疗.
  • 用来连接,存储,并且确保数据被公司不同区域产生.
  • 为了一个服务,数据平台基础,事件驱动架构,和微服务.

Kafka是一个事件实时平台,这是什么意思

kafka结合两个关键功能,这可以实现你使用的例子,为事件实时流,端到端用一个单独经过战斗考研的解决方案:

  1. 发布(写)和订阅(读)事件流,包括连接不断的从其它系统导入/导出你的数据.
  2. 存储事件流长久的有保障的只要你想要
  3. 处理事件流,当他们存在或回顾

所有这些数据被提供在分布的,高扩展,有强性,容错和安全方式.kafka可以部署到 bare-metal硬件,虚拟机,和容器,并且在云中提前定制.你可以选择在kafka自管理环境或使用全管理服务通过不同的供应商.

用简短方式解释Kafka是怎样工作的

kafka是一个分布系统,包含服务端和客户端,通信通过高性能TCP网络协议.可以部署到 bare-metal 硬件,虚拟机,和云环境中的容器中.

服务器端:kafka作为群集中一个或多个服务,可以跨越多个数据中心或云区域.一些来到存储层的服务器,被称为brokers. 其它服务器运行Kafka Connect来不断导入导出数据作为事件流来集成kafka和你已存在的系统,像关系型数据库和kafka集群. 为了让你实现核心任务使用例子,kafka集群是一个高扩展和容错性:如果任何服务器失败,其它服务器会接管他们的工作确保持续任务没有任何数据丢失.

客户端: 允许你写分布式应用程序和微服务来读,写,和并行处理事件流,在可扩容和容错性的方式,甚至在网络有问题或机器出错.kafka包含一些客户端,被扩容通过大量客户端(kafka社区提供).客户端对java,scala可用 包含更高级别的kafka streams库,对go,python,c/c++和其它语言也可以用rest api;

主要概念和术语

一条事件记录发生在实事世界或你的业务中. 在文档中它也叫记录或是消息.当你读或写数据到kafka时,你可以用事件方式来这样做.概念上来说,事件有key,值,和时间戳,和可选的头元数据.下边是事件例子:

  • 事件key:“Alice”
  • 事件值:Made a payment of $200 to Bob"
  • 事件时间戳: “Jun. 25, 2020 at 2:06 p.m.”

生产者是那些客户端发布(写)事件到kafka,并且消费者是那些订阅(读和处理)那些事件.在kafka里,生产者和消费者是解藕的,他们彼此不知道,key设计元素到获得高性能kafka知道.例如,生产者从不需要等待消费者.kafka提供多种保证像事件处理只有一次的能力.

事件是被组织起来并保存在topics.非常简化的说,一个topic非常类似在系统中的一个文件夹,事件像文件夹中文件.一个名为 "payments"的topic.在kafka中的topic总是多个生产者和多个订阅者:一个topic可以有0个,1个或多个生成者来写事件到topic中,同时也有0个,1个或多个消费都来订阅这些事件.topic中的事件,可以被读在需要时.相反你可以定义kafka应在保存你的事件的时间,通过每个topic的配置选项,之后每个过期的事件会被丢弃.Kafka的高效性能对数据大小是恒定的,所以存储长时间的数据是完美的.

Topics是可以被分区的,意味着topic遍布于不同kafka broker上的一些“buckets”. 分布式部署你的数据是对于可扩展来说非常重要,因为允许客户端应用又读又写数据从/到不同的brokers在相同时间.当一个新事件被发布以一个topic,它实际添加一个topic分区.事件带眷相同的key(如,一个客户或车辆ID)被写到相同的分区,并且kafka保护给任何定客户总是读分区事件在精准订单是他们写的.
..
这个例子的topic有p1 - p4分区.两个生产都客户端在生产数据,他们两个相互独立,新的事件通过网络写入到分区.相同key(在图中他们颜色相同)的事件写入到相同分区.注意两个生产者能写数据到相同分区,如果他们的数据合适.

使你的数据具有容错并且高可用,每个topic有副本,甚至跨地区或数据中心,以至于总是有多个brokers有一个副本数据,以防出现什么坏事,你想要做维护在brokers等等.正常生产设置为3个副本,例如,你的数据总是3个副本数据.这些副本执行是在topic分区级别的.

作为初学读物这样介绍足够了.如果你感兴趣,文档中设计部分解释了Kafka各种概念的所有细节.

Kafka API

除了为管理和监控任务的命令行工具外,Kafka有5个为Java和Scala的核心API:

  • Admin API用来管理和检查topics,brokers和其它Kafka对象.
  • Producer API用来发布(写)事件流到一个或更多Kafka topics
  • Consumer API用来订阅(读)一个或多个topics并且处理处理事件流再生成他们.
  • Kafka Streams API 实现流处理应用和微服务.它提供更调味级别功能来处理事件流,包含转换,状态操作像aggregations和joins,windowing,基于事件时间的processing,等等.输入读从一个或更多topics为了生成输出一个或多个topics,高效转换输入流到输出流.
  • Kafka Connect API来构建并运行复用数据导入/导出联接器,消费(读)或生产(写)事件流,并且写到扩展系统和应用,这样他们能集成kafka.例如,连接器到关系性数据库,像PostgreSQL可能获得一组表的每次改变.虽然这样,在实践中,你一般不需要实现你自己的连接器,因为kafka社区已经提供了数百个可用的连接器.

从这里还能去哪

  • 获得kafka实践经验,可以快速开始
  • 为明白kafka更多细节,读文档.你也有你的选择kafka书籍或学术论文.
  • 浏览用户案例来学习在社会里其它用户是怎样从kafka身上获得价值的.
  • 加入本地kafka会议组并且在Kafka峰会讨论,Kafka社会的主要的研讨会.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值