javascript
积分和人民币比率_通过比率路由到旧版和现代应用程序–通过Spring Cloud的Netflix Zuul...
積分和人民幣比率
從應用程序的舊版本遷移到應用程序的現代化版本時,一個非常常見的要求是能夠將用戶緩慢遷移到新應用程序。 在本文中,我將介紹通過Spring Cloud使用對Netflix Zuul的支持編寫的這種路由層。 在繼續之前,我必須承認,此處演示的大多數代碼都是與最高級的丁少珍合作編寫的。
情境
我有一個舊服務,它已被重新設計為一個更現代的版本(假設作為此遷移的一部分,端點的uri并未更改)。 我想將用戶從舊版應用程序緩慢遷移到現代版本。
使用Spring Cloud Netflix實施– Zuul支持
使用Spring Cloud項目中的Netflix Zuul支持可以輕松實現這一目標。
Zuul由一組過濾器驅動,這些過濾器在對后端的請求之前(前置過濾器),期間(路由過濾器)和之后(后過濾器)處理請求。 Spring Cloud將其自定義過濾器集添加到Zuul,并通過如下配置來驅動這些過濾器的行為:
zuul:routes:ratio-route:path: /routes/**strip-prefix: false這指定Zuul將使用前綴“ / routes”處理對Uri的請求,并且不會從下游調用中刪除此前綴。 該邏輯被編碼為“ PreDecorationFilter” 。 我的目標是在PreDecorationFilter之后對請求執行操作,并將后端指定為舊版或新版。 在此情況下,對請求起作用的過濾器如下所示:
import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; ...@Service public class RatioBasedRoutingZuulFilter extends ZuulFilter {public static final String LEGACY_APP = "legacy";public static final String MODERN_APP = "modern";private Random random = new Random();@Autowiredprivate RatioRoutingProperties ratioRoutingProperties;@Overridepublic String filterType() {return "pre";}@Overridepublic int filterOrder() {return FilterConstants.PRE_DECORATION_FILTER_ORDER + 1;}@Overridepublic boolean shouldFilter() {RequestContext ctx = RequestContext.getCurrentContext();return ctx.containsKey(SERVICE_ID_KEY)&& ctx.get(SERVICE_ID_KEY).equals("ratio-route");}@Overridepublic Object run() {RequestContext ctx = RequestContext.getCurrentContext();if (isTargetedToLegacy()) {ctx.put(SERVICE_ID_KEY, LEGACY_APP);} else {ctx.put(SERVICE_ID_KEY, MODERN_APP);}return null;}boolean isTargetedToLegacy() {return random.nextInt(100) < ratioRoutingProperties.getOldPercent();} }通過覆蓋filterOrder()方法,可以將過濾器設置為在“ PreDecorationFilter”之后執行操作。 路由邏輯相當幼稚,但在大多數情況下都可以使用。 解析serviceId之后,Spring Cloud將使用Ribbon來路由請求,并且僅出于變化目的,我在傳統呼叫中使用已配置的url,在現代后端呼叫中使用了Eureka。 如果您有興趣探索整個應用程序,可以在我的github存儲庫中找到
在完成整個設置后,通過對舊版處理20%的流量進行的小測試,可以確認過濾器有效地工作:
結論
Spring Cloud對Netflix Zuul的支持使處理這樣的路由方案變得輕而易舉,并且應該非常適合具有他們可能想要實現的這類路由方案的任何組織。
翻譯自: https://www.javacodegeeks.com/2017/05/ratio-based-routing-legacy-modern-app-netflix-zuul-via-spring-cloud.html
積分和人民幣比率
總結
以上是生活随笔為你收集整理的积分和人民币比率_通过比率路由到旧版和现代应用程序–通过Spring Cloud的Netflix Zuul...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: payara 创建 集群_高可用性(HA
- 下一篇: 如何选择合适的电脑电源电脑电源应该如何选