JunoDB 是 PayPal 自产的安全、一致且高度可用的键值存储,可在任何规模下提供低个位数毫秒的延迟。
JunoDB 采用基于代理的架构来实现水平连接扩展,同时简化客户端库,将复杂的逻辑和配置与应用程序分开。此外,一致性哈希用于数据分区,最大限度地减少集群扩展期间的数据移动。为了确保冗余和容错,每条数据都被复制到一组存储节点中,每个节点都位于不同的逻辑区域中。
JunoDB 包含三个无缝协同工作的关键组件:
- JunoDB 客户端库驻留在应用程序中,并提供一个 API,允许通过 JunoDB 代理轻松存储、检索和更新应用程序数据。JunoDB 瘦客户端库以多种编程语言实现,例如 Java、Golang 和 C++,使其易于与使用不同编程语言编写的应用程序集成。
- JunoDB 代理实例由负载均衡器驱动,并接受来自其他站点的客户端请求和复制流量。每个代理连接到所有 JunoDB 存储服务器实例,并根据 ETCD 中维护的分片映射将每个请求转发到一组存储服务器实例。
- JunoDB 存储服务器实例接受来自代理的操作请求,并将数据存储在内存或 RocksDB 中。每个存储服务器实例负责一组分片,确保数据存储和管理的顺畅和高效。
评论