问题标签 [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 - 将 Spring Boot 与 gRPC 和 Protobuf 一起使用
任何人有任何使用 gRPC 和 Spring Boot 的示例或想法?
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(实际上,目前还不确定...)。
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 相互认证
我想知道在 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 中的一个固有错误。
c++ - 如何使 gRPC 服务器仅支持一个客户端连接
我目前正在考虑将 gRPC 用于 Java 应用程序(客户端)和 C++ 服务器之间的基本进程间通信。RPC 调用将使用来自非常古老的 C++ 代码库的功能,这绝对不是线程安全的。通常,Java 客户端会启动更多的 gRPC 服务器实例,并且与每个服务器实例只有一个连接。有什么方法可以确保在 gRPC 服务器上只接受一个连接并拒绝所有其他连接尝试。否则我需要在 RPC 函数中引入一些全局锁来获得 100% 正确的服务器实现。
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 正在关闭 *服务器已关闭
grpc - 在虚拟机上使用 grpc
我在 kvm 虚拟机上使用了一个 grpc 示例,我的目标是修改它,以便客户端和服务器可以通过我的共享内存进行通信。我已经有了 vms 上共享内存的机制,但是我对 grpc 有一些问题。我的问题是:
我需要更改哪些文件?我已经用 grpc 运行了一个 hello World 示例,我想修改它以便在共享内存上使用我的协议(../include/grpc++/impl/client_unary_call.h?class BlockingUnaryCall?)
谢谢
c++ - 如何从客户端关闭 gRPC 服务器(使用 RPC 功能)
我正在使用 gRPC 进行 C++ 应用程序(gRPC 服务器)和 Java 应用程序(gRPC 客户端)之间的进程间通信。一切都在一台机器上运行。我想为客户端提供关闭服务器的可能性。我的想法是在 proto 中将 RPC 函数添加到服务中,这样就可以了。
C++ 实现将是:
但是,在处理完所有 RPC 调用之前,ShutDown 会阻塞,这意味着死锁。有什么优雅的方式来实现它吗?
java - grpc 服务器启动时的大量 io.netty.buffer.PoolThreadCache$MemoryRegionCache$Entry 实例
我们正在运行grpc-java
0.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 内存。(注意,它grpc
被netty
用作它的通信层。)这似乎是不正常的。即便如此,堆内对象也无法占用 4GB 内存。这必须是由于堆外内存使用情况,例如netty
.
是否存在堆外内存泄漏?
为什么会发生这种情况?以及如何解决或诊断这个问题?
python - 使用 grpc 获取导入错误,未定义符号:grpc_google_iam_credentials_create
我在ubuntu中使用grpc,当导入run_codegen.sh生成的*_pb2.py时,出现如下ImportError:
任何反馈将不胜感激。