몇 가지 사용 가능한 http 서버 라이브러리를 살펴보면서 내가 원하는 것을 찾지 못했지만이 요구 사항을 처음으로 가질 수는 없습니다.실시간 임베디드 http 서버 라이브러리가 필요합니다.
'파이프 라인'된 API를 제공하는 라이브러리가 필요합니다. 파이프 라이닝은 응답을 기다리지 않고 한 번에 TCP 링크를 통해 여러 HTTP 요청을 보낼 수있는 HTTP 기능을 설명하는 데 사용됩니다. 응용 프로그램이 응답을 보내지 않고도 모든 요청을 수신 할 수있는 라이브러리 API에서 유사한 기능을 원합니다 (응답 할 것이지만 한 번에 여러 요청을 처리하여 내부 대기 시간의 영향을 줄이려합니다).
그래서 웹 서버 라이브러리 ... 다음 흐름
1) HTTP 클라이언트는 HTTP 요청 1
2) HTTP 클라이언트는 HTTP 요청이 전송 전송을 지원하기 위해
3) 웹 필요합니다 서버 라이브러리는 요청 1을 받아 내 웹 서버 응용 프로그램에 전달합니다.
4) 내 웹 서버 응용 프로그램은 요청 1을 받아 내 시스템으로 보냅니다.
5) 웹 서버가 요청이 수신 앱
6) 내 웹 서버 애플리케이션은 요청이 수신 내 웹 서버로 전달하고 제 시스템으로 전달
7) 내 웹 서버 애플리케이션이 요청에 대한 응답을 수신 내 시스템에서 (1) 및 웹 서버에 전달
8) 웹 서버는 HTTP 클라이언트에 HTTP 응답 한 전송
9) 응용 프로그램이 응답이 내 시스템에서 2를 요청 받고 가 웹 서버에 전달 내 웹 서버
10) 웹 서버가 HTTP 클라이언트에게 HTTP 응답 2를 전송합니다.
바라기를 이것은 내 요구 사항을 보여줍니다. 인식 할 두 가지 중요한 점은 입니다. 웹 서버 라이브러리에 대한 응답은 비동기이며 내 웹에 전달 된 여러 HTTP 요청이있을 수 있습니다. 응답이 뛰어난 서버 응용 프로그램.
추가 요구 사항은 기존의 'C'응용 프로그램
- 이다; 아파치 등에서 사용할 수있는 모든 기능이 필요하지 않습니다.
- 효율적입니다. 초당 수천 개의 요청을 지원해야합니다.
- 요청에 대한 비동기 응답을 허용합니다. 응답에 작은 대기 시간이 소요되며 동기식 아키텍처가 요구되는 요청 처리량을 감당할 수 없습니다. 이
- 지원 지속적인 TCP 연결 서버 푸시 혜성 연결이
- 지원 사용
- 오픈 소스/GPL 리눅스에서
- 휴대용 HTTPS에 대한
- 지원, 창; 바람직하게는 더 많습니다.
나는
안부
단일 연결을 사용하는 경우 요청과 동일한 순서로 응답을 보내도록 요청하는 HTTP 파이프 라이닝을 사용하고 있으므로 요청을 병렬 처리하면 어쨌든별로 도움이되지 않을까요? –
안녕하세요, 크리스토퍼 - 댓글을 달아 주셔서 감사합니다. 내 시스템이 단일 연결을 통해 많은 요청을 받고 있으며 이러한 요청에 응답하기위한 대기 시간이 짧습니다. 요청을 순차적으로 처리해야하는 경우 처리량 max_throughput = 1/latency에 대한 제한이 있습니다. 여러 요청을 동시에 처리 할 수있는 경우이 제한이 사라집니다. 참고 : 대기 시간은 HTTP 클라이언트와 웹 서버 사이가 아니라 내 시스템 내부입니다. –