問題タブ [akka-http]
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 - akka-http を使用して src/main/resources からファイルを返す
プロジェクトのリソース フォルダー src/main/resources にファイル abc.txt があります。ファイルを提供するはずの次のコードスニペットがあります。
私も次のことを試しました
どちらの場合も、次のエラーが表示されます
タイプ routing.Route の式が、予期されるタイプ toResponseMarshallable に準拠していません
私の唯一の要件は、このリクエストを受け取ったときにファイルを提供できることです。解決策をグーグルで検索しましたが、何も見つかりませんでした。注: 私は Scala/Akka の初心者です
scala - ルーティング ディレクティブを定義するときに暗黙的なパラメーターを使用することは可能ですか?
次のように定義されたディレクティブがあります
しかし、パラメータを明示的に渡さなくても使用できるようには見えませんlogin
これをコンパイルしようとすると、型の不一致で失敗します:
マークされた行を変更するallowedRoles(Administrator)(login)
と機能しますが、これを行う必要はないようです。何が欠けていますか?
scala - Akka Httpは、Acceptヘッダーに基づいて異なるタイプの応答を返します
私はscalaとAkka-Httpの初心者です。残りのサービスを書くための Akka-Http の実験。ヘッダーに基づいて json または protobuf を返す必要がありAccept
ます。
コードの繰り返しが発生していることがわかるように、このような状況を回避するために設計を最適化および一般化するための最良の方法を誰でも提案できます。
scala - Akka HTTP サーバーおよびクライアントを使用した Akka ストリーム
外部サービスを使用して IP アドレスであることをユーザーに伝えるエンドポイントを Akka Http Server に作成しようとしています (これは簡単に実行できることはわかっていますが、これは挑戦として行っています)。
最上層でストリームを使用しないコードは次のとおりです。
そしてそれはうまくいっています。ただし、課題として、ストリームのみを使用するように制限したいと思いました (noFuture
の)。
これは、この種のアプローチに使用すると考えたレイアウトです
。Source[Request] -> Flow[Request, Request] -> Flow[Request, Response] ->Flow[Response, Response]
また、404 ルートに対応するためにもSource[Request] -> Flow[Request, Response]
. さて、もし私の Akka Stream の知識が役立つのであれば、Flow.fromGraph
そのようなことには a を使用する必要がありますが、ここで行き詰まっています。
さまざまなFuture
エンドポイントに対して簡単なマップと flatMap を実行できますが、ストリームでは、フローを複数のフローに分割することを意味し、それをどのように行うかはよくわかりません。UnzipWith と Options または一般的なブロードキャストを使用することを考えました。
この件に関するヘルプは大歓迎です。
これが必要な場合はしませんか?-- http://doc.akka.io/docs/akka-stream-and-http-experimental/2.0-M2/scala/stream-customize.html
json - Akka HTTP ストリーミング JSON デシリアライゼーション
Akka HTTP からドメイン オブジェクトに、長さが不明な外部ストリームを動的に逆シリアル化することは可能ですか?ByteString
環境
成長し続けるa を出力する、無限に長いHTTP
エンドポイントを呼び出します。JSON Array
java - 複数 (10k - 100k) のリクエストに対して Akka HTTP クライアントを適切に呼び出す方法は?
Akka HTTP 2.0-M2 を使用してバッチ データ アップロード用のツールを作成しようとしています。しかし、私は直面していますakka.stream.OverflowStrategy$Fail$BufferOverflowException: Exceeded configured max-open-requests value of [32] error.
私は問題を切り分けようとしましたが、これも失敗するサンプル コードです。
次のエラーで失敗します。
これは、多くの Future を作成して一度に実行しようとしているからだと思います。しかし、Akka はバックプレッシャを有効にするべきではありませんか? 使い方が間違っていると思います。私は superPool メソッドを試しましたが、私が理解しHttp.singleRequest
ているように、内部に同じプールがあるため、何も変わりませんでした。また、ループで呼び出す代わりに Http インスタンスを再利用しようとしHttp.get()
ましたが、それも役に立ちませんでした。
リクエストのバッチを起動する正しい方法は何ですか? 10,000 から 100,000 のリクエストのバッチを実行する予定です。
scala - サーバーから akka-http websocket 接続を閉じる
私のシナリオでは、クライアントが "さようなら" websocket メッセージを送信し、サーバー側で以前に確立された接続を閉じる必要があります。
akka-http docsから:
接続を閉じるには、サーバー ロジックから着信接続フローをキャンセルします (たとえば、その下流を Sink.cancelled に接続し、その上流を Source.empty に接続するなど)。IncomingConnection ソース接続をキャンセルして、サーバーのソケットをシャットダウンすることもできます。
しかし、それを考慮してそれを行う方法は明確ではなくSink
、Source
新しい接続をネゴシエートするときに一度設定されます:
scala - Akka-http マージ着信接続
次の問題を解決するために、akka-streams と akka-http を使用しようとしています。
- 2 つの http クライアント (A および B) が 1 つの http サーバー (C) にリクエストを送信します。どちらの側も akka-http を使用して通信します。
- A からの要求は B に比べて優先度が高くなりますが、両方の要求が同等に処理される必要があります。したがって、C は A からの要求を最初に処理し、B からの要求は 2 番目に優先されます。
- もちろん、両端でバックプレッシャーを有効にしたいと考えています
着信接続を 1 つの出力にマージするために、次のコードを考え出しました。
したがって、A と B からの IncomingConnection インスタンスを持つソースがあります。
今、私はそれらを何らかの方法で処理し、応答を生成し、対応する接続に応答を送信したいと考えています。
これらすべてをアーカイブするためのより良い方法があるかもしれませんが、ドキュメントや他の人からの質問でそのような問題を解決する例を見つけることができませんでした.
また、問題はかなり一般的だと思います。
よろしくお願いします。