Swoole 확장 6 가지 모드 깊이 있 게 설명
병발 문 제 는 두 가지 문제 로 이해 할 수 있다.
ulimit -n
시스템 최대 파일 설명 자 를 10 만 개 이상 으로 변경 합 니 다.서로 다른 모델 이 1 초 에 얼마나 많은 요청 수 를 처리 할 수 있 는 지,이것 은 응용 층 이 고려 해 야 할 문제 이다.그리고 서로 다른 장면 에서 일부 모드 는 사용 할 수 없습니다.진짜 어 려 운 문 제 는 바로 여기에 있다.실제로
도 구 는 영원히 죽 고 사람 은 산다.
아무리 복잡 하고 어 려 운 장면 이라도 똑똑 한 엔 지 니 어 를 막 을 수 없다.스 울 이 제공 하 는 각종 기능 을 합 리 적 으로 이용 하면 각종 난 제 를 교묘 하 게 해결 할 수 있다.
제1 Worker 동기 화 블록
이 모드 의 사용 방법:
이 모드 의 병목 은 onRequest 나 onReceive 에서 코드 논리 적 처리 속도 에 있 습 니 다.속도 에 따라 몇 가지 로 나 눌 수 있다
위의 IO 소모 시간 에 따라 적당 한 프로 세 스 수 를 설정 하면 됩 니 다.
배달 모드
요청 이 무 상태 라면 dispatch 를 사용 할 수 있 습 니 다.mode=1 또는 3,차례로 배달 하거나 한가 로 운 배달 을 구분 합 니 다.
긴 연결 응용
예 를 들 어 채 팅 방,온라인 게임.연결 사이 에는 상호작용 의 응용 이 필요 하 다.MySQL/Redis/파일 로 사용자 의 연결 fd 를 저장 하고 그룹 정 보 를 저장 할 수 있 습 니 다.한 사용자 에 게 데 이 터 를 보 내 려 면 UID 에 따라 해당 하 는 fd 를 찾 아 데 이 터 를 보 내 면 됩 니 다.그룹 을 보 내 면 장애 ID 에 따라 fd 목록 을 조회 하고 데 이 터 를 반복 해서 보 내 면 됩 니 다.
제2 Worker 비 차단+작업
이 모델 은 전형 적 인 동기 화+비동기 입 니 다.복잡 한 업무 논 리 는 동기 화 차단 을 사용 하여 Task 프로 세 스 에서 처리 합 니 다.간단 한 동시 다발 논 리 는 비동기 비 차단 을 사용 하여 Worker 프로 세 스 에서 처리 합 니 다.
사용 방법
작업 자 프로 세 스
이 모드 에서 Worker 프로 세 스 는 동기 화 차단 작업 을 할 수 없습니다.요청 응답 이나 데이터 수신 전송 만 처리 하고 PHP 배열 이나 대상 작업 또는 다른 계산 논리 만 수행 합 니 다.구체 적 인 참조 모드 3 Worker 프로 세 스 전체 비동기.
작업 프로 세 스
무 상태 로 임 무 를 처리 하고 결 과 를 되 돌려 줍 니 다.단일 Task 의 실행 시간 에 주의해 야 합 니 다.처리 시간 이 너무 길 어서 Task 가 너무 많이 줄 을 서 는 것 을 피해 야 합 니 다.
제3 Worker 전체 비동기
이 모드 는 진정한 비동기 비 차단 프로 그래 밍 입 니 다.코드 에 서 는 Swole 이 제공 하 는 비동기 비 차단 IO 작업 만 사용 할 수 있 습 니 다.curl,my sql,redis,fsockopen,stream,socket,proc 와 같은 일반적인 PHP 차단 IO 함 수 를 실행 할 수 없습니다.오픈 등.
모드 2 와 달리 전체 비동기 서버 는 Task 프로 세 스 를 사용 하지 않 습 니 다.복잡 한 업무 논리 라 도 Worker 프로 세 스에 서 실 행 됩 니 다.순수 비동기 프로 그래 밍 은 개발 자 에 대한 요구 가 비교적 높다.
사용 방법
Worker 프로 세 스 의 PHP 코드 는 다음 세 가지 동작 만 수행 할 수 있 습 니 다.
제4 베이스 모드+동기 화 블록
Base 모드 는 간단 한 버 전 으로 Base 모드 에서 Swole 의 운행 원 리 는 Node.js 와 완전히 일치 하 며 단일 스 레 드 입 니 다.TCP 클 라 이언 트 에 대한 Accept,Send,Recv,Close 는 같은 프로 세 스 에서 작 동 합 니 다.
Process 동기 화 차단 모드 와 달리 BASE 모드 에서 Worker 프로 세 스 의 스케줄 링 은 운영 체제 에서 이 루어 집 니 다.따라서 Leader-Follower 모드 의 서버 프로그램 을 실현 할 수 있 습 니 다.
사용 방법
Process 는 프로 세 스 관리 에 대한 패 키 지 를 제공 합 니 다.Process 기반 구현 가능:
다 중 프로 세 스+프로 세 스 간 통신 프로 그래 밍
다른 언어 로 작 성 된 프로그램 을 하위 프로 세 스 로 포장 하고 표준 입 출력 을 파이프 로 바 꾸 어 이 프로그램 과 통신 합 니 다.임의의 프로 그래 밍 언어 를 내 PHP 에 사용 할 수 있 습 니 다.
제6 sendMessage
스 울 확장 에 관 한 6 가지 모델 에 대해 깊이 있 게 설명 한 이 글 은 여기까지 입 니 다.스 울 확장 에 관 한 5 가지 모델 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ThinkPHP 5.0 프레임 워 크 는 Swoole 개발 과 결합 하여 WebSocket 온라인 채 팅 사례 에 대한 상세 한 설명 을 실현 합 니 다.이 사례 는 ThinkPHP 5.0 프레임 워 크 가 Swole 개발 과 결합 하여 WebSocket 온라인 채 팅 을 실현 한 사례 를 다 루 고 있다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.