ゲートウェイサービスカスタムルーティングルール(springcloud +ナコス)

1.シーン記述

ゲートウェイ(危険な再起動)再起動することなく、即効性と、各クラスにルーティングルールのカスタム構成を提供するゲートウェイのサービスを提供する必要が、ファイルをロードする動的負荷カスタムファイルのルーティング、動的ルーティングルールを実装して、単にファイルを支配その上にルールを設定

2.ソリューション

2.1ソリューション

次いで、総監視、監視サービスゲートウェイルーティングルール設定ファイルは、各ルーティング設定ファイルとの新しい一般的なカテゴリは、変更が動的springclouゲートウェイにロードされたかどうか、ファイルコンテンツ自体の内容を監視します。

2.2コンフィギュレーションルールの説明

BC-ruanjianlaowang-all.yamlがロードするコンフィギュレーションファイル名で、新しいカスタムルーティングルールファイルを追加するとき、それは自動的にカスタムルールを磨くために行くだろうが作成聞いています。

gateways: bc-ruanjianlaowang-demo.json,bc-ruanjianlaowang-auth.json

カスタムルーティングルールファイルを作成し、ファイルがすでにBC-ruanjianlaowang-demo.json、2つのゲートウェイサービスを構築している、BC-ruanjianlaowang-auth.json、単にカスタムルールを設定することができ、他のゲートウェイがあるフォローアップサービスが利用可能です新しいカスタムルールBC-ruanjianlaowang-all.yamlでJSONファイルと設定ファイル名は、ゲートウェイを再起動しない、それが自動的にリアルタイムで動的ロードで有効になります。

2.2.1ルールイラスト
[
    {
       "id": "demo-router3","uri":"lb://demo","order": 0,
       "filters": [{"name":"StripPrefix","args":{"_genkey_0":"1"}}],
       "predicates": 
       [{"args": {"pattern":"/demo/test/v?1"},"name":"Path"}]
    } 
]
i'm 软件老王 

説明:

(1)「ID」:「デモ-router3を」と、本センター名+ルータ+ IDと可能な限りIDは一意です。

(2)「URI」:「ポンド://デモ」、レジストリサービス名で他のセンターがあるかもしれない、複数のサービスは、デフォルトのロード・バランシング、ポーリングアクセスバックによって提供される対応するサービスがある場合、これが可能設定:「URI」:「http://10.192.168.10.:8010/」、このような構成は、旧サービスのレジストリに登録されていないが、あなたがパスを設定する必要があります。

(3)「フィルタ」:[{「名前」:「StripPrefix」、「引数」:{「_ genkey_0」:「1」}}]、意味がデフォルトのパスは、アクセスデモを除去するための第一の層を除去することと等価です

(4)[{ "引数":{ "パターン": "?/デモ/試験/ V 1"}、 "名前": "パス"}]、これは特定のカスタム構成規則であり、以下の規則に従って実施しますコンフィギュレーション。

2.2.2パスカスタムルールヘルプ

AntPathMatcherの春のパスを使用してspringcloudゲートウェイが一致するため、命令は直接Baiduの表情可能コピーされたコンフィギュレーションルールをカスタマイズするのは簡単。

(1)以下のようにルールが一致するURLを行うことができ

1つの文字にマッチします

* 0個以上の文字と一致し

**ゼロ個以上のディレクトリーに一致し

(2)例えば、使用

/trip/api/*x       匹配 /trip/api/x,/trip/api/ax,/trip/api/abx ;但不匹配 /trip/abc/x;
/trip/a/a?x        匹配 /trip/a/abx;但不匹配 /trip/a/ax,/trip/a/abcx
/**/api/alie       匹配 /trip/api/alie,/trip/dax/api/alie;但不匹配 /trip/a/api
/**/*.htmlm        匹配所有以.htmlm结尾的路径

/app/*.x             匹配(Matches)所有在app路径下的.x文件
/app/p?ttern         匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern
/**/example        匹配(Matches) /app/example, /app/foo/example, 和 /example
/app/**/dir/file.  匹配(Matches) /app/dir/file.jsp,    /app/foo/dir/file.html,/app/foo
                                    /bar/dir/file.pdf, 和 /app/dir/file.java
/**/*.jsp       匹配(Matches)任何的.jsp 文件
i'm 软件老王 

(3)さらに説明

定期的なサポートのためspringcloudや春パスの試合は非常に良いではありませんが、また、使用することができ、単にそれを見ていました。

符号 {spring:[a-z]+}
示例代码:
@RequestMapping("/index/{username:[a-b]+}")
@ResponseBody
public String index(@PathVariable("username") String username){
    System.out.println(username);
    return username;
}
结果:

index/ab        true  输出 ab
index/abbaaa    true  输出 abbaaa
index/a         false 404错误
index/ac        false 404错误
i'm 软件老王 

ゲートウェイソースコードはすべてデフォルトのサービス開いて、新しいコードが設定されていない場合は、ジャンプを禁止します、カスタムルールに従うものとします。


私は、「ソフトウェアファラオは、」私は、次の聖歌を集中するために、私は可能性がある場合、その後の更新秒を知っていると感じましたよ!ようこそフォーラム号の同名のパブリックメッセージ交換!

おすすめ

転載: www.cnblogs.com/ruanjianlaowang/p/11713655.html