开源Apache Cassandra、Kafka、Spark和ES何时该用,何时不该用?

开源Apache Cassandra、Kafka、Spark和ES何时该用,何时不该用?

译文
作者:布加迪编译 2019-12-06 09:41:40

云计算

开源

Kafka

Spark 几乎所有技术决策都要满足两个基本标准:让企业能够实现业务目标,与技术架构的其余部分协同运行。

【51CTO.com快译】几乎所有技术决策都要满足两个基本标准:让企业能够实现业务目标,与技术架构的其余部分协同运行。说到选择构建应用程序架构的数据层技术,开源Apache Cassandra、Apache Kafka、Apache Spark和Elasticsearch继续大行其道。

然而它们并不是适合各种使用场合的正确选择。

[[284852]]

不妨更深入地研究这每一项技术以及适合和不适合这些开源解决方案的一些使用场合。

1.Apache Cassandra

Cassandra最初由Facebook于2007年创建,利用Dynamo架构和Bigtable样式的数据模型来提供NoSQL数据存储,从而提供高可用性和高扩展性。

•何时应该使用Apache Cassandra?

对于需要最高级的始终在线可用性的使用场合而言,Cassandra是理想的选择。该数据库还特别适合服务于这类企业:预计会有大量工作负载,或希望确保其服务可以随工作负载加大而灵活增加,Cassandra提供了易于扩展的优点。Cassandra在多个数据中心之间提供可靠的数据冗余和双活操作。

•何时不应该使用?

面对数据仓库或纯粹的分析存储(甚至考虑使用可用的Spark连接件以及Tableau和Hadoop插件)时,Cassandra消耗的资源比替代技术更多。Cassandra还不适合实时分析,尤其是最终用户临时查询或自定义查询这种形式的分析,因为应用程序端实现代码的需要可能变得很复杂。此外,Cassandra无法满足大多数ACID要求。

2.Apache Kafka

Apache Kafka最开始由LinkedIn的技术团队创建,它提供了一种高可扩展性高可用性的流平台和消息总线。Kafka充当分布式日志,新到达的消息被添加到队列的头部,读取者(使用者)将根据偏移量来使用它们。

•何时应该使用Apache Kafka?

对于涉及微服务和面向服务架构的使用场合而言,Apache Kafka通常是明智的选择。 Kafka还可以充当高效的工作队列,能够协调不同的工作路径,通过监听和等待、直到工作到达来保留计算能力。该平台的流处理功能适用于异常检测、向上钻取和聚合,还适用于传递度量指标。Kafka还是一种功能强大的技术,可用于事件源、跨各种微服务的数据协调以及为分布式系统提供外部提交日志。其他合适的使用场合包括日志聚合、数据屏蔽及过滤、数据丰富和欺诈检测。

•何时不应该使用?

虽然在一些情况下可能很诱人,但切勿将Kafka用作数据库或记录源,至少在没有充分了解Kafka在这种使用场合下的局限性和属性的情况下切勿这么做。真正的数据库几乎总是更易于操作且更灵活。对于涉及整个主题的顺序处理,Kafka是同样不适合的选择。在目标是将数据包快速推送到终端源的任何使用场合下,比如实时音频和视频或其他有损数据流,企业应使用定制的解决方案而不是Kafka。

3.Apache Spark

Apache Spark是一种通用集群计算框架,适用于涉及大量数据的使用场合,它对数据进行划分,并针对划分的数据执行计算,以便worker执行所有可能的工作,直至它们需要来自其他worker的数据。这种设计为Spark提供了巨大的可扩展性和可用性,同时让它极具弹性,可应对数据丢失。

•何时应该使用Apache Spark?

Spark适用于涉及大规模分析的使用场合,尤其是数据通过多个来源到达的情况。Spark是一种强大的解决方案,适用于ETL或任何这种使用场合:需要在系统之间移动数据,无论用于从事务型数据存储持续填充数据仓库或数据湖,还是诸如数据库或系统迁移之类的一次性场景。如果企业在现有数据上构建机器学习管道、处理高延迟数据流,或执行交互式分析、临时性分析或探索性分析,会发现Spark非常适合。Spark还从合规角度提供数据屏蔽、数据过滤和大型数据集审核等功能,适合帮助企业满足合规要求。

•何时不应该使用?

对于涉及实时或低延迟处理的使用场合,Spark通常不是最佳选择。(Apache Kafka或其他技术提供出色的端到端延迟以满足这些要求,包括实时流处理)。处理小型数据集或单个数据集时,Spark通常是一种大材小用的选择。另外说到数据仓库和数据湖,最好使用高级技术代替Apache Spark,不过确实存在面向Spark的此类产品。

4.Elasticsearch

Elasticsearch提供了一种全文搜索引擎,它有广泛的功能来搜索和分析非结构化数据。该技术提供接近实时的可扩展线性搜索、强大的搜索临时替代和强大的分析功能。

•何时应该使用Elasticsearch?

Elasticsearch非常适合需要全文搜索、地理搜索、抓取和汇总公共数据、日志记录及日志分析、可视化以及少量事件数据和度量指标的使用场合。

•何时不应该使用?

Elasticsearch不应该用作拥有关系数据的数据库或记录源,也不应该用来满足ACID要求。

选择互补技术

为贵企业(无论是不是开源)选择最佳技术组合显然不仅需要评估解决方案本身,决策者还要设想企业将如何采用和使用每种解决方案作为技术架构的一部分。Apache Cassandra、Apache Kafka、Apache Spark和Elasticsearch提供了一套特别互补的技术,企业结合使用它们显得很明智;又由于开源特性,它们无需许可费,也不存在供应商锁定现象。如果结合这些技术,并获得它们带来的优点,企业就可以实现目标,能够开发出高可扩展性、高可用性、易于移植、极具弹性的应用程序。

原文标题:When – and When Not – to Use Open Source Apache Cassandra, Kafka, Spark and Elasticsearch,作者:Ben Slater

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/292922.html<

(0)
运维的头像运维
上一篇2025-05-20 09:17
下一篇 2025-05-20 09:18

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注