스 울 이 뭐야?

참고 자료
  • 공식 홈 페이지https://www.swoole.com/page/download

  • PHP 는 Python 의 Twisted, Tornado, 자바 의 Netty, Mina, JavaScript 의 Node. js 프레임 워 크 가 없 으 며 비동기 네트워크 통신 프로그램 을 실현 할 수 없습니다.스 울 확장 은 이 결함 을 보완 하기 위해 탄생 한 오픈 소스 프로젝트 다.
    스 울 은 Node. js 와 매우 비슷 하 며, 다른 것 은 스 울 이 병행 하여 바 텀 지원 을 제공 한 다 는 것 이다.Node. js 는 단일 프로 세 스 의 프로그램 으로 다 중 핵 서버 에서 모든 CPU 핵 계산 능력 을 발휘 할 수 없습니다.프로그램 이 다 핵 우 위 를 이용 할 수 있 도록 프로그래머 가 자체 적 으로 child_process/cluster 확장 하거나 다 중 인 스 턴 스 를 시작 해 야 합 니 다.한편, Swoole 은 바 텀 에서 다 중 스 레 드 / 다 중 프로 세 스 를 지원 합 니 다. 프로그램 이 시작 되면 여러 개의 IO 스 레 드 와 여러 개의 Worker 프로 세 스 를 만 듭 니 다.개발 자 는 스 레 드 / 스 레 드 수량 만 설정 하면 됩 니 다.
    스 울 이 뭐야?
    Swole 은 PHP 의 비동기, 병렬, 고성능 네트워크 통신 엔진 으로 순수 C 언어 로 작 성 된 PHP 언어의 비동기 다 중 스 레 드 서버, 비동기 TCP / UDP 네트워크 클 라 이언 트, 비동기 MySQL, 비동기 Redis, 데이터베이스 연결 풀, AsyncTask, 메시지 큐, 밀리초 타이머, 비동기 파일 읽 기 쓰기, 비동기 DNS 조회 등 을 제공 합 니 다.Swoole 에는 HTTP / WebSocket 서버 / 클 라 이언 트, HTTP 2.0 서버 가 내장 되 어 있 습 니 다.
    Swoole 은 PHP 의 C 확장 으로 PHP 의 고성능 고성능 병렬 TCP / UDP 서버 를 개발 할 수 있 습 니 다. Swoole 의 네트워크 IO 는 epoll / kqueue 이벤트 순환 을 기반 으로 전 비동기 가 막 히 지 않 습 니 다.비 즈 니스 논리 부분 은 다 중 프로 세 스 동기 화 차단 방식 으로 실 행 됩 니 다.즉, 서버 가 높 은 병발 과 대량의 TCP 연결 에 대응 할 수 있 도록 보장 하고 업무 코드 를 간단하게 작성 할 수 있 도록 보장 합 니 다.
  • Swoole 은 PHP 의 협 정 고성능 네트워크 통신 엔진 으로 C / C + + 로 작성 하여 다양한 통신 프로 토 콜 을 제공 하 는 네트워크 서버 와 클 라 이언 트 모듈 입 니 다.
  • Swoole 은 완전한 프로 그래 밍 모드 를 지원 하고 완전히 동기 화 된 코드 로 비동기 프로그램 을 실현 할 수 있 습 니 다.PHP 코드 는 키 워드 를 추가 할 필요 가 없습니다. 바 텀 은 자동 으로 조정 하여 비동기 IO 를 실현 합 니 다.
  • 스 울 협 정 은 PHP 7 만 지원 하 며 PHP 5 에 서 는 사용 할 수 없습니다.
  • Swoole 은 비동기 IO 에 대한 지원
  • Swoole 은 PHP 다 중 프로 세 스 모델 로 여러 개의 병행 데이터 구조 와 IPC 통신 체 제 를 설계 하여 다 중 프로 세 스 병행 프로 그래 밍 작업 을 크게 간소화 했다.여기 에는 병렬 원자 카운터, 병렬 HashTable, Channel, Lock, 프로 세 스 간 통신 IPC 등 다양한 기능 이 포함 된다.
  • Swoole 은 표준 PHP 확장 이지 만 일반 확장 과 달리 일반 확장 은 라 이브 러 리 함수 만 제공 하고 Swoole 확장 은 실행 후 PHP 의 제어 권 을 인수 하여 이벤트 순환 에 들 어 갑 니 다.IO 이벤트 가 발생 하면 Swoole 은 지정 한 PHP 함 수 를 자동 으로 되 돌려 줍 니 다.

  • 스 울 은 아파 치 나 PHP - FPM 에 비해 PHP 프레임 워 크 와 전역 대상 이 매번 생 성 · 폐기 요청 에 따 른 성능 손실 을 절 약 했 지만, PHP 코드 가 누 드 echo 방식 이 라면 스 울 프레임 워 크 는 성능 우위 가 없다.
    스 울 씨 는 뭘 할 수 있 을까요?
  • 비동기 다 중 스 레 드 서버 및 클 라 이언 트
  • 비동기 MySQL
  • 비동기 레 디 스
  • 데이터베이스 연결 탱크
  • 퀘 스 트 대기 열
  • HTTP / WebSocket 서버 와 클 라 이언 트
  • 비동기 파일 읽 기와 쓰기
  • Swoole 2.0 지원 협정
  • 쉽게 말 하면 Swole 은 PHP 개발 자 들 로 하여 금 고성능 의 비동기 병렬 TCP, UDP, UnixSocket, HTTP, WebSocket 서 비 스 를 작성 하 게 할 수 있다.
    스 울 을 왜 써 요?
    Swoole 은 PHP 의 확장 으로서 그 핵심 목적 은 PHP 가 서버 개발 을 실현 하 는 과정 에서 발생 하 는 일련의 문 제 를 해결 하 는 것 이다. 이런 문 제 는 PHP 자체 의 집행 효율 에서 비롯 된다.그래서 서버 개발 에 서 는 일반적으로 PHP 로 문 제 를 해결 하지 않 기 때문에 스 울 이 PHP 를 새롭게 정의 했다 는 설 이 생 긴 것 이다.
  • 메모리 에 상주 하여 중복 으로 인 한 성능 손실 을 피하 고 대량의 성능 을 향상 시킨다.

  • 전통 적 인 PHP 프레임 워 크 는 요청 을 처리 할 때마다 프레임 워 크 파일, 설정 등 을 불 러 옵 니 다.이것 은 성능 문제 의 큰 원인 이 될 수 있 으 며, Swoole 을 사용 하 는 것 은 문제 가 되 지 않 습 니 다. 한 번 에 여러 번 불 러 올 수 있 습 니 다.
  • 협 정 이 보 를 통 해 I / O 밀집 형 장면 에 대한 병행 처리 능력 을 향상 시킨다.

  • 협 정 에 대해 서 는 프로 세 스 와 스 레 드 를 먼저 말 해 야 합 니 다. 잘 알 고 있 습 니 다. 프로 세 스 는 자원 을 많이 차지 합 니 다. 처리 요청 을 위해 대량의 프로 세 스 를 만 드 는 것 은 득 보다 실 이 많 을 것 입 니 다.한편, 다 중 스 레 드 응용 이 비교적 많 습 니 다. CPU 차원 에서 몇 가지 핵심 이 있 으 면 몇 가지 임 무 를 수행 합 니 다. 스 레 드 가 만 들 면 스 레 드 스케줄 의 손실 이 발생 합 니 다.
    한편, 협 정 은 단일 스 레 드 를 바탕 으로 이 루어 진 것 으로 CPU 자원 을 최대한 활용 할 수 있 으 며 I / O 대기 시 CPU 를 헛되이 낭비 하지 않 습 니 다.물론 협정 이 많 을 수록 차지 하 는 메모리 도 많 지만 이것 은 받 아들 일 수 있다.프로 세 스 와 스 레 드 에 비해 차지 하 는 자원 이 상대 적 으로 적다.
    협 정 을 사용 할 때 파일 읽 기와 쓰기, 요청 인터페이스 등 장면 을 만나면 자동 으로 협 정 을 걸 고 CPU 를 다른 협 정 에 넘 겨 임 무 를 수행 하 게 한다. 그러면 단일 스 레 드 의 CPU 자원 이 용 률 을 향상 시 키 고 낭 비 를 줄 여 성능 을 향상 시 킬 수 있다.
  • 하드웨어 와 통신 할 수 있 는 HTTP, TCP, UDP, WebSocket 등 애플 리 케 이 션 을 편리 하 게 개발 합 니 다.
  • PHP 고성능 마이크로 서비스 구조
  • Swoole 의 특징
  • Accept 스 레 드 는 Accept 성능 병목 과 놀 라 움 문 제 를 해결 합 니 다
  • 다 중 IO 스 레 드 는 다 핵
  • 을 더 많이 이용한다.
  • 전체 비동기 와 반 동기 반 비동기 모드 제공
  • 높 은 병발 IO 를 처리 하 는 부분 은 비동기 모드
  • 를 사용한다.
  • 복잡 한 업무 논리 부분 은 동기 화 모델
  • 을 사용한다.
  • 바 텀 은 모든 연결, 상호 전송 데 이 터 를 옮 겨 다 니 며 데이터 팩 을 자동 으로 통합 하고 데이터 전송 원자 성 을 지원 합 니 다.

  • 스 울 과 워 크 맨 은 어떤 공통점 이 있 나 요?
    현재 PHP 통신 서비스 프레임 워 크 가 가장 유행 하 는 것 은 스 울 과 워 커 맨 이다. 스 울 은 C 언어 로 개 발 된 PHP 의 확장 클래스 이 고, 워 크 맨 은 순수 PHP 로 개 발 된 것 이다.스 울 은 C 언어 로 개 발 된 PHP 확장 으로 C 언어의 장점 이 있 기 때문에 스 울 은 메모리 관리, 데이터 구조, 통신 프로 토 콜 분석 에서 Workerman 보다 현저히 우수 하 며 스 울 은 현재 통신 프로 토 콜 에서 더욱 고 급 스 러 운 통신 기능 을 제공 하고 있다.그래서 Workerman 이 개발 할 수 있 는 Swoole 은 모두 가능 하고 기능 이 더 빠 릅 니 다.마찬가지 로 스 울 의 단점 도 뚜렷 하 다. 자신의 필요 에 따라 개발 할 수 없고 바 텀 통신 서비스 개발 에 대해 알 아야 한다.

    좋은 웹페이지 즐겨찾기