시스템 비즈니스의 복잡성이 증가함에 따라 전통적인 단일 단위 아키텍처는 유지 보수 어려움 및 제한된 확장과 같은 문제를 점차 노출 시켰습니다. 마이크로 서비스 아키텍처가 등장했으며 응용 프로그램을 소규모 독립적으로 배포 된 서비스 그룹으로 분할함으로써 개발 효율성, 유지 관리 및 시스템 탄력성을 크게 향상시킵니다. 각 서비스는 일반적으로 특정 비즈니스 기능을 중심으로 구축되며 HTTP 또는 메시지 대기열과 같은 표준 프로토콜을 통해 통신합니다.
실제 프로젝트 개발에서 다양한 비즈니스 요구에 따라 여러 아키텍처 모델을 사용하여 마이크로 서비스를 구현할 수 있습니다. 다음은 일반적으로 사용되는 세 가지 마이크로 서비스 아키텍처 연습 방법입니다.
RESTFUL API는 가장 일반적으로 사용되는 마이크로 서비스 통신 모드로, 요청 및 응답에 대한 표준 HTTP 프로토콜을 활용합니다. 각 서비스는 명확한 인터페이스 정의와 우수한 교차 지원으로 경로 및 컨트롤러를 정의하여 노출됩니다.
PHP Hyperf에서는 주석을 통해 경로와 컨트롤러를 빠르게 정의 할 수 있습니다. 코드 예제는 다음과 같습니다.
/**
* @GetMapping(path="/api/user")
*/
public function getUser() {
// 사용자 논리를 얻기위한 처리
}
이메일 보내기, 로깅, 보고서 생성 등과 같은 비동기 처리가 필요한 작업의 경우 메시지 큐를 서비스 간 통신에 사용할 수 있습니다. 비동기 통신은 시스템 응답 속도를 향상시킬뿐만 아니라 서비스 분리에도 도움이됩니다.
Hyperf는 Redis, RabbitMQ 등과 같은 풍부한 메시지 큐 드라이버 지원을 제공합니다. 개발자는 비동기 데이터 전달을 실현하기 위해 메시지의 생산자와 소비자 만 정의하면됩니다.
public function sendReport() {
$this->queue->push('report_queue', ['user_id' => 1001]);
}
RPC (원격 절차 호출)는 효율적인 서비스 간 호출이 필요한 경우 선호되는 솔루션입니다. 지루한 HTTP 요청의 오버 헤드를 피하고 로컬 기능을 호출하는 것처럼 서비스가 상호 작용할 수 있습니다.
Hyperf는 GRPC, SWOOLE RPC 등과 같은 다양한 RPC 구현 방법을 지원하고 서비스 등록 및 발견 메커니즘을 통해 서비스 호출의 유연성과 신뢰성을 향상시킵니다.
/** @Inject */
protected UserServiceInterface $userService;
public function getUserProfile() {
$user = $this->userService->getById(1001);
}
Hyperf는 현대적인 마이크로 서비스 시스템을 구축하도록 설계된 Swoole 기반 고성능 코 루틴 프레임 워크입니다. 비 차단 IO, 종속성 주입, 주석 라우팅 등과 같은 기능이있어 마이크로 서비스 개발을보다 효율적이고 우아하게 만듭니다.
작곡가를 사용하여 Hyperf 설치 :
<span class="fun">작곡가 생성 프로그램 Hyperf/Hyperf-skeleton myservice</span>
그런 다음 실제 요구에 따라 데이터베이스, 캐시, 큐 및 기타 구성 요소를 구성하십시오.
명확한 서비스 인터페이스 계층을 달성하기 위해 주석을 통해 서비스 라우팅 및 컨트롤러 로직을 빠르게 정의하십시오. 예를 들어:
/**
* @Controller()
* @RequestMapping(path="/user")
*/
class UserController {
/** @GetMapping(path="view") */
public function view() {
// 사용자 정보로 돌아갑니다
}
}
서비스 책임에 따라 적절한 커뮤니케이션 메커니즘 (REST, RPC 또는 메시지 대기열)을 선택하여 서비스간에 안정적이고 효율적인 조정을 보장합니다.
성숙한 마이크로 서비스 시스템은 완전한 모니터링 및 거버넌스 시스템에서 분리 될 수 없습니다. Hyperf는 건강 검사, 서비스 회로 차단기, 로그 추적 등과 같은 기능 모듈을 제공하여 개발자가 시스템 문제를 적시에 발견하고 위치시킬 수 있도록 도와줍니다.
Hyperf 응용 프로그램은 Swoole 고성능 서버를 통해 독립적으로 실행할 수 있거나 컨테이너화 된 배포를 Docker와 결합하여 자동화 된 운영 및 유지 관리 기능을 향상시킬 수 있습니다.
<span class="fun">PHP bin/hyperf.php 시작</span>
마이크로 서비스 아키텍처는 확장 가능하고 유지 관리 가능한 시스템을 구축하는 데 중요한 방향입니다. PHP Hyperf는 고성능과 유연성으로 PHP 개발자가 마이크로 서비스를 구축하는 데 선호되는 프레임 워크가되었습니다. REST, RPC, 비동기 큐와 같은 통신 모드를 합리적으로 적용함으로써 반응이 좋고 명확한 마이크로 서비스 시스템을 생성 할 수 있습니다. 이 기사가 마이크로 서비스의 설계 및 연습에서 유용한 참조와 영감을 제공 할 수 있기를 바랍니다.