>PHP 프레임워크 >Swoole >스울은 어디에 사용되나요?

스울은 어디에 사용되나요?

(*-*)浩
(*-*)浩원래의
2019-12-06 14:10:342602검색

스울은 어디에 사용되나요?

응용 시나리오 소개

하드웨어 장치(위치 확인 장치)와 연결 및 통신

#🎜 🎜#IM 시스템(생방송 페이지의 채팅 커뮤니케이션용) (추천 학습:

swoole 비디오 튜토리얼 )

시나리오 1 - 실시간 수집 위치 데이터 및 실시간 출력 (Didi 운전자의 주행 궤적 예시)

설명:

은 실제- 모든 측위 장치의 시간 수신은 지도에 표시됩니다. 🎜#

web1 서버에 연결된 사용자 1, 2, 3 web1이 정보를 방송할 때 사용자 1, 2, 3만 방송할 수 있습니다. 사용자 4, 5, 6은 방송할 수 없습니다. web2에 접속했다고 가정하면, 사용자 1이 보내는 메시지는 web1 서버의 사용자들만 볼 수 있고, web2의 모든 사용자는 이를 받을 수 없으며, 100명의 사용자, 100개의 장치는 초당 한 개의 데이터를 업로드합니다. 각 사용자에게 실시간으로, 즉 초당 100*100 = 1W씩 방송해야 하므로 초당 데이터를 요약해서 모든 사용자에게 방송하는 등이 가능합니다. #🎜 🎜#

#🎜 🎜#시나리오 2 - 위치 확인 장치만 데이터베이스에 수집

지침: 모든 위치 확인 장치에서 업로드한 데이터를 데이터베이스에 저장해야 합니다. 둘째, 저는 개인적으로 swoole의 작업 기능을 사용합니다(task_worker 풀에 비동기 작업을 전달합니다. 이 기능은 비차단이며 작업자 프로세스 수도 구성할 수 있습니다). 그런 다음 인터페이스를 호출하여 데이터베이스에 저장합니다 #🎜🎜 #

#🎜 🎜#서버 메모리 알람 문제

이유: swoole_server->task 함수에 있습니다

공식 소개는 다음과 같습니다. 작업의 최하위 계층은 전체 메모리를 소비하지 않는 Unix 소켓 파이프 통신을 사용합니다. 단일 프로세스의 읽기 및 쓰기 성능은 100만/초에 달할 수 있습니다. 서로 다른 프로세스는 서로 다른 파이프라인을 사용하여 통신하므로 여러 코어의 사용을 극대화할 수 있습니다.

스울은 어디에 사용되나요?그러나 작업이 프로그램 인터페이스를 호출하는 것이라면 네트워크 지연으로 인해 추가된 작업이 소비된 작업보다 커지면 메모리 사용량이 계속 증가하여 서버의 메모리가 가득 차게 됩니다. .

해결책: 작업에 들어오는 메시지의 빈도를 제어하고 자신의 비즈니스 시나리오에 따라 이 시간과 지연 가능 여부를 정의하고 모든 데이터를 1초 이내에 요약한 다음 프로그램 인터페이스를 호출할 수 있습니다. (redis를 사용하여 요약할 때 개인용) 인터페이스를 호출하지 않고 데이터베이스에 직접 저장하는 것이 가장 좋습니다

Scenario-IM System

공식 github을 참고하세요: webim system.# 🎜🎜#

공식 위키: swoole Framework wiki

Benefits

encapsulates 데이터베이스의 모델 클래스와 데이터베이스의 ORM 인터페이스# 🎜🎜#

Redis의 캡슐화는 다중 인스턴스 액세스를 달성할 수 있습니다

프레임워크에는 로그, (저는 로그만 사용했습니다)

Webim에 공식적으로 악마가 있으니 참고하세요

위 내용은 스울은 어디에 사용되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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