0

私たちは、ウェブアプリケーション用のインテリジェントルータとしてZuul(そしてマイクロサービスもこの質問とは正反対です)を持つ意図でアプリケーションインフラストラクチャを設計しています。Netflix Zuul - ルーティングに影響を与えるルックアップメタデータ?

私はZuulが動作するように望んでいる方法を理解に苦しんでいると私は私は私がやりたい方法を理解することができますので、私はいくつかの有益な概要を見つけることができないことに失望です。誰もがこのような参照を知っていますか?

私たちは、私は(と場合)Zuulがどのように処理するかを理解する難しさを抱えている二つの要求を持っています。

  1. アプリケーションのバージョンベースのルーティングを実装したいと考えています。また、クライアントがアップグレードモードになっている場合は、「もう一度お試しください」ページが表示されます。

  2. 我々は、Webアプリケーションのためのスティッキーセッションと一緒に暮らす必要があります。

バージョンベースのルーティングでは、メタデータの分散キャッシュを利用できるマイクロサービスにアクセスできます。キャッシュには、インフラストラクチャに関連するクライアント情報があります。リクエストURLからクライアントを特定することができます。

だから、私たちは事前にフィルタで、クライアントのルックアップを行うと、ルーティングフィルタに、その情報に基づいてインテリジェントな何かを考えています。誰かが私にこれを始めることができますか?スティッキーセッションのために

、私は以下のが見つかりました:

Sticky Sessions using Ribbon

これは私にとって非常に巧妙に見えると私が探しているものをのようです。しかし、私はこれがどのように機能するかをよりよく理解したいと思います。誰かに助言することはできますか?バージョンベースのルーティングに関するあなたの最初の要件については

+0

github.comリンクが壊れている – rjdkolb

答えて

1

、あなたはバージョン接尾辞を使用してmicroserviceを登録することができます。例えば、ユーレカサーバでは、サービスの2つの異なるバージョンABCとして登録するために:Zuulで

 
|--------------|---------|--------------|-------------| 
| Application | AMIs | Availability | Status  | 
|    |   | Zones  |    | 
|--------------|---------|--------------|-------------| 
| ABCV1  |(n/a) (1)|  (1) | UP(1) host1 | 
|--------------|---------|--------------|-------------| 
| ABCV2  |(n/a) (1)|  (1) | UP(1) host2 | 
|--------------|---------|--------------|-------------| 

、あなたはURLとサービスIDに基づいてルートを作成することができます。たとえば、

zuul: 
    ignoredPatterns: /health/** 
    routes: 
    abc1: 
     path: /v1/abc/** 
     stripPrefix: false 
     serviceId: ABCV1 
    abc2: 
     path: /v2/abc/** 
     stripPrefix: false 
     serviceId: ABCV2 
関連する問題