微服务架构下的数据管理与RESTful API设计
一、微服务架构的数据管理
1.1 微服务架构的数据分散化理念
微服务架构(MSA)的核心哲学是软件设计与开发的去中心化。这种去中心化不仅指导业务逻辑的组织,还影响数据的持久化方式。在单体架构中,应用组件和数据传统上是集中式的,通常使用如 SQL Server 等 SQL 数据库作为单一数据库,包含多个表。部分应用逻辑甚至以存储过程、复杂连接等形式委托给 SQL 数据库。
1.2 REST 理念下的数据组织
为了以去中心化的方式正确且简洁地组织数据,RESTful 服务范式十分有用。REST 概念引入了一种新的数据建模方式,每个应用中有多个资源,REST 为每个参与的资源分配一个 URL,并建议使用标准的 HTTP 动词与资源进行交互。
对于一个小型社交消息应用,有三种基本资源类型:用户、消息和好友。在单体应用中,中央服务器处理所有资源路径的请求,且有一个单一数据库将所有资源类型存储为表;而在以微服务为中心的应用中,每个微服务都有自己的数据库,这种安排确保了数据的更高安全性,且微服务与资源类型之间存在一对一的映射关系。
1.3 避免 SQL 连接操作
在 MSA 世界中,由于每个数据库在逻辑上是分离的,进行 SQL 连接操作非常繁琐且耗时,还会带来技术和安全方面的问题。例如,消息应用的时间线视图要求显示认证用户每个好友的最新消息,以及好友的姓名和其他详细信息。
使用基本的 REST API 实现此复杂视图,客户端需要对不同资源进行多次 API 调用,共需五个请求,这会降低性能。一种解决方案是为 API 创建一个新路由,即
超级会员免费看
订阅专栏 解锁全文
168万+

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



