问题标签 [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.
java - 从客户端干净地关闭 GRPC-Java 中所有打开的流
我正在使用 GRPC-Java 1.1.2。在一个活动的 GRPC 会话中,我打开了一些双向流。当客户端断开连接时,有没有办法从客户端清除它们?当我尝试断开连接时,我运行以下查找固定次数然后断开连接,但我可以在服务器端看到以下错误(但不确定它是否由另一个问题引起):
与客户端断开连接
服务器上的错误
java - 如何在客户端使用 Java 读取 gRPC 中的元数据
我正在使用 Java 和 Protoc 3.0 编译器,下面提到了我的 proto 文件。 https://github.com/openconfig/public/blob/master/release/models/rpc/openconfig-rpc-api.yang
为了进行服务调用(rpc TelemetrySubscribe),首先我需要读取具有订阅 ID 的标头,然后开始读取消息。现在,使用 Java 我能够连接到服务,我确实引入了拦截器,但是当我打印/检索标头时它为空。我调用拦截器的代码如下,
这是读取元数据的拦截器代码。
想知道有没有其他方法可以读取包含订阅 ID 的元数据或第一条消息?我只需要读取具有订阅 ID 的第一条消息,并向服务器返回相同的订阅 ID,以便可以开始流式传输
从上面的 python 代码我可以很容易地检索元数据对象,不知道如何使用 Java 检索相同的对象?
阅读元数据后,我得到的是:Metadata({content-type=[application/grpc], grpc-encoding=[identity], grpc-accept-encoding=[identity,deflate,gzip]})
但我知道从元数据到它还有一条线,那就是
如何从包含订阅 ID 的 Header 中提取最后一个响应。我确实尝试了很多选择,但我在这里迷路了。
java - 读取头数据的回调方法卡住了。使用 Grpc JAVA
我正在使用 Protoc 3.0 并编写了回调方法来使用 java 读取 GRPC 流数据。
现在我看到的是,一旦我到达 onHeaders Metohd,程序就会无限期地等待。这正常吗。一旦完成标头方法,我如何恢复读取正常的流数据?
EDIT-1 所以链接就像-
java - GRPC 服务器获取客户端取消
我已经为带有 grpc 的网络摄像头流创建了一个微服务。流工作正常,但流的取消仅在客户端有效。
如果客户端调用 CancelableContext.cancel,视频流停止,但服务器仍在使用 cam 流式传输视频。如果调用取消,服务器会抛出一个传输失败异常。
是否可以捕获此异常以在服务器端停止流式传输或其他操作?
流式传输从一个简单的请求开始,该请求具有一个带有 State.START 的枚举。如果我调用上面的代码将状态更改为 STOP 我成为一个例外:
我读过这可能是一个错误。
是否可以在服务器端获取 Sessions 或 Connections 或其他东西?
谢谢
kubernetes - gRPC 负载均衡
我已经阅读了https://github.com/grpc/grpc/blob/master/doc/load-balancing.md上的负载平衡页面,但仍然对后端 GRPC 之间负载平衡的正确方法感到困惑实例。我们正在部署多个 gRPC“微服务”实例,并希望我们的其他 gRPC 客户端能够在它们之间进行路由。我们将这些部署为 Kubernetes(实际上是 Google Container Engine)中的 pod。
谁能解释在 gRPC 服务器之间负载平衡 gRPC 客户端请求的“推荐”方法?客户似乎需要了解端点——难道不能利用 Container Engine 中内置的 LoadBalancer 来提供帮助吗?
protocol-buffers - protobuff 编译器如何区分不同的服务及其具有相同标识符/标签的消息?
问题是关于反序列化过程。我认为第一个字节描述了标签和相应的在线类型。但是如果两个服务在他们的消息中使用相同的标签/标识符和数据类型呢?
java - Wildfly Swarm 中的类加载如何工作?请求期间的 NoClassDefFoundError
我有一个微服务野蝇群。它有一些从 google protobuf 生成的代码。但是如果我从命令行使用 java -jar ..... 开始并从浏览器调用服务器,我会得到以下异常。如果我从 Eclipse 启动它,则不会发生错误。
谁能解释为什么在 IDE 中一切正常并且从命令行我得到这个错误?
这是我的主要课程 mit mani 功能:
java - Scala (java) grpc 异步拦截器状态传播
问题标题可能信息量不大,因为我正在尝试实现多种功能。我想根据他发送的标头授权调用者并将此信息传播到 gRPC 方法处理程序。问题在于授权过程的异步性质。我最终得到了这个:
这有效(我的意思是,运行没有异常:)),但是当我AuthInterceptor.BOTID_CONTEXT_KEY.get
在我的方法处理程序中这样做时,它会产生null
.
也许,有更好的方法来处理异步的东西?
grpc - GRPC Client 拦截 Java 异常
我试图拦截 GRPC 存根抛出的异常 io.grpc.StatusRuntimeException,并将它们转换为 REST 异常。我需要实现 ClientInterceptor 不知道如何?