0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

分析探讨微服务迁移如何影响数据库管理和分解数据库的步骤

如意 来源:TechTarget中国 作者:邹铮 2020-10-12 14:43 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在从单体式架构迁移到微服务架构时,数据库通常是事后想法。有些人认为迁移仅涉及应用逻辑的重组,而底层数据保持不变。但是,这种做法可能会导致单体式服务和微服务的尴尬混合:分布式单体服务。

微服务模型使基础架构和数据存储发生深刻变化。在微服务模型中,从传统应用程序中拉出服务,并为其提供独立性,在这种情况下,团队也必须考虑其基础数据库,并将其分解为特定于服务的数据源。

让我们看一下微服务迁移如何影响数据库管理,并探讨分解数据库的步骤。

按服务模式的数据库

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

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

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

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

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

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

分离服务和表

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

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

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

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

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

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

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

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

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

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

键值数据库

文档存储数据库

图形数据库

基于列的数据库

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3993

    浏览量

    67736
  • 分布式
    +关注

    关注

    1

    文章

    1062

    浏览量

    76418
  • 微服务
    +关注

    关注

    0

    文章

    147

    浏览量

    8050
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数据库管理

    如题:用labview操作access数据库做公司测试流程管控。因测试数据量大,数据生成多,现在accdb文件已经有50M了,现在发现数据库在本地操作都很快,但是放在远端
    发表于 11-08 16:58

    数据库使用教程下载

    创建数据库是实施数据库应用系统的第一步,创建合理结构的数据库需要合理的规划与设计、需要了解数据库物理存储结构与逻辑结构。数据库是表的集合,
    发表于 05-09 11:08 0次下载

    数据库复制的设计和管理

    【摘 要】 介绍数据库复制在分布式数据库系统中的应用、设计和管理,给出了设计步骤和设计时考虑的因素。对设计和应用中出现的冲突问题进行了分析
    发表于 05-11 19:35 860次阅读

    Informix数据库管理

    Informix数据库管理: 一、Informix数据库的安装
    发表于 08-01 15:29 1453次阅读

    数据库SQL语句电子教程

    电子发烧友为您提供了数据库SQL语句电子教程,帮助您了解数据库 SQL语句 ,学习读懂数据库SQL语句,达到会写数据库SQL语句,通过具体的分析
    发表于 07-14 17:09 0次下载

    如何为微服务选择数据库

    你的微服务架构需要多种数据模型。你是应该选择混合持久化呢还是多模型数据库? 在过去的十年,大规模的分布式系统呈现爆炸式增长。这一趋势促使在数据库领域产生了一股巨大的创造力,这在软件业的
    发表于 11-23 10:55 1924次阅读

    数据库教程之数据库的创建与管理详细资料免费下载

    本文档的主要内容详细介绍的是数据库教程之数据库的创建与管理详细资料免费下载。内容包括了:SQL Server数据库概述, 创建数据库,修改
    发表于 10-19 10:41 18次下载
    <b class='flag-5'>数据库</b>教程之<b class='flag-5'>数据库</b>的创建与<b class='flag-5'>管理</b>详细资料免费下载

    数据库教程之如何进行数据库设计

    本文档的主要内容详细介绍的是数据库教程之如何进行数据库设计内容包括了:1 数据库设计概述 ,2 数据库需求分析 ,3
    发表于 10-19 10:41 21次下载
    <b class='flag-5'>数据库</b>教程之如何进行<b class='flag-5'>数据库</b>设计

    数据库管理系统的功能

    本视频主要详细介绍了数据库管理系统的功能,分别是数据定义、数据操作、数据库的运行管理
    的头像 发表于 02-22 15:52 6894次阅读

    数据库数据恢复】MongoDB数据库数据恢复案例

    需求,需要对MongoDB数据库内的文件进行迁移,在MongoDB服务开启的状态下用户将数据库文件复制到其他分区,将MongoDB数据库之前
    的头像 发表于 01-05 13:50 1432次阅读
    【<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复】MongoDB<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复案例

    数据库建立|数据库创建的方法?

    数据库是一个存储关键数据的文件系统。利用数据库管理系统建立每个人的数据库可以更好地提供安全。 数据库
    的头像 发表于 07-14 11:15 1904次阅读

    数据库和普通数据库区别?|PetaExpress云端数据库

    和持久性有四个特点。 云数据库和普通数据库相比都具备哪些优势? 1)安全稳定 云端数据库服务,能够帮助用户将危险的操作收缩起来,避免数据库
    的头像 发表于 08-01 17:13 1603次阅读

    MySQL数据库管理与应用

    MySQL数据库管理与应用 MySQL是一种广泛使用的关系型数据库管理系统,被认为是最流行和最常见的开源数据库之一。它可以被用于多种不同的应
    的头像 发表于 08-28 17:15 1622次阅读

    数据库应用及其特点 数据库数据的基本特点

    管理的一项重要应用,其优点不仅可以提高工作效率,还可以保证数据的安全性和可靠性。本文将详细介绍数据库应用及其特点,同时探讨数据库
    的头像 发表于 08-28 17:22 3672次阅读

    数据库是哪种数据库类型?

    数据库是一种部署在虚拟计算环境中的数据库,它融合了云计算的弹性和可扩展性,为用户提供高效、灵活的数据库服务。云数据库主要分为两大类:关系型
    的头像 发表于 01-07 10:22 804次阅读