在使用python grpc服务器时
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
这是grpc服务器实例化的一般方式。但是在这个运行中,如果我试图运行超过10个客户机实例,这需要服务器流,那么第11个实例就不起作用了(我正在运行10个客户端实例,它连接到这个服务器并获取流)
这是正常行为吗?因为即使我将max_workers更改为None,它创建的max也是40个线程(根据文档,8个内核x 5个线程),因此在这种情况下,最多可以同时为40个客户端提供服务。在
即使我将max_workers更改为None,它创建的max也是40个线程(根据文档,8个核心x 5个),因此在这种情况下,最多可以同时为40个客户机提供服务。这是正常行为吗?在
我正在编写我的代码,但尝试了这里记录的通用grpc python代码:
我可以用这个复制同样的问题。在
要复制它,只需运行route_guide_服务器.py在一个max_workers=4的窗口中,然后尝试在不同的窗口中运行4-5个不同的客户端。第四个客户端必须等到其中一个客户端完成。(要获得更好的视图,请添加一个时间。睡觉收益率)
如果有大量的客户机(100和1000个客户机)想通过流媒体(应该是连续的)访问python中的grpc服务器,那么其他客户机将永远得不到机会。在