問題タブ [grpc-go]
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.
grpc - grpc-go のセッションとリモート IP アドレス
grpc-go では、サービスを実装するときに、サービス インターフェイスはメソッドを定義し、 と のみContext
を含みますRequest
。のソースからContext
、それは次のように簡単です
したがって、セッションを維持するために何らかのメタデータ (リモート IP アドレスやその他のデータを含む) を取得できるかどうか疑問に思います。
ありがとう。
debugging - gRPC-Go サービスをデバッグするにはどうすればよいですか?
gRPC-Goを使用することは、回復力があり、パフォーマンスが高く、スケーラブルな分散システムを構築するための良い方法です。私がよく理解していないのは、それで書かれたサービスを実際にデバッグする方法です。また、サポートされているワイヤ プロトコルは HTTP/2 だけですか?
go - protoc-gen-go struct xxx を map[string]interface{} に変換
.protoファイルによって生成された.pb.goファイルの構造体には、3 つの追加フィールドと、次のようなその他の要素があります。
この構造体をjsonに変換するとき、1 つのフィールドが空の場合、そのフィールドは json に表示されません。これで、 jsonpb.Marshalerを使用して実行できることがわかりました。
今、私は構造体をmap[string]interface{}に変換し、 InfluxDBに入れ ます。構造体を map[string]interface{} に変換する必要があります。関数NewPointが必要です。このような:
go でstructs.Map(value)関数を使用します。変換されたマップには 3 つの追加フィールドがあり、プログラムを実行すると次のようなエラーが発生します。
これらの 3 つのフィールドを削除すると、プログラムは正常に実行されます。これらの 3 つのフィールドは自動的に生成され、多くの構造体があります。どうすればいいですか?ありがとうございます!
go - gRPC サービスの Envoy プロキシ「再試行」メカニズムの構成
Go で記述された gRPC サービスの Envoy プロキシ「再試行」メカニズムを構成しようとしています。現在、gRPC の再試行は、応答ヘッダーの gRPC ステータス コードに対してのみサポートされています。Envoy がインターセプトできるように、ヘッダーでステータス コードを送信する方法はありますか?
go - 行.Scan() int32をGolang gRPC protobuf Enumフィールドに入れる方法は?
次に、SQL 行をエージェントの protobuf 構造体にスキャンします。
その権限タイプはvalue = 0
、デフォルト タイプのシンプルな MariaDB INT() として保存されます。そのため、直接スキャンすることはできません。そのため、temp struct whereType int32
を作成し、temp struct フィールドを protobuf struct にマップしようとした後、行をその temp struct にスキャンしましたが、うまくいきませんでした。MariaDB 文字列値を []byte 型フィールドにスキャンするときに発生した同様の問題がありましたが、 temp struct で解決しました[]byte(tmp.UUID)
。
非標準の protobuf フィールド タイプが使用されている場合に、データベース ROW (単一行) をスキャンして protubuf メッセージにする一般的なパターンは何ですか?
編集:追加の0
値の処理が必要ですか?