云原生应用数据库选型与架构设计指南
1. 云原生应用数据持久化的挑战
在开发云原生架构的应用时,数据持久化是一个关键问题。应用通常需要管理会话状态和领域状态,而领域状态的可靠存储尤为重要。虽然原始存储(如块存储、文件存储和对象存储)看似是存储数据的理想选择,但它存在两个主要挑战:
- 并发问题 :当多个线程同时读写数据时,可能会导致数据不一致、覆盖或损坏。即使是微服务的副本之间也会存在并发问题。
- 查询问题 :如果应用需要进行搜索,原始存储只能读取所有数据并进行过滤,效率极低,尤其是在数据集增大时。
传统的企业数据库在云环境中也存在一些不适应的地方:
| 问题 | 描述 |
| ---- | ---- |
| 模式问题 | 传统数据库强制数据遵循通用模式,应用需要适应数据库,对于非严格结构的数据映射困难。 |
| 存储最小化问题 | 企业数据库追求在最小的存储空间中写入尽可能多的数据,通常采用原地更新记录的方式,这需要大量使用锁,影响并发线程的性能和数据库的整体吞吐量与可扩展性。 |
| 单进程问题 | 企业数据库通常作为单个活动进程运行,只能垂直扩展,不能水平扩展,是单点故障源。 |
2. 云数据库的优势与特点
为了解决上述问题,云原生应用应选择云数据库进行数据持久化。云数据库具有以下优势:
- 水平可扩展性 :能够像云应用一样水平扩展,满足应用的弹性需求。
- 灵活性 :应用可以告诉云数据库如何存储数据,许多云数
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



