Skip to main content
QUICK REVIEW

[论文解读] Data Management in Microservices: State of the Practice, Challenges, and Research Directions

Rodrigo Laigner, Yongluan Zhou|arXiv (Cornell University)|Feb 27, 2021
Software System Performance and Reliability参考文献 64被引用 10
一句话总结

本文通过结合文献综述、开源代码分析及对120余名从业者的调查,采用混合方法研究,探讨微服务中的数据管理问题。研究识别出跨服务一致性与缺乏系统级支持等关键挑战,并提出九项面向微服务数据库系统的基础功能,以实现端到端、应用感知的数据管理,减轻开发人员负担并提升系统可靠性。

ABSTRACT

Microservices have become a popular architectural style for data-driven applications, given their ability to functionally decompose an application into small and autonomous services to achieve scalability, strong isolation, and specialization of database systems to the workloads and data formats of each service. Despite the accelerating industrial adoption of this architectural style, an investigation of the state of the practice and challenges practitioners face regarding data management in microservices is lacking. To bridge this gap, we conducted a systematic literature review of representative articles reporting the adoption of microservices, we analyzed a set of popular open-source microservice applications, and we conducted an online survey to cross-validate the findings of the previous steps with the perceptions and experiences of over 120 experienced practitioners and researchers. Through this process, we were able to categorize the state of practice of data management in microservices and observe several foundational challenges that cannot be solved by software engineering practices alone, but rather require system-level support to alleviate the burden imposed on practitioners. We discuss the shortcomings of state-of-the-art database systems regarding microservices and we conclude by devising a set of features for microservice-oriented database systems.

研究动机与目标

  • 通过实证研究,理解当前微服务中数据管理实践的现状。
  • 识别出仅靠软件工程手段无法解决的开发人员普遍面临的挑战。
  • 分析现有数据库系统在支持微服务特定数据管理需求方面的不足。
  • 定义一组面向微服务数据库系统的必要功能,以实现应用感知、一致且可扩展的数据处理。
  • 通过新型抽象与系统级集成,弥合应用层数据管理逻辑与数据库系统能力之间的鸿沟。

提出的方法

  • 对300篇同行评审论文进行系统性文献综述,筛选出10项关于微服务采用的代表性研究。
  • 分析一组流行的开源微服务应用,观察真实世界中的数据管理模式与技术。
  • 对120余名经验丰富的开发人员与研究人员开展在线调查,以验证研究发现并收集其对数据管理挑战的看法。
  • 识别出重复出现的数据管理问题,如跨服务一致性、模式演化以及缺乏端到端查询支持。
  • 提出九项关键功能(F1–F9),用于面向微服务的数据库系统,强调应用感知、事件驱动一致性与跨服务事务建模。
  • 探讨两种架构路径:扩展有状态中间层抽象(如虚拟参与者)以及将数据库组件集成至应用层,以向DBMS暴露数据流语义。

实验结果

研究问题

  • RQ1真实世界微服务应用中普遍采用的数据管理模式与技术是什么?
  • RQ2开发人员在跨微服务管理数据时面临的主要挑战是什么,特别是关于一致性与数据交换方面?
  • RQ3现有数据库系统在支持微服务独特数据管理需求方面存在哪些不足?
  • RQ4数据库系统需要具备哪些系统级功能,才能原生支持微服务架构?
  • RQ5数据库系统如何获得对应用层数据管理逻辑的认知,以减轻开发人员负担?

主要发现

  • 开发人员普遍采用多语言持久化,但缺乏跨服务数据一致性的标准化方法,导致采用临时、易出错的解决方案。
  • 现有数据库系统不支持跨多个微服务状态的一致、端到端查询,尤其是在数据分布在不同数据库与模式时更为明显。
  • 应用层的数据管理逻辑(如事件驱动约束与分布式事务)通常对数据库系统不透明,造成阻抗失配。
  • 缺乏系统级支持导致数据管理实现复杂、脆弱且难以维护,仅靠代码重构无法解决。
  • 所提出的九项功能(F1–F9)解决了跨微服务一致性、基于事件的约束与应用感知数据建模等核心挑战,使数据管理更加可靠且易于维护。
  • 两种架构路径——扩展有状态抽象与将数据库组件集成至应用层——被识别为使数据库系统能够理解并强制执行跨服务复杂数据管理逻辑的关键。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。