3

私の組織は、クライアントとサービスを統合するための共通語として Thrift メッセージングを採用することを選択しました。すべてのサービスは Scala で作成されます (または作成される予定です) が、クライアントは他の言語で作成されます。

現在 (私の知る限り)、Scrooge は Scala 用の唯一の Thrift IDL コンパイラであり、Finagle をターゲットにしています。スプレーでサービスを構築するオプションが欲しいです。

市販の (オープンソース) ソフトウェアを使用する場合、どのようなオプションがありますか?

4

1 に答える 1

5

私たちは熱心な Thrift/Finagle ユーザーであり、Finagle に匹敵するものは他にないと正直に言えます。

Finagle ですぐに使えるいくつかの機能:

  • Scrooge によるサービスとクライアントの自動コンパイル
  • データ構造の Java と Scala の両方との統合 (再びスクルージ)
  • Thrift の依存関係をプロジェクトに追加する機能 (Scrooge は、jar などの IDL を抽出してコンパイルします)。
  • maven-finagle-thriftScrooge の Maven フレーバーであるプラグインがあります。

Finagleについては、こちらをご覧ください。Finagle と比較すると、スプレーはおもちゃです。Finagle は、分散サービス向けの Scala ツールとしては群を抜いて優れています。

  • すぐに使用できるスケーラブルな集中ロギング (Zipkin)
  • 自動管理、メトリック、および Twitter Server のその他のさまざまな機能。
  • すぐに使える Zookeeper と Mesos の統合
  • 関心事 (ThriftMuxおよびハンドラーなど)の非常に効率的な分離
  • 高性能ツール用の多数のプロトコル
  • RPC リクエスト (アクターを使用できない場合) で Akka を簡単に上回る同時実行モデル。

Scala と深く統合されている他の Thrift オプションを私は知りません。Finagle の外に出る理由はほとんどありません。ただし、エコシステムから実際に利益を得るには、完全なエコシステムを使用する必要があります。

于 2014-01-29T16:21:35.540 に答える