千家信息网

如何分解单体式数据库以实现微服务

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要讲解了"如何分解单体式数据库以实现微服务",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何分解单体式数据库以实现微服务"吧!按服务模式的数
千家信息网最后更新 2025年02月02日如何分解单体式数据库以实现微服务

这篇文章主要讲解了"如何分解单体式数据库以实现微服务",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何分解单体式数据库以实现微服务"吧!

按服务模式的数据库

在微服务架构中,大型数据湖需要转型为分布式数据库,以匹配特定服务。这样做可在只需要访问原始数据库特定部分的各个服务间创建必要的关注点分离。这也可帮助管理自己服务集的团队维持所需的独立控制。

根据Praful Todkar建议的模型,分解单体数据库需要与其所支持的服务同时进行-有时称为按服务模式的数据库。这应该是逐步的过程,并要求团队:

  • 从单体中分离出单个服务,并将流量路由到它;

  • 分离相同数据库中的表,并将其与该服务匹配;

  • 在该表旁边创建新的较小的数据库,并将流量路由到它;

  • 从原始数据库中删除先前的数据和架构。

分离服务和表

在微服务迁移期间,重组整个数据库有点像在驾驶汽车的同时更换轮胎。这样做可能会导致各种故障,并增加丢失数据或破坏功能的机会。

正确的做法是,从小处着手,在旧架构与新微服务间进行逻辑分离。当你选择要从单体中移除的服务后,创建一个新数据表(或多个表),其中仅包含新服务所需的数据。

在此步骤中,明确的路由规则至关重要。首先团队需要将流量从单体应用程序重新路由到新的微服务。然后,他们必须将旧的单体数据库的部分转移到表中,这最终将构成新数据库的框架。所有这些都需要现代的联网功能,例如由Istio等工具实现的服务网格方法。

当将分离的表转换为新的分布式数据库时,奇偶校验也至关重要。请确保新旧数据库中的数据已完全同步。在确认数据奇偶校验后,从以前的数据库中删除表和旧数据。

使用模式是便于管理,但不能过于依靠

模式是元数据集,用来描述数据库内数据的结构。有些团队更喜欢按模式整理数据,为每个服务创建独有的数据库模式,而不是整个数据库。这种方法有着无可争议的好处,因为要管理的数据库更少,并且它们之间的统一性更高。

但是,这种做法非常接近单体式数据湖模型,而我们正试图远离这种模型。如果有选择的话,即使看起来客观上适得其反,开发人员和架构师也会倾向于熟悉的方法。他们会做出妥协并遵循按服务模式做法。但是请记住:只要有可能,最好为每个服务都设置专用数据库,而不要依赖总体架构。

微服务最好的部分是,它使你可以将专用数据库分配给某些服务,而将共享数据库用于其他服务。该决定通常取决于服务的重要性及其处理的数据类型。团队结构也在这里发挥作用。有些服务要求管理它们的团队具有严格的自治权,而其他服务最好在多个团队之间共享。

为微服务选择最佳数据库 通常,单体是构建大型关系数据库上。当迁移到微服务时,为新架构选择数据库是重大决定。

现在有很多数据库选项,包括:

  • 键值数据库

  • 文档存储数据库

  • 图形数据库

  • 基于列的数据库

每种类型的数据库模型都适合特定类型的数据管理需求。例如,键值数据库和列式数据库最适合结构化数据,图形适合半结构化数据,而文档存储则最适合非结构化数据。

请记住,每种数据库类型的读写速度都不同,围绕不同数据库的供应商工具也不同。在选择任何一种数据库类型或工具集前,请使用样本数据运行测试。例如,对于需要实时性能的服务,将需要具有强大内存性能的数据库。

尽管企业正在迁移到微服务,但是关系数据库不会很快消失。出于各种原因,很多应用程序的某些部件在传统架构中运行时性能最佳,并且将依赖于旧的单体数据库来运行。好消息是微服务支持这种数据库管理的多类型模型。因此,不要仅仅因为其他服务正在迁移到微服务,而试图将应用程序的每个部分从单体中移出。

感谢各位的阅读,以上就是"如何分解单体式数据库以实现微服务"的内容了,经过本文的学习后,相信大家对如何分解单体式数据库以实现微服务这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

数据 数据库 服务 单体 团队 架构 模式 管理 模型 类型 结构 选择 路由 部分 不同 重要 做法 工具 应用程序 性能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库技术确定系统范围和边界 北京oa软件开发 软件开发项目有系统集成 初中生网络安全教育主题班会图片 虹口区创新数据库服务商价钱 行程卡数据库多久更新一次 华为服务器网页默认地址 中草药有效成分查询数据库 无锡凯尚互联网科技有限公司 接受软件开发 会计分录 网络安全进行时 申论 4fang数据库的后缀 幻塔几个服务器互通吗 黑龙江服务管理软件开发 发包服务器购买地址 吃鸡错误服务器目前非常繁忙 浙江联想服务器虚拟化价格 软件开发不如算法工程师吗 上海营销网络技术 浙江互动投影多媒体软件开发 中学生网络安全语句 不正当竞争网络安全保障义务 国家网络安全部图片 广州玛云互联网科技有限公司 淮安行业专业软件开发 数据库判断用户是否登陆 管理云服务器语言 软件开发不如算法工程师吗 注册公司 互联网科技 软件开发进度保证体系
0