微服务开发:技术与政治的双重挑战
1. 微服务技术应用
1.1 购物车添加优惠券示例
以下是一个向购物车添加优惠券的消息示例:
{
"role": "cart",
"cmd": "add",
"item": {
"type": "dynamic",
"name": "Discount",
"reduce": 10
}
}
此示例展示了在存在依赖关系时如何使用细化策略。通过向现有服务(如购物车)引入最少的额外功能(添加动态项目),并利用新的微服务处理大部分新工作(如优惠券查找和验证),购物车可添加动态项目以实现折扣。
1.2 处理横切关注点
细化的另一个示例是引入横切关注点,如缓存、跟踪、审计、权限等。以产品页面的产品详情查找为例,简单系统有一个面向数据持久层的微服务,更完善的系统会有缓存服务拦截产品详情查找消息以检查缓存,而更实际的系统会使用缓存通知拦截器服务,该服务不仅进行缓存查找,还会发出异步观察消息,让其他感兴趣的微服务知晓用户查看了产品页面,跟踪微服务可收集查看统计信息进行分析。
1.3 细化策略的优势
细化策略是使用模式匹配作为消息路由方法的主要原因。它允许编写通用微服务,避免增加复杂性,每个新功能都可以作为新的特殊情况微服务交付。这有助于减少组件之间的不必要耦合和技术债务的增长,使软件组件避免了解过多无关信息,控制数据结构的复杂性。
1.4 微服务迁移要点
在微服务开发中,迁移单体应用是
订阅专栏 解锁全文
32

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



