>  기사  >  PHP 프레임워크  >  워커맨과 스울의 차이점은 무엇인가요?

워커맨과 스울의 차이점은 무엇인가요?

WBOY
WBOY원래의
2022-02-10 13:34:439909검색

차이점: 1. swoole은 C 언어로 구현된 소켓 통신 프레임워크인 반면, Workerman은 순수 PHP로 구현된 소켓 프레임워크입니다. 2. Workerman에서 소켓은 작업자 프로세스에 의해 처리되는 반면 swoole은 리액터 스레드에 의해 처리됩니다. 주요 프로세스에서 책임을 져야합니다.

워커맨과 스울의 차이점은 무엇인가요?

이 튜토리얼의 운영 환경: Windows 10 시스템, Swoole 4 버전, DELL G3 컴퓨터

workerman과 swoole의 차이점은 무엇입니까?

workerman과 swoole은 현 단계에서 매우 논란의 여지가 있습니다. 시간이 있을 때 서로를 알아가십시오. 그렇지 않으면 PHP 서클에 속하지 않게 될 것입니다. Swoole은 C 언어로 구현된 소켓 통신 프레임워크인 반면 Workerman은 순수 PHP로 구현된 소켓 통신 프레임워크입니다. 둘 사이에는 프로세스 모델에도 많은 차이가 있습니다.

마스터 프로세스

이 프로세스는 비교적 복잡하며, 내 생각에는 메인 스레드와 n개의 리액터 스레드를 포함하여 여러 스레드를 포함하는 프로세스이기도 합니다(개수는 구성 가능).

그 중 메인 스레드는 새로운 연결을 받아들이는 데 사용되며, 각 리액터 스레드가 유지 관리를 담당하는 연결 수를 평가한 다음 이를 가장 작은 수의 리액터 스레드에 할당하여 각 리액터의 부하가 보장되도록 합니다. 스레드는 최대한 균형을 이룹니다.

기본적으로 소켓이 읽기 또는 쓰기 가능해지면 리액터 스레드에 의해 작업자 프로세스로 전송되거나 클라이언트로 전송됩니다. 또한 메인 스레드는 리액터 스레드가 신호를 수신할 때 중단을 방지하기 위해 모든 신호를 인수하는 역할도 담당합니다.

좀 더 서양적으로 말하면 마스터 프로세스는 연결의 승인과 호스팅을 담당하고, 소켓의 가독성과 쓰기성(데이터 전송 및 수신)을 담당합니다. 본질적으로 마스터 프로세스는 IO를 담당합니다. 또한 리액터 스레드는 완전히 비동기적이고 차단되지 않는 작업 방법이라는 점에 유의해야 합니다.

매니저 프로세스

매니저 프로세스는 워커 프로세스와 태스크워커 프로세스의 모체입니다. 직설적으로 말하면 매니저 프로세스는 워커 프로세스와 태스크워커 프로세스를 포크(fork)하기 때문에 반드시 매니저가 관리해야 합니다. 프로세스는 이에 대한 책임을 져야 합니다. 작업자 프로세스와 작업 작업자 프로세스의 유지 관리 의무에는 상태 모니터링, 예기치 않게 중단된 경우 새 프로세스 다시 시작(좀비 프로세스 방지), 원활한 다시 시작(전설적인 다시 로드)이 포함됩니다.

작업자 프로세스

작업자 프로세스는 관리자 프로세스에서 분기됩니다. 직설적으로 말하면 이 프로세스는 단지 벽돌을 옮기고 작업하는 것입니다(공식 문서에서 여러 번 언급되는 비즈니스 코드). 일반적으로 코딩되는 비즈니스 로직 코드입니다. 그러나 작업자 프로세스에서 더 흥미로운 점은 이 프로세스가 비동기식 또는 동기식으로 작동할 수 있다는 것입니다. 무슨 뜻인지 이해가 안 된다면 먼저 외워서 이야기하기 전에 익숙해지세요.

taskworker 프로세스

taskworker 프로세스(이하 tasker 프로세스)는 실제로 본질적으로 작업자 프로세스이지만 특별한 종류의 작업자 프로세스입니다. 작업자 프로세스에 시간이 많이 걸리고 노동 집약적인 작업이 있는 경우 먼저 해당 작업을 작업 수행자 프로세스에 던지고 다른 작업을 직접 수행할 수 있습니다. 작업 수행자가 해당 작업을 검색하면 매우 편리합니다. 그러나 Tasker 프로세스는 동기 모드에서만 작동할 수 있으며 비동기 모드를 사용할 수 없습니다. 이것이 바로 Tasker 프로세스가 타이머를 사용할 수 없지만 작업자 프로세스는 타이머를 사용할 수 있는 이유입니다.

이러한 프로세스가 어떻게 함께 작동하는지 간략하게 요약하고 이야기해 보겠습니다. 직설적으로 말하면 마스터 프로세스는 판매 작업을 담당하지만 특정 작업은 작업자 프로세스가 수행합니다. 작업자 프로세스가 일부 프로세스가 너무 바쁘고 복잡하다고 느끼면 작업자 프로세스가 이를 수행하도록 할 수 있습니다. 매니저 프로세스는 물류 작업자 프로세스와 테이커 프로세스 중 인력 지원 부서로 이들의 삶과 죽음, 먹고 마시고 자는 일을 담당한다.

workerman

Workerman의 프로세스 모델은 상대적으로 훨씬 간단합니다. 우선 Swoole에 비해 Workerman에는 Swoole에 리액터 스레드가 없습니다. 둘째, Workerman에는 일반 작업을 처리하는 작업자 프로세스와 태스커 프로세스가 없습니다. 사업. Workerman의 경우 소켓은 작업자 프로세스에 의해 처리되는 반면 Swoole에서는 기본 프로세스의 리액터 스레드에 의해 처리됩니다. 데이터를 받은 후 swoole은 자체 작업자 프로세스(fpm 프로세스와 다소 유사)를 통해 비즈니스를 처리할 수 있습니다.

workerman은 고성능 PHP 소켓 서버 프레임워크입니다. Workerman은 PHP 다중 프로세스 및 libevent 이벤트 폴링 라이브러리를 기반으로 합니다. PHP 개발자는 Rpc 서비스 및 채팅과 같은 자체 네트워크 애플리케이션을 개발하기 위해 하나 또는 두 개의 인터페이스만 구현하면 됩니다. 서버, 모바일 게임 서버 등

workerman의 목표는 PHP 개발자가 PHP 소켓 및 PHP 다중 프로세스의 세부 사항을 이해하지 않고도 고성능 소켓 기반 응용 프로그램 서비스를 보다 쉽게 ​​개발할 수 있도록 하는 것입니다. Workerman 자체는 PHP 프로세스 관리 및 소켓 통신 모듈을 갖춘 PHP 다중 프로세스 서버 프레임워크이므로 php-fpm, nginx 또는 apache 및 기타 컨테이너에 의존하지 않고 독립적으로 실행할 수 있습니다. 권장 학습:

swoole 튜토리얼

위 내용은 워커맨과 스울의 차이점은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.