问题标签 [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.

0 投票
7 回答
49539 浏览

spring - 将 Spring Boot 与 gRPC 和 Protobuf 一起使用

任何人有任何使用 gRPC 和 Spring Boot 的示例或想法?

0 投票
3 回答
2956 浏览

java - 在没有 gradle 的情况下构建和运行 grpc-java 示例

我正在尝试从 grpc-java 中制作示例。如果我使用 gradle 确实很容易,但是,我将 grpc 集成到使用另一个构建系统的项目中。我想知道如何仅使用 protoc、javac 和 java 编译和运行示例。我能够从 .proto 源生成 java 源,但编译生成的 java 源没有运气。

我尝试了 1000 种组合(不同的类路径),但没有任何效果。

(省略了其他 99 个编译错误)

任何人都可以显示一系列有效的命令吗?谢谢你。

更新:我在 Linux 上做这个。

Upd:我正在使用 SBT,但这并不重要。我真正想了解的是如何使用 javac 编译生成的 grpc 代码。我确定我在类路径中有 grpc-core、grpc-netty、grpc-protobuf 和 grpc-stub(实际上,目前还不确定...)。

0 投票
1 回答
257 浏览

protocol-buffers - 特定版本所需的依赖项

我正在尝试在 OS X 上将 libgrpc 构建为 nixpkg。它取决于 zlib、protobuf >= 3.0 和 openssl >= 1.0.2。

如何将这些版本指定为最低版本?两者都包含在官方频道中,并且都成功构建。

我对 nix 很陌生,这是我试图弄湿我的脚。现在,这就是我所拥有的default.nix

我要么正在寻找一种在 nix 下构建 libgrpc > 0.10 的方法,要么正在寻找一种方法来定义需求的最低版本,以便我可以尝试自己解决这个问题。

谢谢!

0 投票
2 回答
4340 浏览

java - Grpc Java SSL 相互认证

我想知道在 GrpcSslContext 中需要设置什么才能让 Grpc 客户端与服务器进行 SSL 身份验证?

目前,以下代码适用于从服务器到客户端的通常 1-way 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 中的一个固有错误。

0 投票
1 回答
939 浏览

c++ - 如何使 gRPC 服务器仅支持一个客户端连接

我目前正在考虑将 gRPC 用于 Java 应用程序(客户端)和 C++ 服务器之间的基本进程间通信。RPC 调用将使用来自非常古老的 C++ 代码库的功能,这绝对不是线程安全的。通常,Java 客户端会启动更多的 gRPC 服务器实例,并且与每个服务器实例只有一个连接。有什么方法可以确保在 gRPC 服务器上只接受一个连接并拒绝所有其他连接尝试。否则我需要在 RPC 函数中引入一些全局锁来获得 100% 正确的服务器实现。

0 投票
1 回答
1567 浏览

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 io.grpc.examples.helloworld.HelloWorldServer启动信息:服务器已启动,正在侦听 50051 * 正在关闭 gRPC 服务器,因为 JVM 正在关闭 *服务器已关闭

0 投票
1 回答
378 浏览

grpc - 在虚拟机上使用 grpc

我在 kvm 虚拟机上使用了一个 grpc 示例,我的目标是修改它,以便客户端和服务器可以通过我的共享内存进行通信。我已经有了 vms 上共享内存的机制,但是我对 grpc 有一些问题。我的问题是:

我需要更改哪些文件?我已经用 grpc 运行了一个 hello World 示例,我想修改它以便在共享内存上使用我的协议(../include/grpc++/impl/client_unary_call.h?class BlockingUnaryCall?)

谢谢

0 投票
2 回答
7060 浏览

c++ - 如何从客户端关闭 gRPC 服务器(使用 RPC 功能)

我正在使用 gRPC 进行 C++ 应用程序(gRPC 服务器)和 Java 应用程序(gRPC 客户端)之间的进程间通信。一切都在一台机器上运行。我想为客户端提供关闭服务器的可能性。我的想法是在 proto 中将 RPC 函数添加到服务中,这样就可以了。

C++ 实现将是:

但是,在处理完所有 RPC 调用之前,ShutDown 会阻塞,这意味着死锁。有什么优雅的方式来实现它吗?

0 投票
1 回答
3185 浏览

java - grpc 服务器启动时的大量 io.netty.buffer.PoolThreadCache$MemoryRegionCache$Entry 实例

我们正在运行grpc-java0.8.0 版服务器来处理远程调用。服务器逻辑非常简单,它只是从数据库中获取由给定 id 指定的数据并将它们设置到redis缓存中。

JVM 参数配置为-Xss256k -Xmx8G. top一旦服务器启动并处理大约 400 QPS ,JVM 就会占用 4GB(RES in )内存。我发出 jmap 命令jmap -histo:live <pid>并得到以下转储文件:

从中我们可以看到有大量io.netty.buffer.PoolThreadCache$MemoryRegionCache$Entry实例占用了大约 100MB 内存。(注意,它grpcnetty用作它的通信层。)这似乎是不正常的。即便如此,堆内对象也无法占用 4GB 内存。这必须是由于堆外内存使用情况,例如netty.

是否存在堆外内存泄漏?

为什么会发生这种情况?以及如何解决或诊断这个问题?

0 投票
1 回答
842 浏览

python - 使用 grpc 获取导入错误,未定义符号:grpc_google_iam_credentials_create

我在ubuntu中使用grpc,当导入run_codegen.sh生成的*_pb2.py时,出现如下ImportError:

任何反馈将不胜感激。