問題タブ [finagle]
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.
scala - Finagle の RoutingService で Filtered Service を使用する方法
公正な警告、私は Scala を初めて使用するので、ここで単純なものが欠けている可能性があります。
私はこのコードを持っています、それはうまくいきます
しかし、その Authorize フィルターを自分のサービスに追加したいと考えています。これを追加すると:
コンパイル エラーが発生します。
サービスのタイプを Service[HttpRequest, HttpResponse] に変更すると、routingService として使用できなくなります。
これらの型のエラーが原因で、ルーティング サービスをフィルターで動作させるのに苦労しています。
ありがとう!
編集:
以下の@Septemの回答を使用して動作するコードの例を追加したかっただけです。これをフィルターに使用します。
finagle と scala についてはまだ少しぼんやりしていますが、ここで起こっていたことは、特定のタイプのサービスを既に想定している SimpleFilter を使用していたことだと思います。
scala - Finagle で静的リソースをホストする方法
Finagle で、javascript や css ファイルなどの静的リソースをホストしようとしています。
なんとか機能させましたが、ルーティング サービスのリソース フォルダーへのすべてのルートを具体的に構成する必要があります。例えば:
と
public
とで任意のリソースを取得できるようになりましたが、さらに構成しpublic/bootstrap/css
ないと取得できません。public/bootstrap/js
scala - Finagle と Akka、一緒に使ってみませんか?
実際に Finagle も Akka も使用したことはありませんが、それらについてはたくさん読んでいます。
Finagle は RPC システムであり、Akka は高度な並行アプリケーション用のツールキットです。なぜすべての人が、それらを一緒に使用できない 2 つの可能なソリューションとして比較するのでしょうか? 私が行ったすべての検索では、どちらか一方を使用することを提案していますが、それらを一緒に使用することを提案している人はいません。
たとえば、Finagle には、thrift とその IDL を介してエンドポイントを定義する非常に興味深い方法があります。この IDL を使用すると、カスタム エンドポイントを定義でき、scooge などのコード生成ツールを使用して、簡単にサービスを作成できます。また、このサービスに接続するためのクライアントが作成され、多くの一般的なクライアントの問題が自動的に解決されます (再接続、タイムアウト、再試行、負荷分散、接続プーリングなど)。
代わりに、Akka は多くの同時実行の問題を解決し、手作業で制御されたスレッド化の複雑さをまったく排除して、非常にうまくスケーリングします。
まとめとして、それらを一緒に使用してみませんか?:
- Finagle + Thrift (IDL を使用): サービスの設計と開発、および展開 (スケールアウトの容易さを含む) を容易にします。
- Akka: アクター システムを介してすべてのサーバー パワーを使用し、サーバー プロパティを変更すると (たとえば、EC2 にデプロイされ、ノードを m1.small から m1.large に変換した場合)、非常にうまくスケーリングします。
どう思いますか?
注: Futures と Promises のマッピングの問題、および FuturePools と ExecutionContexts の間の不一致が解決されたと仮定します。パターンは、Finagle を Future を使用する scala の方法に変換することです。
scala - Twitter の Future[Map[A, Future[C]]] を Future[Map[A, C]] に変換する方法
次の問題を修正しようとしています。
Future[Map[A, B]] があります。すべての B に対して、B を Future[C] に変換するメソッドを適用する必要があり、Future[Map[A, C]] を返したい
これが私がこれまでに持っているコードです:
Iterable[Future[(Int, ClientData)]] を返すため、このコードは間違っています。
参考までに、getClientsは、Map が変更可能なFuture[Map[A, B]]を返す倹約メソッドであるため、最初に toMap を使用して不変のマップに変換する必要があります。
よろしくお願いします。