11、微服务设计与事务处理全解析

微服务设计与事务处理全解析

1. 技术能力的运用

在微服务架构中,技术能力的合理运用至关重要。技术能力可用于支持和简化其他微服务,限制业务能力的规模和复杂性。以下几种情况适合对技术能力进行分区:
- 若将某能力包含在面向业务的服务中会使该服务变得过于复杂,增加未来替换的难度。
- 多个服务都需要某一技术能力,例如发送电子邮件通知。
- 技术能力独立于业务能力变化,如复杂的第三方集成。

将这些能力封装在单独的服务中,能够捕捉易变区域,即可能独立变化的区域,从而最大程度地提高服务的可重用性。

然而,在某些场景下,对技术能力进行分区并不明智。例如,在经典的SOA中,系统常被水平分解,认为将数据存储与业务功能分离可最大程度地提高可重用性。但这种做法带来了高昂的代价,导致不同可部署单元之间紧密耦合,新功能的实现需要跨多个应用同时进行更改,容易出错且部署困难,形成分布式单体应用。

2. 应对微服务边界的模糊性

微服务的范围界定既是一门科学,也是一门艺术。在软件设计中,面对模糊性时找到最佳解决方案是一项重要任务。这主要源于两方面的原因:
- 对问题领域的理解可能不完整或不正确,理解业务问题的需求是一个复杂、耗时且迭代的过程。
- 需要预测服务在未来的使用方式,而不仅仅关注当前需求,但短期功能需求与长期服务可扩展性之间往往存在矛盾。

次优的服务分区会增加开发的摩擦和重构的成本。为应对这种模糊性,可以采取以下策略:
- 从粗粒度服务开始 :当对服务边界不确定时,构建较大的服务可能是更好的选择。如果服务构建得太小,可能会导致不同服务之间紧密

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值