在这篇文章中,我们将讨论以下话题:

  • 缓存系统
  • 无服务器数据库
  • TCP vs. UDP
  • 批处理 vs. 流处理

缓存系统

每个开发者都应该知道的缓存系统知识。

无服务器数据库

无服务器数据库是未来吗?无服务器数据库与传统云数据库有何不同?

Amazon Aurora Serverless 是一个自动扩展和按需配置的配置。

  • 自动扩展:Aurora Serverless 能够根据业务需求自动扩展或缩减容量。例如,为大型促销活动准备的电商网站可以在几毫秒内将负载扩展到多个数据库。与需要配置和管理数据库实例的常规云数据库相比,Aurora Serverless 可以自动启动和关闭。
  • 精确计费:通过解耦计算层和数据存储层,Aurora Serverless 能够更精确地收费。此外,Aurora Serverless 可以是预配置和无服务器实例的组合,使现有预配置数据库成为无服务器池的一部分。

问题:你使用过无服务器数据库吗?它节省成本吗?

TCP vs. UDP

面向连接 vs. 无连接

  • TCP:面向连接
  • UDP:无连接

三次握手 vs. 无握手

  • TCP:三次握手建立连接
  • UDP:无需握手

头部大小

  • TCP:20 字节
  • UDP:8 字节

通信模式

  • TCP:点对点
  • UDP:单播、多播、广播

拥塞控制

  • TCP:有拥塞控制
  • UDP:无拥塞控制

可靠性

  • TCP:可靠传输
  • UDP:有损传输

流量控制

  • TCP:有流量控制
  • UDP:无流量控制

批处理 vs. 流处理

批处理:我们在一天结束时聚合用户点击活动。 流处理:我们实时检测用户点击流的潜在欺诈行为。

两种处理模型都用于大数据处理。主要区别在于:

输入

  • 批处理:处理有时间边界的数据,意味着输入数据有结束
  • 流处理:处理数据流,没有边界

时效性

  • 批处理:用于数据不需要实时处理的场景
  • 流处理:可以在数据生成时产生处理结果

输出

  • 批处理:通常生成一次性结果,例如报告
  • 流处理:输出可以管道到欺诈决策引擎、监控工具、分析工具或索引/缓存更新器

容错性

  • 批处理:更好地容忍故障,因为批次可以在固定输入数据集上重放
  • 流处理:更具挑战性,因为输入数据不断流入。有一些方法可以解决:
    • 微批处理:将数据流分成更小的块(Spark 使用)
    • 检查点:每隔几秒生成一个标记以回滚(Flink 使用)

问题:你做过流处理系统的工作吗?

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP54: Cache Systems Every Developer Should Know

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。