1、灰度因子
用于区分灰度请求与非灰度请求,需要标记的点
1)前端Http请求中
2)后端rpc调用中
3)JVM中
2、前端资源灰度
区分灰度和非灰度加载资源
3、web层灰度非灰度过滤
Rest API,通过http中的灰度因子与JVM中的灰度因子来区分请求命中的服务
4、分布式RPC灰度
确保灰度应用的服务API,不被环境里其他非灰度应用所调用
灰度应用的Dubbo服务API,可被环境里上游灰度应用所调用
灰度应用调用下游其他服务APIs时,按灰度规则进行非灰度/灰度的调用
5、MQ生产/消费灰度
确保度应用产生的MQ,只被下游灰度应用消费
确保非灰度应用产生的MQ,只被下游非灰度应用消费
思路:
1)、区分Topic:灰度应用动态自适应的用“灰度Topic”发消息。且自适应的订阅“灰度Topic”的消息。
2)、不区分Topic:灰度和非灰度应用保持同一个Topic不变。在consumer端根据上下文以及灰度因子有选择性的消费MQ。此处,灰度应用的consumer需以“广播消费”的模式订阅消息,使得能收到此topic下所有的消息,才能有选择的消费。
6、数据库灰度
考虑能否隔离灰度和非灰度数据库环境,
若不能隔离,需要双写(通过binlog、或者Mq做数据同步)
网友评论