>  기사  >  PHP 프레임워크  >  WorkerMan의 기능 소개

WorkerMan의 기능 소개

尚
앞으로
2020-02-04 17:58:252883검색

Workerman은 오픈 소스 고성능 비동기 PHP 소켓 인스턴트 메시징 프레임워크입니다. 이 기사는 Workerman의 일부 기능을 소개하는 것이 모든 사람에게 도움이 되기를 바랍니다.

WorkerMan의 기능 소개

관련 추천: "workerman Tutorial"

WorkerMan 기능 소개:

1 순수 PHP 개발

WorkerMan을 사용하여 개발된 애플리케이션은 php-fpm, apache 및 nginx.run.을 실행합니다. 이는 PHP 개발자가 애플리케이션을 개발, 배포 및 디버그하는 것을 매우 편리하게 만듭니다.

2. PHP 멀티 프로세스 지원

서버의 멀티 CPU 성능을 최대한 활용하기 위해 WorkerMan은 기본적으로 멀티 프로세스와 멀티 태스킹을 지원합니다. WorkerMan은 외부 서비스를 제공하기 위해 메인 프로세스와 여러 하위 프로세스를 시작합니다. WorkerMan이 더 안정적이고 효율적입니다.

3. TCP, UDP 지원

WorkerMan은 TCP와 UDP 두 가지 전송 프로토콜을 지원합니다. 전송 계층 프로토콜을 변경하려면 속성 하나만 변경하면 되며 비즈니스 코드를 변경할 필요가 없습니다.

4. 긴 연결 지원

PHP 애플리케이션은 채팅방, 게임 등 클라이언트와 긴 연결을 유지해야 하는 경우가 많지만 기존 PHP 컨테이너(apache, nginx, php-fpm)에서는 이를 수행하기가 어렵습니다. 이것을 달성하십시오.

WorkerMan을 사용하면 서버 측 비즈니스가 긴밀한 연결 인터페이스를 적극적으로 호출하지 않는 한 PHP 긴 연결을 사용할 수 있습니다. 단일 WorkerMan 프로세스는 수만 개의 동시 연결을 지원할 수 있으며, 여러 프로세스는 수십만 또는 수백만 개의 동시 연결을 지원할 수 있습니다.

5. 다양한 애플리케이션 계층 프로토콜 지원

WorkerMan 인터페이스는 맞춤형 프로토콜을 포함한 다양한 애플리케이션 계층 프로토콜을 지원합니다. WorkerMan에서 프로토콜을 변경하는 것도 매우 간단합니다. 필드만 구성하면 되며, 비즈니스 코드를 변경하지 않고도 프로토콜이 자동으로 전환됩니다. 다양한 클라이언트 요구 사항을 충족하기 위해 다양한 프로토콜로 여러 포트를 열 수도 있습니다.

6. 높은 동시성을 지원합니다.

WorkerMan은 Libevent 이벤트 폴링 라이브러리를 지원합니다. Libevent를 사용하면 높은 동시성에서 뛰어난 성능을 발휘합니다. 사용하면 성능도 매우 강력해집니다.

7. 원활한 서비스 재시작 지원

버전 출시 등 서비스 재시작이 필요한 경우, 사용자 요청을 처리하고 있는 프로세스가 즉시 종료되거나 클라이언트 통신이 실패하는 것을 원하지 않습니다. 다시 시작하는 순간.

WorkerMan은 클라이언트 사용에 영향을 주지 않고 원활한 서비스 업그레이드를 보장할 수 있는 원활한 재시작 기능을 제공합니다.

8. 파일 업데이트 감지 및 자동 로딩 지원

개발 과정에서 코드를 변경한 후 즉시 적용되어 결과를 확인할 수 있기를 바랍니다. WorkerMan은 FileMonitor 파일 모니터링 구성 요소를 제공합니다. 파일이 업데이트되는 동안 WorkerMan은 자동으로 다시 로드를 실행하여 새 파일을 로드하고 적용합니다.

9 지정된 사용자로 하위 프로세스 실행을 지원합니다

하위 프로세스는 실제로 사용자 요청을 처리하는 프로세스이므로 보안상의 이유로 하위 프로세스는 너무 높은 권한을 가질 수 없으므로 WorkerMan은 사용자에 대한 설정을 지원합니다. 하위 실행 프로세스를 실행하면 서버가 더 안전해집니다.

10. 개체 또는 리소스의 영구 보존을 지원합니다.

WorkerMan은 실행 프로세스 중에 PHP 파일을 한 번만 로드하고 구문 분석한 다음 메모리에 상주합니다. 이를 통해 클래스 및 함수 선언, PHP 실행 환경, 기호 테이블이 방지됩니다. 등이 반복적으로 생성되는 것을 방지합니다. 이는 웹 컨테이너에서 실행되는 PHP 메커니즘과 완전히 다릅니다.

WorkerMan에서는 정적 멤버나 전역 변수가 프로세스의 수명 주기 동안 적극적으로 파괴되지 않고 영구적으로 유지됩니다. 즉, 개체나 연결과 같은 리소스가 전역 변수나 클래스 정적 멤버에 배치되면 해당 프로세스의 전체 프로세스가 유지됩니다. 현재 프로세스는 수명주기 내의 모든 요청을 재사용할 수 있습니다.

예를 들어 데이터베이스 연결이 단일 프로세스에서 한 번 초기화되는 한 이 프로세스의 모든 후속 요청은 이 데이터베이스 연결을 재사용할 수 있으므로 TCP 3방향 핸드셰이크, 데이터베이스 권한 확인 및 TCP 4방향 핸드셰이크를 피할 수 있습니다. 빈번한 데이터베이스 연결 프로세스는 애플리케이션 효율성을 크게 향상시킵니다.

11. 고성능

PHP 파일은 디스크에서 한 번 읽고 구문 분석하므로 다음에 사용할 때 메모리에 있는 opcode가 직접 사용되므로 작업 시간이 크게 줄어듭니다. 디스크 IO 및 요청 초기화, PHP 환경에서의 생성 및 실행, 어휘 분석, 구문 분석, opcode 컴파일, 요청 종료 및 기타 많은 시간이 소요되는 프로세스를 수행하며 nginx 및 Apache와 같은 컨테이너에 의존하지 않습니다. nginx와 다른 컨테이너 및 PHP 간의 통신 가장 중요한 것은 리소스를 영구적으로 유지할 수 있고 데이터베이스 연결을 초기화할 필요가 없기 때문에 WorkerMan을 사용하여 애플리케이션을 개발하는 것은 매우 높은 성능을 발휘합니다.

12. HHVM 지원

HHVM 가상 머신에서 실행을 지원하여 PHP 성능을 두 배로 높일 수 있습니다. 특히 CPU 집약적인 컴퓨팅 사업에서는 성능이 매우 뛰어납니다. 실제 스트레스 테스트 비교를 통해 부하가 없는 경우 HHVM에서 실행되는 WorkerMan의 네트워크 처리량은 Zend PHP5.6

참고 문서

http://doc.workerman에서 실행되는 것보다 약 30~80% 더 높습니다. /principle.html

원본 링크: https://blog.csdn.net/u012164509/article/details/90749646

더 많은 워커맨 지식을 알고 싶으시면 PHP 중국어 웹사이트workerman 프레임워크튜토리얼 칼럼을 주목해주세요.

위 내용은 WorkerMan의 기능 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제