Kafka事务流由基础到实践
记录对应于变乱、动静、呼吁或任何其他可流式传输的内容。记录的准确分别方法由出产者抉择。出产者可以在宣布记录时显式分派分区索引,尽量这种要领很少行使。正如我们在前面的示例中所做的那样,一种更常见的要领是为记录分派键。键对Kafka完全不透明,换句话说,Kafka不会去表明key的内容,而是将其视为字节数组。行使同等的哈希技能对这些字节举办哈希处理赏罚以得出分区索引。 共享沟通散列的记录可以担保占有沟通的分区。假设一个主题具有多个分区,则具有差异键的记录也许最终会位于差异的分区中。可是,因为哈希键斗嘴,具有差异哈希值的记录也也许最终会在统一分区中。 出产者无需体谅记录将映射到哪个特定分区,只要相干记录最终在统一分区中而且保存其次序。同样,斲丧者对也无需体谅分派到谁人分区,只要它们以与宣布沟通的次序吸取记录,而且其分区分派不会与组中的其他斲丧者一再。 案例:买卖营业平台 假设我们正在探求上市股票的特订价值模式,并在确定特定模式后发出买卖营业信号。有大量库存,可以领略的是,但愿将它们并行处理赏罚。可是,任何给定的股票代码的时刻序列必需在单个行使者上次序处理赏罚。 Kafka使这个用例以及其他相同用例险些不轻易实现。我们将建设两个主题:价值,用来存储原始价值数据。订单主题,用来生涯任何由发生的订单。我们可以多分别一些分区,可以让我们充实的并行操纵。 我们可以在价值主题上宣布每个价值的记录,并用股票代码作为键。Kafka的自动分区分派将确保每个股票代号由其组中的一个斲丧者处理赏罚。斲丧者实例可以自由扩展和扩展以匹配处理赏罚负载。斲丧者组应该故意义地定名,抱负地反应斲丧应用措施的目标。好比trading-strategy.abc,它是一种名为" ABC"的假造买卖营业计策。 斲丧者确定了价值模式后,就可以在订单主题上宣布另一条动静,订单哀求。我们将召集另一个斲丧组,订单执行,认真读取订单并将其转发给经纪人。 在这个简朴的示例中,我们建设了一个完全由变乱驱动且高度可扩展的端到端买卖营业管道,假设没有其他瓶颈。我们可以在各个阶段动态添加更多的处理赏罚节点,以应对必要增进的负载的环境。 假设您必要在通用数据源的驱动下同时运行的几种买卖营业计策。另外,买卖营业计策将由差异的团队拟定;目标是尽也许地使这些实现脱钩,从而使团队可以或许自主运作,乃至可以行使差异的编程说话和器材链以各自的节拍举办开拓和陈设。 ![]() Kafka机动的多到多pub-sub系统布局将状态耗损与广播语义相团结。通过行使差异的斲丧群体,Kafka应承差异的应用措施共享输入主题,并按本身的进度处理赏罚变乱。第二种买卖营业计策将必要一个专门的斲丧群体:trading-strategy.xyz,将其特定的营业逻辑应用于通用订价流,并将天生的订单宣布到沟通的订单主题。通过这种方法,Kafka可以或许从易于重用和组合的离散元素构建模块化变乱处理赏罚管道。 总结 事宜流平台是构建模块化、松耦合、变乱驱动的应用措施的高效构建块。在事宜流的天下中,Kafka固定了其成为乐成开源办理方案的职位,该办理方案分身了机动性和高机能。并发和并行性是Kafka系统布局的焦点,形成部门排序的事宜流,可以在可扩展的斲丧者生态体系中实现负载均衡。斲丧者及其周围组的简朴从头设置可以带来很是差异的变乱分派和处理赏罚语义。 虽然,Kafka并非没有缺陷。可以说Kafka器材是低于尺度的。大大都Kafka从颐魅者恒久以来都放弃了现成的CLI适用措施,而转向其他开源器材(譬喻Kafdrop,Kafkacat和第三方贸易产物(如Kafka Tool)。 Kafka的设置选项种类繁多,初学的默认值有坑,新手也许会踩到这些坑。总而言之,Kafka代表了构建和构建伟大体系的方法的范式转变,它的上风也是显而易见的。
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |