問題タブ [grpc-java]
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.
protocol-buffers - プロトコル バッファから階層ジェネリック リクエストへの変換
grpc マイクロ アーキテクチャの移行を計画しています。そのため、プロトコル バッファ Request オブジェクトを既存の POJO オブジェクトに、またはその逆に変換するための汎用アダプタが必要です。
現在のシナリオでは、次のものがあります:-
ServiceRequest<Student>
上記のシナリオのように、汎用POJO オブジェクトに変換する必要があります。プロトコル バッファ オブジェクトには 2 つの部分があります。
- RequestIdentity - ServiceRequest の作成を担当します。
- id と name - Student のペイロードです。
同様に、一般的なアダプターを使用して別のリクエストを変換しますか? 何か案が
grpc - サーバー インターセプターで gRPC 呼び出しに応答する
サーバーインターセプター内で呼び出しを検証し、おそらくエラーで応答したいと考えています。それを行う方法はありますか?はいの場合、どうすればそれを達成できますか?
java - プロトコルバッファコンパイラを使用して、サービスの抽象クラスの代わりに Java インターフェイスを生成する方法は?
プロトコル バッファ コンパイラを使用して、サービスの抽象クラスの代わりに Java インターフェイスを生成するにはどうすればよいですか?
現在、 .protoファイルを受け取り、インターフェイスの代わりにサービスの抽象クラスを生成する Gradle プラグインを使用しています。Java では複数のクラスを拡張できないため、これは問題になる可能性があります。
ドキュメントを調べた後、これまでのところ解決策や方法を見つけることができなかったので、何か助けていただければ幸いです。
私のbuild.gradleは次のようになります
廃止されたように見えるインターフェイスを生成していない理由を見つけたので、インターフェイスを生成する方法がわかりません。私のbuild.gradle option 'enable_deprecated=false'
を見ると、これをtrueにするとインターフェースが生成されますが、注釈は非推奨であると言っているので、インターフェースを生成する新しい方法が何であるかわかりません。抽象クラスではなくインターフェイスが必要です。
grpc - マップ フィールドのキーは、float/double、bytes、またはメッセージ タイプにすることはできません
既存のサービスを grpc サービスに移行する予定です。そのため、サービスを proto 定義済みメッセージ タイプに変換する必要があります。応答には、customize オブジェクトをキーとしてマップがあります。
例:
公式ドキュメントでは、彼らは次のように述べています。
ここで、key_type は任意の整数型または文字列型 (つまり、浮動小数点型とバイトを除く任意のスカラー型) にすることができます。value_type は任意の型にすることができます
proto3 でオブジェクトキーマップをカスタマイズする別の方法はありますか?
java - grpc-java でフェイルオーバーをサポートする公式の方法はありますか?
grpc-javaを使用する場合、フェイルオーバーをサポートするための推奨される方法はありますか?
たとえば、あるサーバーに接続していて、そのサーバーがダウンしたとします。そこから回復するための推奨される方法は何ですか?
LoadBalancer
体験授業を見てきました。問題を解決することを目的としていますか?さまざまな Interceptor クラスもありますが、それらを使用して接続エラーに対応する方法がわかりません。
grpc-spring-boot-starterを使用していますが、フェイルオーバーのサポートも表示されません。
私が避けたいのは、ビジネス クラスですべての再接続を処理することです。たとえば、そこで例外をキャッチし、次に使用可能なサーバーへの接続を構築します。可能であれば、透過的に処理する必要があります。
java - grpc と protobuf で io.netty.util.AttributeKey.valueOf() メソッドの NoSuchMethodError に直面する Hello world の例
GreetingServerTest.java テストを実行した後、以下のエラーが表示されます。私はgrpc 1.1.0-SNAPSHOTライブラリを使用しており、gitリポジトリにあるgrpcの基本的なHellowordの例を実装しようとしています。不足しているライブラリを誰か提案してもらえますか、それとも他にやらなければならないことがありますか。
pom.xml
hello_world.proto ファイル
GreetingServerTest.java
java - java-grpc: ManagedChannel のメッセージ サイズ制限を増やす方法は?
私たちの通信は、メッセージ サイズのデフォルトのgrpc-java制限を超えています。
その制限を増やすことができます。https : //github.com/grpc/grpc-java/issues/917 から参照してください。
Channel/Server ビルダーで maxMessageSize() を設定します。
Channel
ただし、コード ベースに修正を実装しようとすると、すべての実装にメソッドがあるわけではないため、その方法が明確ではありませんmaxMessageSize
。
私たちのコードはManagedChannel
. セットアップ コードは次のようになります。
何か足りないのかもしれませんが、 の最大サイズを増やす方法がわかりませんManagedChannel
。のみがOkHttpChannelBuilder
持っています ( OkHttpChannelBuilder#maxMessageSize
)。
質問:
- を使用してメッセージの制限を増やすにはどうすればよい
ManagedChannel
ですか? - でそれができない場合
ManagedChannel
、デフォルトの制限を増やすことをサポートする別のチャネル実装を使用するようにコードを書き直すにはどうすればよいですか?