当前位置: 首页 > 知识库问答 >
问题:

java中的并发grpc调用

柯立果
2023-03-14

我有一个动态的对等网络,节点与grpc进行通信。每个节点都有自己的服务器和客户端。定义了一种用于登录新节点的grpc方法。我使用同步消息将登录信息传达给所有其他服务器,在这里我与其他服务器创建一个新通道,发送一条消息并等待响应。

rpc enter(LogIn) returns (Response);

如果我的网络中有一个节点(节点1),然后两个或多个节点同时进入,例如节点2和节点3,它们将在节点1的服务器上同时调用grpc方法“enter”。对于这种类型的方法,node1服务器的行为是什么?它能同时处理这两个请求吗?因此,使用这样的方法,grpc会对同时到达的消息进行排队,还是只处理一个请求?谢谢

共有1个答案

红经亘
2023-03-14

gRPC支持多个RPC的并发执行。当RPC(或RPC事件)到达时,它将在serverBuilder上排队。executor()在构建服务器时指定。如果不指定,将使用一个默认的执行器,该执行器根据需要使用尽可能多的线程。如果RPC是相同的RPC方法或不同的RPC方法,gRPC中的行为不会有任何不同。

 类似资料:
  • [//]: # ( 此处删除了setDefer特性,因为支持setDefer的客户端都推荐用一键协程化了。 ) 使用子协程(go)+通道(channel)实现并发请求。 !>建议先看概览,了解协程基本概念再看此节。 实现原理 在onRequest中需要并发两个http请求,可使用go函数创建2个子协程,并发地请求多个URL 并创建了一个chan,使用use闭包引用语法,传递给子协程 主协程循环调用

  • 本文向大家介绍java ThreadPoolExecutor 并发调用实例详解,包括了java ThreadPoolExecutor 并发调用实例详解的使用技巧和注意事项,需要的朋友参考一下 java ThreadPoolExecutor 并发调用实例详解 概述 通常为了提供任务的处理速度,会使用一些并发模型,ThreadPoolExecutor中的invokeAll便是一种。 代码 可以把需要执

  • 我有一个关于JAVA多线程的问题。 我有一个jetty webapp与grpc-流式传输-客户端。一切都很好,但我如何建立一个模型来获取流式传输数据? webapp是用jsf构建的。因为我有一个控制器,它调用一个处理程序类来启动流: 此方法简单地启动客户端和流。 检查倒计时锁存器的实现仍然缺失。但在这种情况下,这并不重要。 响应如下:onNext()-方法提供流式数据: 图像数据简单地打印在屏幕上

  • 我用Go语言创建了一个示例gRPC客户端和服务器(使用原型)。我理解Go语言中的并发模型。但是,我正在尝试理解服务器中接受来自同一客户端(客户端上的多个goroutines)/多个客户端的并行请求的并发模型。 更具体地说: 当一个新的gRPC呼叫到来时,服务器是否创建了一个新的goroutine

  • 问题内容: 在《 Java Concurrency In Practice》中,作者指出 不变对象可以通过任何机制发布 不可变对象可以在没有附加同步的情况下被任何线程安全地使用,即使不使用同步来发布它们。 这是否意味着以下成语可以发布不可变对象? 会有数据竞赛吗?(这意味着线程B可能无法在线程A添加的列表中看到不可变对象) 非常感谢你。 此外,作者说,如果Resource是不可变的,以下代码是安全

  • null 对于此问题的第二部分,将在另一个问题(单击此处)中详细讨论