KAFKA工作原理

(此文章由离职同事所写,非原创,此处纪录只为自己以后复习使用)
Kafka是一种分布式流计算平台,主要用于以下场景:
  1. 发布订阅数据流,类似消息系统
  2. 数据流分布式存储,支持容灾
  3. 实时数据流计算

kafka通过主题(topic)区分数据使用场景,对外提供以下4种API:
  • Producer API 允许应用发布数据到不同主题下。
  • Consumer API 允许应用订阅不同主题下的数据流。
  • Streams API 允许应用作为数据处理过程,接收不同主题数据,处理后发布数据。
  • Connector API 允许构建可重用的生产者和消费者。例如链接数据库,感知表变化。


kafka与客户端通过TCP协议实现通信,与编程语言无关。因此除了官方提供的java版客户端外,各个编程语言都有可靠实现。

数据存储模型


kafka通过不同主题(topic)对数据生产与消费方,提供发布与订阅服务。对于一个主题, kafka维护了一组分区日志(partition)用于保存数据,形式如下:


每个分区(partition)记录了一组有序的数据,分区内,数据只能追加,不可变更。
kafka可设置保留周期,周期内数据不会丢弃。
每条记录带有序列号offset,标记分区内的数据位置。每条数据包括key,value,timestamp三个部分。这样的存储结构有两个优点,首先,日志分区存储更容易支持集群扩容,有利于存储海量数据。其次,多个分区可以支持更高的并发访问。
分布式环境下,每个分区存在一个或多个备份,用于容错。其中,一个被选定为主分区,用于全部读写操作,其余从分区复制主分区行为。一旦主分区发生故障,从分区会重新选主,用于读写行为。各个服务器中,不同日志的主分区平均分布,已达到负载均衡。

数据消费者

每个kafka消费者(consumer)通常各自维护消费数据的序列号(offset),用于顺序消费。但是由于offset只由各个消费者控制,实际上,对于某个消费者,数据读取可以以任意顺序执行。例如:消费者可以倒回offset用于回溯数据,也可以直接从最新的offset进行消费,跳过过时数据。这种特性使得消费者的行为十分灵活,同时对服务集群以及其他消费者影响甚微。

消费者可以存在于独立的进程或服务器中,每个消费者带有分组信息(group),某个主题的一条发布数据只会被同一个分组中的一个消费者获取。如果每个消费者分组各不相同,一个发布数据可以被全部消费者获取。


通常情况下,消费者组(group)会作为一个逻辑订阅者,处理某个主题下的发布数据。而订阅者的每个服务实例会作为这个分组下的消费者,这样做有利于容错与扩展。
下图为一个kafka集群(2台server),内部存储4个分区(P0-P3),消费分组A包含两个消费者,消费分组B包含四个消费者。
在Kafka中实现消费原理是将日志中的分区分配给消费者实例,使得每个实例在任何时间点都是“公平分享”分区的唯一消费者。这种分组协议由kafka动态平衡,新的实例加入集群会接管部分现有分区,实例离开集群,会将之前负责的分区转交给集群内其他实例。
Kafka只维护分区内的数据有序,通常这已经满足了大部分应用场景。如果需要全局有序,需要指定主题下只能存在一个分区。在这种场景下,每个消费者分组内也只能存在一个消费者。

数据生产者

生产者负责发布数据到特定主题。同一主题下,由生产者决定数据被分配到哪个分区,常规做法可以简单轮询分区发布数据,特殊场景下,也可以通过指定分配算法,改变分区选择逻辑。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值