8、从单体应用到微服务架构:转型与实践

从单体应用到微服务架构:转型与实践

在将单体应用向微服务架构转型的过程中,涉及诸多关键步骤和技术要点。以下将详细介绍相关内容。

1. 数据库拆分与主数据处理

在完成某些步骤后,代码已准备好将 ORDER 和 PRODUCT 拆分为独立的服务,每个服务拥有自己的数据库。同时,我们可以把单个数据库拆分成多个小数据库,实现每个服务对应一个数据库。

主数据(也称为静态数据)的处理方式有两种选择:
- 使用配置文件或代码枚举 :若主数据长期不变且记录数量较少,可采用此方式。不过,一旦主数据发生变化,需要有人手动更新配置文件。而且,由于系统其他部分依赖该模块,若此模块出现问题,可能会对其他部分产生负面影响。
- 将主数据封装在单独的服务中 :通过服务提供主数据,服务能立即感知数据变化并理解如何消费。请求该服务的过程与读取配置文件类似,虽可能稍慢,但只需按需进行。此外,还能支持不同的主数据集,方便维护每年不同的产品集。

2. 事务处理

随着外键的移除和数据库的拆分,我们需要设计自己的数据完整性处理机制。在处理事务时,要考虑并非所有服务都能在各自的数据存储范围内成功完成事务。

例如,用户订购特定产品时,订单接受时库存充足,但记录订单时,产品服务可能因某些原因无法记录。可能是库存不足,也可能是系统内部通信故障。此时有两种处理方式:
- 重试 :稍后重试未完成的事务部分。这要求我们对整个事务进行编排,跟踪跨服务的单个事务。对于长时间运行的操作,此方法可能有效;但对于非长时间运行的操作,重试可能导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值