问题标签 [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 - Do I need to pool ManagedChannel instances for a multithreaded Java GRPC (1.1.2) client?
TL;DR
Does grpc-java's ManagedChannel
have an implicit connection pool or is the pooling of ManagedChannel
instances the responsibility of the user?
So, I am using java grpc 1.1.2 with protoc 3.2.0. It seems to me that there's no implicit support (as of now) for connection pooling that grpc provides for clients. It seems, however, that the abstraction of a connection in grpc, i.e. the ManagedChannel
object does indeed work with multiple TCP connections. Is that correct? If so, does the ManagedChannel
come with connection pooling along with it? If that is the case, I probably don't have to worry about the connection pooling, given that the channel is thread-safe and I can simply use a single ManagedChannel
instance across my client. However, I might indeed have to pool these channel objects too for greater throughput if need be. Is there such an implementation (pooling of channels) that does this for me in grpc itself?
grpc - 为 Hyperledger Fabric V1.0 编写 gRPC 客户端
Hyperledger Fabric v1.0 使用基于 gRPC 的 Protocol Buffers 提供基本 API,以便应用程序与区块链网络进行交互。
我见过很多使用 CLI 命令的示例,但很难找到任何使用 gRPC 与区块链通信的 GO/JAVA 客户端。早些时候它支持 REST API,但似乎他们在新发布的 V1.0 版本Documention中停止了对它的支持。
如果有人对如何用 GO/Java 语言为 Fabric 客户端编写 gRPC 客户端有任何想法,请提供帮助。
java - grpc-java的ServerBuilder中执行器的具体用途是什么?它只是执行处理程序方法吗?
grpc-java 在它的 executor 中使用了一个 executor ServerBuilder
,如果没有被builder.executor()
方法定义,默认使用一个静态缓存的线程池。这个执行器的具体用途是什么?它只是执行处理程序方法还是也做“其他事情”?
另外, grpc 是如何定义 netty worker 的EventLoopGroup
?具体来说,我想知道工作线程是如何分配给这个工作组的。线程数有默认值,还是机器核心数的函数?另外,关于上述问题,这些网络工作者如何与执行者合作?他们是否只处理 I/O - 对通道的读取和写入?
编辑:Netty,默认创建(2 * 核心数)工作线程。
java - Java protoc 编译问题
我正在使用下面提到的命令行编译 proto 文件。
我发出的上述命令是生成基于 python 的代码,它工作正常。
现在,我尝试为基于 Java 的代码发出相同的命令,但出现错误。
我查看了我的插件目录,发现安装了以下插件,但没有安装 Java 插件。
我怎样才能找到 Java 插件?
java - grpc-java 的 bindableService 问题
我正在尝试使用 grpc-java v1.1.2(下面的 build.gradle 部分),但是当我尝试为示例应用程序运行 fat jar 时,它会抛出下面给出的异常。编译应用程序时我没有看到任何问题。
build.gradle 部分:
例外
java - 如何为 TensorFlow 模型服务器创建 Java 客户端
到目前为止,我已经成功地导出了一个 Tensorflow 模型,然后使用 Tensorflow 模型服务器为该模型提供服务。然后,我可以通过创建一个通过 gRPC 与 Tensorflow 服务器对话的客户端来进行预测。
基本上我已经按照这个教程
到目前为止,这一切都是在 Python 中完成的,这很好,但我需要能够使用 Java 调用 Tensorflow 服务器。换句话说,我需要创建一个 Java 客户端。
我的基本理解是我需要使用 Protoc 编译器将 .proto 文件编译成 Java 类,但我不确定如何为我的模型生成 .proto 文件。我已导出模型,但文件为“.pb”格式,似乎无法编译为 Java 类。
有没有人有这样做的经验?如果你有,请分享你的解决方案。
非常感谢,
巴里
java - Grpc Java 客户端的 SSL 连接
我正在尝试通过 GRPC-SSL 将 Java 客户端连接到非 Java 服务器。不使用 SSL 时,我能够连接到服务器。当我尝试使用 SSL 上下文(使用提供的 pem 文件)创建 ManagedChannel 时,出现以下异常(相同的 pem 文件适用于 NodeJS 客户端)。
trustManager 调用的异常:
build.gradle 相关部分
有什么想法可能导致问题或如何进一步解决这个问题?
c++ - 我在哪里可以找到适用于 c++ windows 和 Linux 的 grpc 库
我正在尝试为运行 C++ 环境的嵌入式设备设置 grpc 服务器。我已经按照https://github.com/grpc/grpc/blob/master/INSTALL.md上的链接进行操作,但我无法理解那里需要做什么才能使 grpc 库可用或安装在C++ 库。
为 C++ 设置 grpc,我假设除了 C++ 运行时位置的细节之外,还有一种适用于 Windows/Linux 环境的通用方法
上述位置的方法说要构建,但它对我来说失败了,
错误如下,
任何人如果有更详细的链接/参考一步一步的过程将非常有帮助
java - GRPC Java客户端和NodeJS服务器之间的ssl握手问题
我正在使用 GRPC(Java 客户端)通过 SSL 连接到 NodeJS 服务器。我正在使用的 SSL 上下文复制如下。我尝试运行 ssldump(在 Mac El Capitan OS 上)来帮助调试。当我尝试连接并向服务器发送消息时,服务器上出现以下异常:
我只看到 ssldump 的以下输出:
任何有关如何进一步解决此问题的想法将不胜感激。
spring - 使用 gRPC 与 consul 或 Eureka 一起通信 Spring Boot 应用程序
我们如何使用 grcp 与 Spring Boot 应用程序通信。以及我们如何使用通用服务发现方法与 grpc 一起使用来获取 Spring Boot 应用程序的端点。