완전한 소프트웨어 시스템은 동일한 서버에 있더라도 대부분 함께 작동하는 여러 프로세스로 구성됩니다. 따라서 프로세스 간의 효율적인 통신이 중요합니다.
스크립트 언어인 PHP는 C++/Java처럼 프로세스에 상주하지 않으므로 짧은 연결을 사용하여 백엔드 서비스에 연결합니다.
음성 해설: 친구가 확장 프로그램을 C로 작성할 수 있다고 하더군요? (추천 학습: PHP 비디오 튜토리얼)
위 그림은 일반적인 시나리오입니다. 사이트 PHP는 머신 A에 배포되고 캐시 Memcache는 머신 B에 배포됩니다. 그들은 짧은 연결을 통해 통신합니다.
(1) php는 tcp 짧은 연결을 설정합니다.
(2) memcache 프로토콜에 따라 데이터를 보냅니다.
(3) memcache에서 반환된 데이터를 받습니다.
(4) php는 tcp 짧은 연결을 닫습니다. ;
트래픽이 적을 때는 위와 같은 문제가 발생하지 않습니다. 웹 사이트 트래픽이 매우 클 경우 연결 시간이 짧아 성능 병목 현상이 발생할 수 있습니까?
음성 해설: 연결을 설정하고 파괴하는 데는 시간이 많이 걸립니다.
화제를 바꾸면 유닉스 도메인 소켓이 무엇인가요?
UNIX 도메인 소켓은 네트워크 프로토콜 스택, 패키징 및 언패킹, 체크섬 계산, 시퀀스 번호 및 응답 유지 등을 거칠 필요가 없는 IPC 메커니즘입니다. 단지 한 프로세스에서 다른 프로세스로 애플리케이션 계층 데이터를 복사할 뿐입니다. .
음성 해설: IPC, 프로세스 간 통신, 프로세스 간 통신.
동일한 호스트에서 관련되지 않은 두 프로세스에 사용할 수 있으며 전이중이므로 안정적인 메시지 전달을 위한 IPC 메커니즘을 제공합니다(메시지가 손실되지 않고, 반복되지 않으며, 엉망이 되지 않음).
음성: 친족 관계는 부자 과정이나 형제 과정과 같은 "특별한" 과정 관계를 말합니다.
UNIX 도메인 소켓의 효율성은 TCP 짧은 연결보다 훨씬 높다는 것을 알 수 있지만 동일한 호스트 간의 프로세스 통신에만 사용할 수 있는 반면 PHP 애플리케이션과 백엔드 서비스는 종종 다른 위치에 배포됩니다. 현재 최적화에 사용할 수 있나요?
최적화된 단순 아키텍처 다이어그램은 위에 표시된 것과 같습니다.
(1) PHP 애플리케이션 서버에 로컬 프록시를 배포합니다.
(2) UNIX 도메인 소켓을 사용하여 PHP와 로컬 프록시 간 통신합니다. ;
(3) local-proxy는 TCP 긴 연결을 통해 백엔드 서비스와 통신합니다.
이를 통해 통신 효율성이 크게 향상되고 각 요청에 대해 TCP 짧은 연결을 설정하고 종료하는 오버헤드가 제거됩니다.
위 내용은 PHP 프로세스의 연결이 길까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!