当前位置: 首页 > news >正文

14-63 剑和诗人37 - 分布式系统中的数据访问设计

​​

14-63 剑和诗人37 - 分布式系统中的数据访问设计

在分布式系统中,跨服务和数据库提供统一、可靠的数据访问至关重要,但又极具挑战性。微服务和数据库的拓扑结构为分布、缓存、复制和同步带来了复杂性。

让我们探索有助于解决这些复杂性并简化构建强大、高性能分布式系统的常见数据访问模式。

14-63 剑和诗人37 - 分布式系统中的数据访问设计

概述

我们将通过示例介绍以下分布式数据访问模式:

  • 每个服务都有数据库
  • 共享数据库
  • 每个区域的数据库
  • CQRS 和事件源
  • Saga 模式
  • API 组成
  • 缓存
  • 物化视图
  • 复制
  • 联邦
  • 多语言持久性
  • 多数据中心复制

这些模式有助于构建数据库拓扑、有效缓存、同步更改、处理故障和扩展数据访问。

让我们更详细地了解每种模式。

每个服务都有数据库

每个服务数据库模式为每个微服务提供其自己的私有数据库。

例如,订单服务有自己的订单数据库。客户服务有自己的客户数据库。

好处:

  • 解耦——服务不依赖于共享模式或数据库
  • 所有权——明确所有权,因为每个服务都管理其数据库
  • 规模——数据库可以根据服务需求独立扩展
  • 简单性——避免数据库共享,使协调更简单

缺点:

  • 数据隔离——跨服务交易和查询执行起来更加困难
  • 一致性——如果同步不正确,服务之间的数据就会不一致
  • 开销——管理多个数据库的运营开销更高

用例:

  • 微服务采用的早期阶段
  • 不共享数据的简单 CRUD 服务
  • 服务团队希望完全控制数据

这种模式提供了一条解耦服务的快速途径,但通常会随着时间的推移而发展,以允许更好的数据共享。

共享数据库

通过共享数据库模式,服务可以共享对单个逻辑数据库的访问权限。

例如,多个服务通过不同的模式访问 Oracle 数据库中的同一个客户表。

好处:

  • 简单——避免数据库之间复杂的数据同步和访问
  • 一致性——与数据库事务的强一致性
  • 已建立— 利用经过验证的 RDBMS 特性,如事务、索引、授权

缺点:

  • 紧密耦合
http://www.lryc.cn/news/397171.html

相关文章:

  • 大数据基础:Hadoop之MapReduce重点架构原理
  • 人工智能算法工程师(中级)课程3-sklearn机器学习之数据处理与代码详解
  • 华为机考真题 -- 螺旋数字矩阵
  • 防御笔记第四天(持续更新)
  • HUAWEI VRRP 实验
  • 领取serv00免费虚拟主机
  • 云开发技术的壁纸小程序源码,无需服务期无需域名
  • 基于Python的哔哩哔哩数据分析系统设计实现过程,技术使用flask、MySQL、echarts,前端使用Layui
  • 顺序结构 ( 四 ) —— 标准数据类型 【互三互三】
  • 科普文:jvm笔记
  • springboot对象参数赋值变化
  • 树形结构的一种便捷实现方案
  • 探索AI数字人的开源解决方案
  • 科普文:深入理解负载均衡(四层负载均衡、七层负载均衡)
  • 华为模拟器ensp中USG6000V防火墙web界面使用
  • 使用Python绘制气泡图
  • 政安晨:【Keras机器学习示例演绎】(五十四)—— 使用神经决策森林进行分类
  • 洞察消费者心理:Transformer模型在消费者行为分析的创新应用
  • 如何安全使用代理ip
  • 机器学习——LR、‌GBDT、‌SVM、‌CNN、‌DNN、‌RNN、‌Word2Vec等模型的原理和应用
  • 揭秘SQL Server数据库选项:性能与行为的调控者
  • 【排序 - 选择排序优化版(利用堆排序)】
  • PHP编程开发工具有哪些?
  • 火柴棒图python绘画
  • Nginx七层(应用层)反向代理:UWSGI代理uwsgi_pass篇
  • Effective C++笔记之二十一:One Definition Rule(ODR)
  • 探索未来:Transformer模型在智能环境监测的革命性应用
  • Nginx中文URL请求404
  • 33. 动量法(Momentum)介绍
  • Python | Leetcode Python题解之第228题汇总区间