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

0 投票
1 回答
936 浏览

android - 在 Android 设备上构建 gRPC 服务器好不好?

gRPC 是个好东西,我发现我可以在 Android 上使用它,客户端和服务器都可以,所以我打算在我的应用程序中为 IPC 构建一个 gRPC 服务器。

问题是在 Android 上构建 gRPC 服务器有哪些缺点?

0 投票
5 回答
15177 浏览

java - Grpc.Core.RpcException method is unimplemented with C# client and Java Server

I am having trouble finding the source of this error. I implemented a simple service using protobuf:

When using a java client everything works fine, the server receives the request and responds appropriately. When using C# with the same .proto file for generating sources at the client.Login() I get the following errror: Grpc.Core.RpcException Status(StatusCode=Unimplemented, Detail="Method tourism.RemoteService/Login is unimplemented"). The server receives the request but does not have time to respond and throws:

Java server:

C# Client:

0 投票
2 回答
2255 浏览

java - gRPC:如何使用 Go 服务器在 Java 客户端中获取多个返回值

我有一个protocol buffer文件:

我的服务器是用 Go(一种可以返回多个值的语言)编写的,我的客户端是一个 Android 应用程序。

当我使用这个 protoBuf 为服务器生成 Go 代码时,它类似于:

请注意,有两个返回值,(*LoginResponse, error)

现在,当我使用这个 protoBuf 为我的 Android 端生成 Java 代码时,我得到如下信息:

请注意,这里只有一个像 Java 允许的返回值,myApp.v1.LoginResponse.

我的问题是,如果服务器返回错误(例如:)return nil, err,我将如何在我的 Android 端获得第二个返回值。

0 投票
1 回答
2039 浏览

spring-boot - pod 上带有 spring boot 的 GRPC 服务器

我能够在 pod 上设置独立的 GRPC(Java 中)服务器,并通过 http2 与我的本地 GRPC(nodejs)客户端通信。

现在作为下一步 - 我正在尝试在我们的 pod 上设置 GRPC 服务器 + spring boot -

  1. 我是否必须将 spring boot 和 GRPC 作为不同端口上的两个独立进程启动?对 pod 的限制是如果我启动主进程(在这种情况下是 Spring 启动进程?)我无法启动子进程(在这种情况下是 GRPC 服务器?)另一个端口上的另一个进程。
  2. 如何确保spring boot + grpc服务器通过http2进行通信

我看到了 spring boot + eureka server + grpc 的文档,但需要了解上述详细信息才能继续。

0 投票
1 回答
2200 浏览

netty - netty 没有检测到 netty-tcnative

在深入研究我的问题时,解释了 atg gRpc with TLS Client Authentication using SunPKCS11 in netty failed,我更改了 netty-tcnative-boringssl 的版本。我的 build.gradle 中的 cange 来自

导致:

+--- io.netty:netty-tcnative-boringssl-static:+ -> 2.0.1.Final

我这样做是因为根据 netty 的 javadocSslContextBuilder's keyManager(KeyManagerFactory factory)方法也适用于作为提供者的 OpenSSL,它不适用于版本 1.1.33.Fork26。

现在,在新版本中,netty 的 slf4j 调试输出告诉我:

[main] 调试 io.netty.handler.ssl.OpenSsl - netty-tcnative 不在类路径中;OpenSslEngine 将不可用

所以netty-tcnative的检测似乎失败了。调试到 io.netty.handler.ssl.OpenSsl的静态代码块,检测失败,因为

抛出异常。我做错了什么,或者这是近年来问题的一些复苏(https://github.com/relayrides/pushy/issues/303https://github.com/netty/netty-tcnative/issues/136) ? // 使用 Oracle Java 1.8.21 在 64 位 Win 10 上工作

0 投票
1 回答
314 浏览

grpc - Vision API 错误指出“com.google.api.gax.grpc.ApiException:io.grpc.StatusRuntimeException:DEADLINE_EXCEEDED”

我执行了从图像中提取文本的 Vision API,在运行示例代码时,它在错误堆栈下方出错。

2017 年 5 月 28 日上午 10:46:48 io.grpc.internal.ManagedChannelImpl 信息:[ManagedChannelImpl@543788f3] 使用目标 vision.googleapis.com:443 com.google.api.gax.grpc.ApiException 创建:io.grpc。 StatusRuntimeException: DEADLINE_EXCEEDED 在 com.google.api.gax.core.ApiFutures$1.onFailure(ApiFutures.java:52) 在 com.google.api.gax.grpc.ExceptionTransformingCallable$ExceptionTransformingFuture.onFailure(ExceptionTransformingCallable.java:109) 结束com.google.common.util.concurrent.Futures$6.run(Futures.java:1764) 在 com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456) 在 com.google.common .util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817) 在 com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753) 在 com.google.common。io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:466) 处的 util.concurrent.AbstractFuture.setException(AbstractFuture.java:634) io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java: 442)在io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:481)在io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:398)在io.grpc.internal.ClientCallImpl$ ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:513) at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:52) at io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:154) at java .util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) 在 java.util.concurrent.ThreadPoolExecutor 的 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)。 runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) 原因:io.grpc.StatusRuntimeException : DEADLINE_EXCEEDED 在 io.grpc.Status.asRuntimeException(Status.java:545) ... 13 更多293) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java :745) 引起:io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED at io.grpc.Status.asRuntimeException(Status.java:545) ... 13 更多293) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java :745) 引起:io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED at io.grpc.Status.asRuntimeException(Status.java:545) ... 13 更多

我在本地系统中从 Eclipse 运行代码。

我尝试了在某些论坛中找到的以下项目;1) 将所有 netty* jar 从 4.1.6 降级到 4.1.3 2) 将 google-cloud-vision-0.10.0-beta.jar 降级到 google-cloud-vision-0.9.4-beta.jar 3) 添加pom.xml 4) 在 windows 环境变量中添加 GOOGLE_APPLICATION_CREDENTIALS - 指向为服务帐户下载的 JSON 文件

0 投票
1 回答
1912 浏览

spring-boot - Spring Boot + GRPC Http2Exception

我正在尝试使用 spring boot 设置 GRPC 服务器。我的 VIP 指向端口 8443 上的服务器。我正在尝试从本地 GRPC 客户端连接到我的 vip 上的 GRPC 服务器。

在使用 spring boot 方法 GRPC 时,我有什么遗漏吗?

0 投票
1 回答
653 浏览

java - ClientCallStreamObserver isReady 从不返回 true

我正在制作一个输入流率计。它基本上是一种服务,它公开请求流调用并计算每秒可以处理多少条消息。

由于客户端在发送消息时是完全异步的,所以我使用 ClientCallStreamObserver 在流准备好时开始发送消息,以避免内存溢出。

客户端代码如下所示:

我对 isReady 的观察循环永无止境。

OBS:我正在使用 kubernetes 集群来服务我的测试,服务器正在接收调用并返回 StreamObserver 实现。

0 投票
1 回答
1725 浏览

android - Android上的Protobuf:编译时在protoc文件中定义的错误重复类

我想在 Android 上写一个 Grpc 客户端。我按照这个教程

这是我的外部build.gradle文件:

这是我的内部文件build.gradle文件:

当我尝试构建项目时,我总是遇到错误:

With Feature... 是我在 protoc 文件中定义的类。请帮我弄清楚我的代码有什么问题。

谢谢

0 投票
1 回答
586 浏览

grpc - 在 grpc-java 中从 Socket 创建通道

我在我的项目中使用 grpc,客户端是用 Java 编写的,服务器端是用 C++ 编写的。

我的问题是,在客户端,有没有办法ManagedChannel从现有Socket对象创建而不是调用ManagedChannelBuilder.forAddress(host, port)