首页 > 其他分享 >什么是Kappa架构?

什么是Kappa架构?

时间:2023-10-17 12:15:01浏览次数:34  
标签:架构 队列 什么 批处理 Job Kappa Lambda

一、简介

相当于在Lambda架构上去掉了批处理层(Batch Layer),只留下单独的流处理层(Speed Layer)。通过消息队列的数据保留功能,来实现上游重放(回溯)能力。

当流任务发生代码变动时,或者需要回溯计算时,原先的Job N保持不动,先新启动一个作业Job N+1,从消息队列中获取历史数据,进行计算,计算结果存储到新的数据表中。
当计算进度赶上之前的Job N时,Job N+1替换Job N,成为最新的流处理任务。然后程序切换为从新的数据表中读取数据,停止历史作业Job N,并删除旧的数据表。
当然这种架构可以进行优化,将两张输出表合并为一张,减少运维部分的工作。
与Lambda架构相比,这种架构在吞吐和性能上要低于Lambda架构,因为Lambda架构的批处理是整个吞吐与性能的核心部分。
但Kappa统一了数据处理架构,减少了计算资源的浪费,降低了运维成本。而且使得代码只需要编写和维护一次,但Kappa无法解决流处理和批处理在部分处理逻辑不一致的情况。

二、架构技术选型

Kappa架构在选型上,消息队列常选择Kafka,因为它具有历史数据保存、重放的功能,并支持多消费者。

而流处理集群,一般选择Flink,因为Flink支持流批一体的处理方式,并且对SQL的支持率逐渐提高,所以可以尽量减少流处理和批处理逻辑代码不一致的情况。 对于数据服务,依然是需要实时读写的数据库产品,常见的有HBase、Druid、ClickHouse等。 但使用Kafka作为消息队列时要注意,Kafka因为消息是先存储到内存中,然后再落盘,所以可能会存在数据丢失的情况发生。 如果需要金融级别的数据可靠性,使用Rabbit MQ或者Rocket MQ这种支持数据直接持久化到磁盘中的消息队列,可能是更好的选择,但相应的会牺牲数据实时性和吞吐量。 原文链接:https://juejin.cn/post/7094459597737426981  

标签:架构,队列,什么,批处理,Job,Kappa,Lambda
From: https://www.cnblogs.com/robots2/p/17769376.html

相关文章

  • 什么是Lambda架构?
    一、简介Lambda架构(LambdaArchitecture)是由Twitter工程师南森·马茨(NathanMarz)提出的大数据处理架构。这一架构的提出基于马茨在BackType和Twitter上的分布式数据处理系统的经验。Lambda架构使开发人员能够构建大规模分布式数据处理系统。它具有很好的灵活性和可扩展性,也对硬......
  • 神经网络入门篇:神经网络到底是什么东西
    神经网络到底是什么东西我们常常用深度学习这个术语来指训练神经网络的过程。有时它指的是特别大规模的神经网络训练。那么神经网络究竟是什么呢?举例说明-通俗易懂第一个例子从一个房价预测的例子开始讲起。假设你有一个数据集,它包含了六栋房子的信息。所以,你知道房屋的面......
  • 黑客可以厉害到什么程度?
    前言知乎上有一个提问:黑客可以厉害到什么程度?                  ↓↓↓今天,我们就这个话题,一起来做个讨论。对于大多数人来说,黑客给我们的印象一般都来自电影、媒体等信息。那种动不动入侵美国中央情报服务器;动不动在某些国家的政府网站......
  • 架构设计如何绘图?
    很多同学技术能力很强,架构设计也做得很好,但是在给别人讲解的时候,总感觉像是“茶壶里煮饺子,有货倒不出”。其实,在为新员工培训系统架构、给领导汇报技术规划、上技术大会做演讲或者向晋升评委介绍工作贡献的时候,如果你能画出一张优秀的 软件系统架构图,就可以大大提升自己的讲解......
  • 工作中学到了什么
    工作中学到了什么进入公司之前看比亚迪的公司文化视频,产业有哪些,企业文化是什么。其实也没了解什么。初步的印象就是好像什么都有,一个完整的工业园。但是实际去了就发现,一个超市离宿舍非常远,食堂也不怎么样。宿舍在1期,上班的地点却在2期。从这点可以看出,了解一个公司一定要从......
  • 一文带你了解自动化测试是什么?
    本章主要讲解自动化测试的含义、分类、项目使用,以及自动化测试工具的优势。一、自动化测试概述1、什么是自动化测试?自动化测试是软件测试活动中的一个重要分支和组成部分。随着软件产业的不断发展,市场对软件周期的要求越来越高,于是催生了各种开发模式,如大家熟知的敏捷开发,从而......
  • 虚拟机是什么
    简单地说,虚拟机(VirtualMachine)就是允许我们在当前操作系统中运行其他操作系统的软件,本质上和VS、QQ这些应用程序一样。所以,只要我们在电脑(PC或笔记本等)上安装好虚拟机软件,就可以模拟出来若干台相互独立的虚拟PC设备,每一个都如何一台真实的计算机。在此基础上,我们可以给每台虚......
  • 关于10月下做什么?
    考研这条路上,我觉得还是要多总结和反思的,应该坚持每半个月写一次半月报,距离考研,也不过就是写27次罢了这个月:这个月生活开始步入正轨,生活越来越正常,继续坚持。考研是需要全面发展的,不要偏科,这很重要,英语单词必须一直坚持,语言学习词汇量不够没有一点办法。所以每天得花三个小......
  • 什么是实时操作系统(RTOS)
    实时操作系统是保证在一定时间限制内完成特定功能的操作系统(执行时间的确定性是实时操作系统最根本的,其代价往往就是吞吐量低)。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作......
  • 动态IP代理有什么作用?
    随着互联网的普及和发展,越来越多的人开始意识到网络安全和隐私保护的重要性。其中,动态IP代理成为了一种常见的解决方案,被广泛应用于各种场景中。本文将详细介绍动态IP代理的作用。首先,我们需要了解什么是动态IP代理。简单来说,动态IP代理是一种通过代理服务器实现的网络协议转换技术......