我已经在golang (用过的protobufs)中创建了一个示例gRPC客户机和服务器。我了解戈朗的并发模型。但是,我正在尝试理解服务器中的并发模型,该模型接受来自同一个客户机(客户端的多个请求)/多个客户机的并行请求。
更具体而言:
grpcServer.Serve是否为跨峡谷共享的数据设置了边界,即以前设置的所有数据都是共享的?(我想到的是Java中的线程,线程共享全局数据)发布于 2019-04-17 15:23:38
当一个新的gRPC调用出现时,服务器会创建一个新的goroutine吗?
是的,而且很可能它会创建大量并发的goroutines来处理每个连接和请求(特别是流请求)。
这些猩猩共享什么数据?
我认为这个问题太宽泛了。net/http2和google.golang.org/grpc包中的代码太多,无需深入研究就无法回答您的问题。但是,我们可以肯定,这些goroutines至少共享服务器本身,因为ServeConn不是一个空闲函数,而是一个定义在http2.Server类型上的方法。
https://stackoverflow.com/questions/55720390
复制相似问题