在这篇文章中,我们将讨论以下话题:
- 数据平台
- 什么是 API 网关
- 超高性能 NoSQL 和消息队列
- 如何从零扩展到百万用户
数据平台
Semantix 提供的数据管道插图很好地说明了数据管道的工作原理。
数据平台摄取、处理、分析和呈现由不同数据源生成的数据。数据平台管理数据谜题的所有方面。
现代数据平台提供许多好处,包括组织内数据的集中访问,消除孤岛并提供可操作的见解。
超高性能 NoSQL 和消息队列
是否可以实现比原始 Kafka 和 Cassandra 至少 10 倍的性能提升?如何实现?权衡是什么?
有一类令人兴奋的存储软件,如 Redpanda 和 ScyllaDB,声称性能提高至少一个数量级。
Redpanda 和 ScyllaDB 在下图中用作示例。Redpanda 可以与 Kafka 比较,而 ScyllaDB 类似于 NoSQL Cassandra。
1. 无 JVM,无 GC
Kafka 和 Cassandra 用 JVM 兼容语言编写,通常遭受高尾延迟,其中平均延迟表现良好,但由于 GC(垃圾回收),99% 延迟不太好。
Redpanda 和 ScyllaDB 使用 C++ 从头重写,并利用一些新框架(例如 SeaStar)。它们很难编码,但可以实现更高的性能(详见下图的性能指标)。
2. 无共享架构
每个请求都固定到 CPU 核心。核心之间没有内存争用。这对 NUMA(非统一内存访问)架构也很友好,因此线程可以访问更靠近 CPU 核心的内存。
3. 零拷贝网络
使用 SeaStar 框架,这两种产品都可以在用户模式下直接访问网络设备,内核不参与。零拷贝、零锁、零上下文切换。
Apache Kafka 和 Apache Cassandra 彻底改变了软件行业处理大量数据的方式已经十年了。
从那时起,服务器 CPU 核心数增长了 10 倍。内存从 64GB 增长到半 TB。NVMe SSD 驱动器的速度比十年前的旋转磁盘快约 100 倍。25Gbps 的网络带宽已经很普遍。
新一代软件已经进入市场以利用这一趋势。我们写这篇文章是为了提高人们对这一趋势的认识。
如何从零扩展到百万用户
设计一个支持数百万用户的系统具有挑战性,这是一段需要持续改进和不断完善的过程。让我们快速看看哪些是支持系统的关键组件。
负载均衡器
负载均衡器在负载均衡集中定义的 Web 服务器之间均匀分配传入流量。
Web 服务器
Web 服务器返回 HTML 页面或 JSON 响应以进行渲染。
数据库:垂直扩展和水平扩展
缓存
缓存是临时存储区域,将昂贵响应的结果或频繁访问的数据存储在内存中,以便更快地提供后续请求。
CDN
CDN 是地理分散的服务器网络,用于交付静态内容。CDN 服务器缓存静态内容,如图像、视频、CSS、JavaScript 文件等。
消息队列
消息队列是存储在内存中的持久组件,支持异步通信。
日志、指标、自动化
当运行在少数服务器上的小网站时,日志、指标和自动化支持是好做法但不是必需的。然而,现在你的网站已经发展到服务于大型企业,投资这些工具至关重要。
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP31: Super High-performance NoSQL and MQ。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。