Python gRPC 服务器max_workers和maximum_concurrent_rpcs的平等选项C++ g
Equvalent option for Python gRPC server max_workers and maximum_concurrent_rpcs in C++ gRPC sync server
这是python中的gRPC服务器:
server = grpc.server(
thread_pool=futures.ThreadPoolExecutor(max_workers=32),
maximum_concurrent_rpcs=100,
)
在 Python 中,如果服务器正在处理maximum_concurrent_rpcs请求,下一个请求将立即被拒绝。
如果max_workers小于maximum_concurrent_rpcs则max_workers处理请求的线程数如果没有空闲线程,则下一个请求将进入队列,直到线程空闲并从队列中选取要处理的请求。队列的最大大小为maximum_concurrent_rpcs。
我的问题是同步服务器C++ gRPC 中的等效选项是什么?
1. 如何设置线程池大小以及如何设置队列大小以在线程池没有任何空闲线程后将额外的请求放入其中?
2. 如何设置排队请求的超时?
有一个SetMaxThreads选项,但它似乎就像max_workers和maximum_concurrent_rpcs都设置为此选项一样工作。
grpc::ResourceQuota rq;
rq.SetMaxThreads(100);
builder.SetResourceQuota(rq);
我在下面看到选项,但它们没有以我期望的方式工作。
builder.SetSyncServerOption(ServerBuilder::SyncServerOption::NUM_CQS, 3);
builder.SetSyncServerOption(ServerBuilder::SyncServerOption::MIN_POLLERS, 1);
builder.SetSyncServerOption(ServerBuilder::SyncServerOption::MAX_POLLERS, 5);
builder.SetSyncServerOption(ServerBuilder::SyncServerOption::CQ_TIMEOUT_MSEC, 10000);
GRPC_ARG_MAX_CONCURRENT_STREAMS限制将及时处理的最大请求数:"http2 连接上允许的最大并发传入流数 https://github.com/grpc/grpc/blob/47a06ace92d0db299e6fa9ecc9a9d26db8d85c62/include/grpc/impl/codegen/grpc_types.h#L150。
如果出现更多请求,它们将被缓冲。缓冲区大小受资源配额(目前仅内存配额(的限制。
缓冲的请求将在达到其截止时间(由应用程序指定(时超时。
相关文章:
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- Win32编译器选项和内存分配
- C/C++预处理器是否可以检测一些编译器选项
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 通过选项卡的文本设置QTabWidget顺序
- 通过ccmake在cmake中缓存依赖选项
- 如何传递多个 std::文件系统选项?
- 基于编译器选项的编译二进制路径
- "perf_event_attr"结构的"read_format"属性的选项到底是什么?
- 如何应用 libcurl 的持久连接选项
- 文件中.dat Dlib 选项
- LLVM | codegen 用于带有命令行选项的程序输入功能
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- Visual Studio C++ 它只构建选项卡中显示的文件吗?
- 在C++不适用于猜数字游戏的情况下再次播放选项
- Qt5 用户界面编译器:-i 选项不可用
- CMake - 更改共享库链接选项
- 从 C++ 运行的进程偶尔会错过某个选项