고성능 서버 (HTTP 서버 아님)를 설계하고 있으며 내 디자인 옵션을 고려하고 있습니다. 서버는 많은 수의 수신 연결 (수천)을 지원하고 Windows와 Linux 모두에서 컴파일해야합니다.libEvent를 사용하는 고성능 서버
Windows 측에서 지금까지 스트레스를 처리하는 것으로 보이는 IO 완료 포트 서버를 구현했습니다. 리눅스 수요가 급상승 한 이후, 이제 스레드 풀에서 accept/read 이벤트를 사용하는 방법을 제공하는 크로스 플랫폼 라이브러리를 찾으려고합니다.
지금까지 libEvent는 올바른 선택입니다 (이 link의 "예제 코드 : 에코 서버"와 유사 함). 그러나 another page in the libEvent docs에서 인용 : event_base이 잠금을 사용하도록 설정되어
경우, 여러 스레드 사이를 에 액세스하는 것이 안전합니다. 루프는 단일 스레드 인 에서만 실행할 수 있습니다. IO에 대해 폴링하는 다중 스레드를 원할 경우 각 스레드에 대해 event_base를 사용하려면 이 필요합니다.
내 기본 디자인은 스레드 풀을 받아들이고 이벤트를 읽는 것입니다. 이 견적은, 내가 정확하게 이해한다면, 나는 그것을 할 수 없다고 말합니다.
높은 퍼프 사용 경험이있는 사람이 있습니까? libEvent 기반 서버? 다른 라이브러리를 사용해야할까요?
이러한 서버에 대한 예제 코드가