分散環境で Thrift サービスを見つけるために、Zookeeper の上にサービス検出レイヤーを構築しました。現在、これらのサービスを本番環境で実行するための最良の方法を探しています。
現在、Tomcat に展開される war をパッケージ化することによって行われます。TThreadPoolServer
サーブレットのインスタンス化中に、Tomcat の内部を作成する Spring ApplicationContext が作成されます。
私はいくつかの理由でこれが好きではありません:
- それは Tomcat を役に立たなくし、簡単な展開を容易にするためのハックのように感じます
- Tomcat のスレッド プーリングと、リクエストを分散する最善の方法を見つけ出すために必要なすべてのロジックを回避します。
これを処理するための最良の戦略を見つけようとしている過程で、いくつかの代替案を思いつきました。
- リサイクル サービスをスタンドアロン JAR として起動します (これは好きではありません。主な理由は、アプリ コンテナーの開発者が多くの時間を費やして取り組んできたロジックを再発明する必要があるためです)。
- HTTP 経由でホストを節約するため、Tomcat スレッド プールとサービス リクエストのロジックを利用します (これについては、マイナーではありますが、パフォーマンス ヒットが発生するため、不明です)
- これらのサービスをホストするために別のタイプのアプリケーション コンテナを使用する
以前に分散サーバーのホスティングをどのように処理したかについて、提案がある人はいますか? Tomcat 内で HTTP を使用した方が良いですか?