동시성 - nginx 플러그인은 비차단 방식으로 시간이 많이 걸리는 작업을 어떻게 구현합니까?
phpcn_u1582
phpcn_u1582 2017-05-16 17:12:26
0
1
400

문제 설명:

nginx의 뛰어난 성능이 비동기식 및 비차단 기반에 있다는 것은 누구나 알고 있습니다. 따라서 네트워크 요청을 처리하기 위한 nginx 플러그인을 개발할 때는 시간이 많이 걸리는 특정 작업을 차단 방식으로 수행해야 한다는 점을 기억해야 합니다. 그렇지 않으면 nginx 성능에 심각한 영향을 미칠 것입니다...

다음 질문이 나옵니다.플러그인에서 시간이 많이 걸리는 작업을 수행하려면 어떻게 해야 하나요? 예를 들어 데이터베이스를 쿼리하는 경우(데이터베이스는 http 프로토콜을 지원하지 않으며 특수 프로토콜이 있습니다)?

ps: 스레드 풀을 열고 이러한 차단 작업을 풀에 넣을 수 있지만 nginx 프레임워크의 이벤트 큐에 대한 현재 요청 처리를 일시 중단할 수 있는 방법이 있습니까? 차단 작업의 콜백 함수에서 상태 변경이 전송되면 nginx가 이전 요청을 계속 처리하도록 하시겠습니까?

감사합니다

phpcn_u1582
phpcn_u1582

모든 응답 (1)
迷茫

数据库查询本质上就是网络通信,本质上只要你socket的read,write都是非阻塞的就没问题。说起来容易实际做起来比较复杂。nginx自身有一些可复用的机制可以实现在http上非阻塞的各种操作。然而像tcp之类的通信,可能并没有现成的。你要自己去写,我感觉比较复杂,而且还要结合在nginx里面。

    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!