問題タブ [grpc]
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.
spring - gRPC および Protobuf と一緒に Spring Boot を使用する
Spring Boot と一緒に gRPC を使用する例や考えがある人はいますか?
java - gradle を使用せずに grpc-java の例をビルドして実行する
grpc-java の例を作ろうとしています。gradle を使用している場合は確かに簡単ですが、別のビルド システムを使用するプロジェクトに grpc を統合します。protoc、javac、およびjavaのみを使用してサンプルをコンパイルおよび実行する方法を知りたいです。.proto ソースから Java ソースを生成できますが、生成された Java ソースをコンパイルできません。
1000 の組み合わせ (異なるクラスパス) を試しましたが、何も機能しません。
(その他99個のコンパイルエラーは省略)
機能する一連のコマンドを誰かが示すことができますか? ありがとうございました。
Upd:Linuxでこれを行っています。
Upd: 私は SBT を使用していますが、実際には問題ありません。私が本当に理解したいのは、javac を使用して生成された grpc コードをコンパイルする方法です。クラスパスにgrpc-core、grpc-netty、grpc-protobuf、およびgrpc-stubがあると確信しています(実際、この時点では何もわかりません...)。
protocol-buffers - 特定のバージョンで必要な依存関係
OS X で libgrpc を nixpkg としてビルドしようとしています。zlib、protobuf >= 3.0、および openssl >= 1.0.2 に依存しています。
これらのバージョンを最小として指定するにはどうすればよいですか? どちらも公式チャンネルに含まれており、両方とも正常にビルドされています。
私は nix にかなり慣れていないので、これは足を濡らそうとする私の試みです。今のところ、これは私が持っているものですdefault.nix
:
nix で libgrpc > 0.10 をビルドする方法を探しているか、または要件の最小バージョンを定義して自分で修正できるようにする方法を探しています。
ありがとう!
java - Grpc Java SSL 相互認証
Grpc Client がサーバーで SSL 認証を行うために、GrpcSslContext に何を設定する必要があるか知りたいですか?
現在、次のコードは、サーバーからクライアントへの通常の一方向 SSL 認証で機能しています。
サーバーでは、
クライアントでは、
https://github.com/grpc/grpc-java/blob/master/SECURITY.mdのgRPC によると、
相互認証が必要な場合は、適切な SslContext を作成することでこれをサポートすることもできます。
GrpcSslContexts を正しく初期化したのだろうか?
アドバイス/コメントをお待ちしております。
[アップデート]
さらにトラブルシューティングを行ったところ、CertificateRequest メッセージ ( https://en.wikipedia.org/wiki/Transport_Layer_Security#Client-authenticated_TLS_handshakeに記載) が、クライアント認証を開始するためにクライアントに送信されていないことに気付きました。
私のサーバー ログの抜粋は次のとおりです。
gRPC に固有のバグである可能性があるのではないかと疑い始めています。
c++ - gRPC サーバーが 1 つのクライアント接続のみをサポートできるようにする方法
現在、Java アプリ (クライアント) と C++ サーバー間の基本的なプロセス間通信に gRPC を使用することを検討しています。RPC 呼び出しは、明らかにスレッドセーフではない非常に古い C++ コード ベースの機能を使用します。通常、Java クライアントは複数の gRPC サーバー インスタンスを起動し、各サーバー インスタンスとの接続を 1 つだけ持ちます。gRPCサーバーでこれを確実に1つの接続のみを受け入れ、他のすべての接続試行を拒否する方法はありますか. それ以外の場合は、100% 正しいサーバー実装を実現するために、RPC 関数にグローバル ロックを導入する必要があります。
grpc - grpc-java サーバーがすぐにシャットダウンする
次のリンクから grpc-java チュートリアルをクイックスタートするためのすべての指示に従いました。
ビルドは成功しますが、サーバーを実行すると、次のような結果が表示されます。
pradnya@pradnya-VirtualBox:~/grpc-java/examples$ ./build/install/grpc-examples/bin/hello-world-server 2015 年 9 月 7 日 6:36:21 PM io.grpc.examples.helloworld.HelloWorldServer start INFO: サーバーが起動し、50051 でリッスンしています * JVM がシャットダウンしているため、gRPC サーバーをシャットダウンしています *サーバーがシャットダウンしています
grpc - 仮想マシンで grpc を使用する
kvm 仮想マシンで grpc の例を使用しています。私の目標は、クライアントとサーバーが共有メモリを介して通信できるように変更することです。私はすでに VM の共有メモリのメカニズムを持っていますが、grpc にいくつか問題があります。私の質問は次のとおりです。
どのファイルを変更する必要がありますか? 既に grpc を使用して hello World の例を実行しており、共有メモリ (../include/grpc++/impl/client_unary_call.h ? class BlockingUnaryCall ?) でプロトコルを使用するために変更したいと考えています。
ありがとう
c++ - クライアントから gRPC サーバーをシャットダウンする方法 (RPC 機能を使用)
C++ アプリ (gRPC サーバー) と Java アプリ (gRPC クライアント) の間のプロセス間通信に gRPC を使用しています。すべてが 1 台のマシンで実行されます。サーバーをシャットダウンするクライアントの可能性を提供したいと考えています。私の考えは、それを行うprotoでサービスにRPC機能を追加することです。
C++ 実装は次のようになります。
ただし、すべての RPC 呼び出しが処理されるまで ShutDown がブロックされるため、デッドロックが発生します。それを実装するエレガントな方法はありますか?
java - grpc サーバーが起動したときの膨大な数の io.netty.buffer.PoolThreadCache$MemoryRegionCache$Entry インスタンス
grpc-java
リモート呼び出しを処理するために、バージョン 0.8.0 サーバーを実行しています。サーバーのロジックは非常に単純で、指定された ID で指定されたデータを DB から取得してredis
キャッシュに設定するだけです。
JVM 引数は として設定され-Xss256k -Xmx8G
ます。JVM は、サーバーが起動するとすぐに 4 GB (RES 内top
) のメモリを使用し、約 400 QPS を処理しました。jmap コマンドを発行jmap -histo:live <pid>
し、次のダンプ ファイルを取得しました。
io.netty.buffer.PoolThreadCache$MemoryRegionCache$Entry
そこから、約 100MB のメモリを使用する膨大な数のインスタンスがあることがわかりました。grpc
( を通信層として使用していることに注意してくださいnetty
。) これは異常のようです。それでも、ヒープ内オブジェクトは 4GB のメモリを占有できませんでした。これは、netty
.
ヒープ外のメモリ リークはありましたか?
なぜこれが起こるのでしょうか?そして、この問題を解決または診断する方法は?
python - grpc get import エラー、未定義シンボルの使用: grpc_google_iam_credentials_create
ubuntu で grpc を使用していますが、run_codegen.sh で生成された *_pb2.py をインポートすると、次の ImportError が発生しました。
フィードバックをお待ちしております。