96 - 实战之灰度发布组件(分析篇)

2021-11-04  本文已影响0人  舍是境界

本文开始,我们实战一个新的项目:灰度发布组件,这里对灰度发布组件进行需求分析,搞清楚这个组件应该具有哪些功能性和非功能性需求。

需求场景

  1. 我们来看下具体如何来做。
  1. 怎么解决代码回滚成本比较高的问题呢?
boolean callRestfulApi = true;
if (!callRestfulApi) {
  // 老的调用RPC接口的代码逻辑
} else {
  // 新的调用Resful接口的代码逻辑
}
  1. 那这个灰度功能又该如何实现呢?

需求分析

features:
- key: call_newapi_getUserById
  enabled: true // enabled为true时,rule才生效
  rule: {893,342,1020-1120,%30} // 按照用户ID来做灰度
- key: call_newapi_registerUser
  enabled: true
  rule: {1391198723, %10}  //按照手机号来做灰度
- key: newalgo_loan
  enabled: true
  rule: {0-1000} //按照贷款(loan)的金额来做灰度
public interface DarkFeature {
  boolean enabled();
  boolean dark(String darkTarget); //darkTarget是灰度对象,比如前面提到的用户ID、手机号码、金额等
}

小结

上一篇 下一篇

猜你喜欢

热点阅读