nghttp2服务器处理来自不同线程

时间:2018-04-09 12:04:23

标签: rest http2 nghttp2

我正在使用nghttp2来实现RESTful API服务器。我已经定义了两个GET API: /api/ping/api/wait。虽然立即发送对前者的响应,但服务器在响应后者之前会进行一些处理。我给服务器分配了4个线程。

从客户端(也使用nghttp2实现),我建立了与服务器的连接并逐个进行API调用,/api/wait首先跟随/api/ping。我观察到使用Wireshark,两个GET请求是通过两个不同的TCP数据包发送的。但是,在服务器完成/api/wait的处理之前,它不会处理/api/ping,尽管它有其他可用线程。

我从客户端建立了两个TCP连接,并在不同的连接上进行了两次API调用,服务器并行处理它们。

这是否意味着nghttp2在一个线程上处理一个TCP连接完全,并且一个TCP连接的请求按顺序按设计处理? nghttp2中有任何设置可以绕过这个吗?这可能是Web应用程序(顺序处理请求)的一个很好的功能,但不是API彼此独立的API服务器。

0 个答案:

没有答案