問題タブ [netflix-ribbon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - Eureka と Ribbon は非スプリング ブート アプリケーションで機能しますか?
Spring MVC システムを書き直しています。
このシステムは、単純に [Gateway<->Backend Services<->Databases]のようなものです。ここで、Gateway は単に認証とリクエストをバックエンド サービスに転送するためのコントローラーです。
バックエンド サービスはマイクロ サービスにリファクタリングされます。Eureka サービスを使用して、それぞれの登録を行います。したがって、最終的にアーキテクチャは[ゲートウェイ <-> Eureka <-> バックエンド マイクロサービス <-> データベース] になります。Gateway は Eureka サーバーからレジストリを検索し、マイクロ サービスを呼び出します。
ただし、Gateway は Spring Boot アプリケーションではありません (Spring Boot として書き直されることはありません)。そのため、Spring の eureka 機能 (@EnableEurekaClient 、DiscoveryClient など) を例のように簡単に採用できるとは思いません。実際に、ゲートウェイのコントローラーに eureka クライアント アノテーションを追加しようとしたところ、アプリケーションが崩壊しました。
さらに、クライアント側の負荷分散のために Gateway にリボンが必要です。しかし、上記と同じ懸念があります。
//11 月 1 日に更新 。Eureka サーバーとクライアントをセットアップしました。どちらも Spring Boot で記述されています。Spring MVC のテストには、これら 2 つのアプリケーションを使用しています。サーバーとクライアントは正常に動作しています。
サーバーの構成 application.propertiesは次のとおりです
クライアントは以下の通りです: application.yml
Eureka ダッシュボード localhost:8761 にアクセスすると、クライアントが登録されていることがわかります。
Spring MVC ゲートウェイは Spring ブート プロジェクトではないため、Eureka サーバーに接続して登録済みの「say-hello」クライアントのインスタンスを取得できるかどうかをテストするためだけに、例をプロジェクトにコピーしました。残念ながら、サンプル クラスの 76 行目に出力されている「eureka から対話するサンプル サービスのインスタンスを取得できません」というメッセージでは、そうすることができません。
これは、ゲートウェイのクラスパスに配置された eureka-client.properties です。Client クラスが設定ファイルを読み込んでいることが確認できました。
また、これはnew DiscoveryClient(applicationInfoManager, clientConfig);時のデバッグ情報です。実行中です
アイデアが不足しています。誰でもこの問題に手を貸してもらえますか?
kubernetes - kubernetes からの動的な宛先に対して、エウレカとリボンなしで zuul はどのように機能しますか
私はZuulの初心者です。kubernetes から動的宛先 (IP アドレス) 用の http プロキシーを作成したいと考えています。Can Zuul Edge Server を Eureka / Ribbon なしで使用できることを確認しましたが、これは役に立ちましたが、サーバーのリストを指定したくありません。
私が今持っているのは、spring-boot に基づいて ZuulFilter を拡張する simpleRouteFilter です。フィルターでは、kubernetes から取得した内容に従って宛先 IP アドレスを変更します。また、ribbon.eureka.enabled=false を使用して eureka をオフにします。
問題は、ローカル環境では問題ないように見えますが、プロジェクトを kubernetes にデプロイした後、ロード バランサーにクライアント用のサーバーがありません: sample-all-servicesと表示されますが、実際には機能します。ここにsample-all-service(サービスID)を入れたのは、プロパティのzuul configを削除するとzuulの機能が正常に動作しないためです。そして、そのIDは動的であるため、サーバーを配置しなかったことを知っています。
質問: (1) Zuul は私のシナリオに適合しますか? (2) はいの場合、ロードバランサーが使用できないという警告を表示せずにすべての http 要求を受け入れるように Zuul 構成を調整する方法。(3) それは kubernetes と関係がありますか?
ありがとう。
spring-cloud - 実行時に Zuul プロキシを動的に構成しますか?
次のような URL パスがあります。
の場合、リクエストは に送信されidentifier
ます。が である場合、リクエストは にも送られます。がの場合、リクエストは に送信されます。A
service_I
identifier
B
service_I
identifier
C
service_II
後で新しいidentifiers
M
とN
がシステムに追加され、それらの要求は にルーティングされる必要がありますservice_IV
。
上記のタスクを実行するように Spring クラウド zuul プロキシを動的に構成することは可能ですか?
編集
提供されるこの質問には、質問を調べるための別の方法が含まれています。
その中で、Zuul には次の構成があります。
Zuul は Eureka と協力して を見つけてservice-id
ホスト パラメータを返し、サービスにアクセスできるようにします。代わりに/path
、/{userID}
インスタンスuserID
が複数のservice_id
ホストに分散されている場合はどうなるでしょうか?
Zuul / the DiscoveryClient は、service_id
と の両方について Eureka にクエリを実行userID
して、特定の をホストしているホストを特定できuserID
ますか?
spring-cloud - Spring Cloud と Eureka のリボン
私は使っている
私の主なクラス:
私のサービス呼び出し:
次の例外をスローしています
microservices - クライアントからマイクロサービスにリクエストを動的にルーティングする方法
私が達成しようとしているのは次のとおりです。 1.バージョンが異なる同じタイプのマイクロサービスのセットがあります。例: アカウントのセット 1 (ms1-v1、ms2-v1、ms3-v1) とアカウントのセット 2 (ms1-v2、ms2-v2、ms3-v2) ここで、セット 1 のすべてのサービスはバージョン v1 です。バージョン v2 2 の set-2 です。Netflix Zuul を使用して、リクエストで指定されたバージョンに基づいてアカウントのマイクロサービス インスタンスを選択したいと考えています。
たとえば、バージョン v1 のアカウント サービスにアクセスしたいクライアントからの要求があったとします。上記の手順 2 により、ms1-v1、ms2-v1、および ms3-v1 のいずれかが返されます。各リクエスト バージョンでは、リクエスト ヘッダーの一部になります。
クライアント側の負荷分散にはリボンを使用します
よろしくお願いします。