問題タブ [spring-cloud-netflix]
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.
jwt - スコープとしての LDAP グループは、クラウド ファウンドリーの uaa authorization_code 権限付与タイプで機能しますか?
マイクロサービス環境を機能させようとしています。config-server、eureka-server、zuul-server、およびサービスはすでにセットアップ済みです。セキュリティを処理するために、Cloud Foundry の UAA サーバーをインストールして実行しています。
UAA サーバーのセットアップ方法に関するドキュメントに続いて、Ldap グループをスコープとして使用するオプションがあり、UAA サーバーのログでそれらがどのように作成されるかを確認できますが、JWT トークンには入りません。Zuul は UAA サーバーに正しくプロキシしています。UAA で認証プロセスを実行し、Zuul で JWT トークンを取得してから、zuul はそれを背後のサービスにプロキシしますが、ログインしているユーザーのグループ/スコープがなければ、openid スコープのみです。クライアント構成で。何か不足していますか?または、これが機能する方法であり、トークンからユーザーのユーザー名を取得し、各サービスの各リクエストでアクセス権限を取得するという回避策を実装する必要がありますか?
ここに私のuaa.ymlがあります:
angularjs - Spring Cloud、Netflix OSS - マイクロサービス オーケストレーション
私は最近、Spring Cloud と Netflix OSS を使用したマイクロサービス アーキテクチャの開発を含むプロジェクトを開始しました。マイクロサービスは RESTful であり、JSON 応答を生成します。
目標は、各マイクロサービスの JSON 結果を構成し (それらはそれらの間の依存関係である場合があります。たとえば、Service_B は計算を完了するために Service_A の出力が必要です)、それを UI (つまり、Angular.js シングル) でエンドユーザーに提示します。ページ)。
参考として、callista enterpriseのガイドに従いました。このガイドでは、3 つのサンプル マイクロサービス (製品、レコメンデーション、レビュー) の構成は、基本的に他のマイクロサービスへの http 呼び出しのシーケンスを実行する "product-composite" と呼ばれる別のマイクロサービスによって行われます。 .
この時点で、この構成/オーケストレーションのアプローチについて少し混乱しています。これは、拡張性がなく、新しいマイクロサービスがアーキテクチャに追加されるたびに大幅な変更が必要になるためです。
問題は、構造化されたフローでマイクロサービスを構成/オーケストレーションするための最良/適切なアプローチは何ですか?
単一の Angular.js ページで各サービスを構成することを探しましたが、必要なのは単一の API エンドポイント (/report としましょう) を呼び出して必要な計算全体を取得することであるため、各マイクロサービスを外部に公開することを懸念しています。
もう 1 つのオプションは Spring Integration のようですが、この種のアーキテクチャをこのテクノロジにマッピングする方法を明確にするドキュメントは見つかりません。
ヒント、ガイド、参考文献、提案をいただければ幸いです。ご協力ありがとうございました。
ルカ
java - Turbine can only find one host when using docker
I have 3 projects: A hystrix dashboard, a turbine server (using AMQP) and an API
When I start in development env, I set up 2 instances of the API (using port 8080 and 8081). To test the turbine aggregation, I make calls and in the dashboard, I can see Hosts: 2.
Although when I use Docker, even when the load balancer hits the 2 server, I only see one Host on the hystrix dashboard.
My assumptions:
1- as both containers start on the same port (8080), Turbine sees them as one
2- as I also dockerize RabbitMQ, this may be causing problems
here is my docker-compose.yml file
my persona_api config file
I'm afraid that if I deploy it to production (on Rancher or Docker cloud), I'll see the same problem.
here is a GIF of what is happening when I set up two APIs load balanced
java - RestTemplate によるストリーム ファイルのダウンロード
あるサーバーの RestController によって提供される大きなファイルのダウンロードがあり、別のサーバーの RestController を介してストリーミングする必要があります。エンド サーバーを直接呼び出すと、結果が正常にストリーミングされます。ただし、RestTemplate を使用してこのサーバーを呼び出し、応答を OutputStream に書き込む場合、応答はファイル全体の準備が整うまでフロント サーバーでバッファリングされ、その後ストリーミングされます。ファイルが入ってきたときに、そのファイルを OutputStream に書き込む方法はありますか?
現時点では、フロントサーバー上の私のコードはこれに似ています
RestTemplate をバッファリングしないように設定し、使用されているリクエスト タイプ (SimpleStreamingClientHttpRequest) をチェックして、これが機能していることを確認しました。データはすべて正しく返されます。ストリームに書き込まれるのではなく、一度に書き込まれるだけです。
spring-boot - Eureka メタデータの起動タイムスタンプ
Netflix Eureka および Spring Config Server で Spring Cloud Angel.SR6 を使用しています。私たちのマイクロサービスの 1 つは、ピアを見つけるための発見メカニズムとして Eureka を使用する分散システムです。複数のインスタンスが並行して起動されたときにシステムを正しい方法で起動するには、どのノードが最初に起動したかを知りたいと考えています。Eureka のアプリケーション情報にはいくつかの異なるタイムスタンプが含まれていますが、Eureka クライアントがステータスを更新すると変更されるため、信頼できないようです。
ここでのアイデアは、アプリケーションが独自のブート タイムスタンプを Eureka に登録するmetadataMapことEurekaInstanceConfigBeanです。ただし、このアプローチでは、タイムスタンプがプロセスの後半に追加されます。インスタンスは最初、タイムスタンプなしで Eureka に表示されます。
代わりに、最初の Eureka 登録に含まれるタイムスタンプを取得しようとしています。で宣言されたプロパティbootstrap.propertiesが含まれているため、ここで何らかのタイムスタンプを取得できれば、すべてが機能します。
eureka.instance.metadataMap.bootTimestamp=<here we want the timestamp>
Spring Cloud DocumentationPropertySourceLocatorに記載されているアプローチを使用してカスタムを追加しようとしましたが、まだうまくいきません。最初の Eureka 登録は、PropertySourceLocator が初期化される前に行われますが、これも遅すぎます。
アプリケーションがタイムスタンプなしで Eureka に表示されないように、最初の Eureka 登録の前にブート タイムスタンプを環境に取得するにはどうすればよいでしょうか?
spring-boot - スプリング ブート アクチュエータなしでスプリング クラウドで zuul を使用するには?
アプリケーションで zuul をプロキシ サーバーとして使用したいのですが、Spring Boot アクチュエーターは使用したくないため、次のように依存関係から削除しようとしました。
ただし、一部の ClassNotFoundException が発生します。アプリケーションにスプリング ブート アクチュエータは必要ありませんが、スプリング ブートには非常に多くの自動構成があり、不要なエンドポイントが多数生成されます。これを解決する良い方法はありますか?
spring - SpringClientFactory AppContext のスコープ Bean をリクエストする
SpringClientFactoryカスタム でリボン クライアントを作成するためにを使用していますcom.netflix.niws.client.http.RestClient。これRestClientは、@Beanリクエスト スコープ (つまり@Scope("request")) である と結び付けられます。これはすべて、Brixton リリース トレインの一部として行われます。
これSpringClientFactoryにはApplicationContext、特定の に対して独自にインスタンス化する がnameあり、このコンテキストにはスコープが登録されていません。
を拡張する回避策がありますSpringClientFactoryが、少しぎこちなく感じられ、利用可能な の型に関する仮定を行いBeanFactoryます。
内で代替 Bean スコープ (リクエスト、セッション、グローバルセッション) を使用しようとした人はいSpringClientFactoryますか?
これは、Spring Cloud のメンテナーに向けられたものです。スコープが親コンテキストから 内で作成されたものに伝播されないという意識的な理由はありNamedContextFactoryますか? ただの見落としになりそうです。
spring-boot - Spring Service Discovery の制限
このページをフォローしました: https://spring.io/guides/gs/service-registration-and-discovery/
そして今のところ問題ありません。自動検出される Spring サービスを登録できます。
特定のドメインでアクセス可能なサービスを検出する必要があります (たとえば、TEST と PROD を区別するため)。
これは、実行される 2 つの検出サービスがあることを意味します。1 つはmyTestDomain.domain.chでのみサービスを取得し、もう 1 つはmyProdDomain.domain.chでのみ取得する必要があります。
誰でも区別を行う方法を知っていますか?
spring - jettyデーモンを設定すると、shutdownhookによるスプリングブートアプリケーションのシャットダウン?
私は zuul アプリケーションを作成し、デフォルトの tomcat を jetty に置き換えました。ジェットの高度な設定(スレッドプールなど)のために、独自の CustomJettyEmbeddedServletContainerFactory を実装します。
}
問題は、 を設定threadPool.setDaemon(true)すると、アプリケーションが shutdownhook によって正常にシャットダウンされることです。何がこれを実現させるのですか?何か案が?
私の spring-boot バージョンは 1.3.5.RELEASE、spring-cloud-netflix バージョンは 1.1.2.RELEASE です。
これが私のログの一部です。
