0

私の会社では、さまざまなマシンに自動的に展開され、相互に相互接続される (SOA スタイル) 多数のサービスを備えたクラスター化されたシステムを実装する計画があります。サービスには相互依存関係がある場合があります。

例: サービス B (アプリケーション) は、サービス A (データベース) が稼働している場合にのみ起動できます。

各サービスは、別の Java プロセスとして実行される予定であり、WAR (専用の tomcat 内) として展開されるか、Web がまったくない場合もあります。

今のところ、すべてのサービスが同じ WAR にあり、WAR をデプロイする単一の tomcat だけがあります。すべてのサービスは Spring を介して定義され、Spring が依存関係を管理します。

上記のように、分散環境でサービスを管理するのに役立つフレームワークが存在するかどうかを自問しています。

前もって感謝します

4

2 に答える 2

2

Netflixは、インスタンスを管理してクラウドにデプロイするオープン ソース ツールAsgardをリリースしました。EC2 と密結合されています (前回確認したとき)。アマゾン クラウドに展開するかどうかによっては、それが役立つ場合があります。依存関係をサポートしているかどうかはわかりませんが、分散環境での展開を管理します。Netflix はブログでサービスの依存関係について多くのことを話しているため、展開ソリューションにはそれを解決するための機能が含まれている可能性があります。

これを行う他のサービス/フレームワークは知りません。これを自分で作成する場合は、サービスをデプロイするJenkinsタスクをいくつか構成できると思います。あるタスクが別のタスクに依存して、サービスの依存関係をシミュレートできます。URL エンドポイントに ping を実行すると、B がデプロイされる前にサービス A が存在するかどうかを確認できます。

これを見る別の方法があります。サービスがすべて適切に実行されていることを確認すれば、依存関係を確認する必要はありません。ここでは、 Nagiosなどの監視ツールが役立ちます。障害のあるサービスをすぐにトラブルシューティングすることで、デプロイごとの依存関係を確認する代わりに、サービス A のデプロイに集中することができます。

于 2013-04-17T13:46:02.543 に答える