# homework3 **Repository Path**: ouereryi/homework3 ## Basic Information - **Project Name**: homework3 - **Description**: homework3 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-25 - **Last Updated**: 2023-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # homework3 场景分析:假设一个电商系统中存在一个订单(Order)服务,该服务暴露了一个下单接口。随着业务的不断发展,我们需要重构这个订单下单接口。但是因为下单操作非常重要,属于电商系统的核心链路,所以我们希望通过灰度发布的方式来对新的订单接口进行验证,确保没有问题之后才做全网发布。针对这一场景,我们如何设计一套灰度发布体系?在这套灰度发布体系中,灰度版本需要可配置,并且跟业务代码之间做到低耦合。 业务模块 businesServcie---用来调用订单服务,当前服务的负载均衡策略通过参数的版本号来确定调用对应版本号的order服务实例 orderService--- 订单服务实例,可以发布多个,根据配置来更新服务的实例什么版本的,新发布的时候初始化版本号 设计思路 businesServcie的服务接受客户端调用的header的中传入的版本号,然后在负载均衡策略中获取对应的版本信息,根据版本信息获取服务实例的对象然后调用其服务。 对应的orderService服务只需要每次发版的时候更新自己的版本号,来供客户端调用其实例。从而实现灰度发布的功能。