마이크로서비스란 무엇인가요?
마이크로서비스는 전체 시스템을 비즈니스 기능에 따라 독립적인 하위 시스템으로 분할하는 것입니다. 마이크로서비스 구조에서는 각 하위 시스템을 "서비스"라고 합니다. 이러한 하위 시스템은 웹 컨테이너에서 독립적으로 실행될 수 있으며 RPC를 통해 서로 통신할 수 있습니다.
예를 들어 온라인 쇼핑몰을 개발해야 한다고 가정해 보겠습니다. 마이크로서비스 개념에 따르면, 기능 모듈에 따라 이를 사용자 서비스, 제품 서비스, 주문 서비스, 백엔드 관리 서비스, 데이터 분석 서비스 등과 같은 여러 개의 독립적인 서비스로 분할해야 합니다. 이러한 각 서비스는 독립적인 프로젝트이므로 독립적으로 실행할 수 있습니다. 서비스 간에 종속성이 있는 경우 RPC를 통해 호출됩니다.
혜택:
1. 개발, 독립적 배포 및 독립적 테스트를 통해 시스템 간의 경계가 매우 명확해지고 디버깅이 매우 쉬워지며 개발 효율성이 크게 향상됩니다.
2. 시스템 간의 결합이 줄어들어 시스템 확장이 더 쉬워집니다. 특정 서비스를 타겟 방식으로 확장할 수 있습니다. 이 쇼핑몰에서 대규모 프로모션이 진행되어 주문량이 크게 증가할 수 있다고 가정하면 백엔드 관리 시스템 및 데이터 분석 시스템을 위해 주문 시스템 및 제품 시스템의 노드 수를 늘릴 수 있습니다. , 노드 수는 동일하게 유지됩니다.
3. 서비스의 재사용성이 높아집니다. 예를 들어, 사용자 시스템을 별도의 서비스로 사용하는 경우 회사의 모든 제품은 반복적인 개발 없이 이 시스템을 사용자 시스템으로 사용할 수 있습니다.
그러면 문제가 발생합니다. 마이크로서비스 구조를 채택하면 완전한 시스템이 여러 개의 독립적인 하위 시스템으로 구성될 수 있습니다. 특정 서비스의 처리 용량을 목표 방식으로 늘리기 위해 일부 서비스는 여러 노드로 구성된 클러스터 모델의 지원을 받을 수 있으며, 이는 운영 및 유지 관리의 어려움을 의심할 여지 없이 크게 증가시킵니다. 마이크로서비스라는 아이디어는 좋지만 개발과 운영, 유지관리의 복잡성이 너무 높습니다. 이러한 문제를 해결하기 위해 알리바바의 더보(Dubbo)가 탄생했습니다.
Dubbo
Dubbo는 마이크로서비스 시스템의 코디네이터입니다. 서비스 제공자(이하 공급자), 서비스 소비자(이하 소비자) 및 등록 센터의 세 가지 역할이 있습니다.
사용 시 프로젝트에 Dubbo의 jar 패키지를 도입해야 합니다. 즉, 각 서비스는 Dubbo의 jar 패키지를 도입해야 합니다. 그런 다음 이러한 서비스가 초기화되면 Dubbo는 현재 시스템에서 게시해야 하는 서비스와 현재 시스템의 IP 및 포트 번호를 등록 센터로 보내고 등록 센터는 이를 기록합니다. 서비스 퍼블리싱 과정입니다. 동시에 시스템이 초기화되면 Dubbo는 현재 시스템에서 참조해야 하는 서비스도 검색한 다음 등록 센터에서 이러한 서비스의 IP 및 포트 번호를 요청합니다. 그러면 시스템이 정상적으로 실행될 수 있습니다. 시스템 A가 시스템 B의 서비스를 호출해야 할 때 A는 B와 RPC 채널을 설정한 다음 시스템 B에서 해당 서비스를 호출합니다.
추천 튜토리얼: PHP 비디오 튜토리얼
위 내용은 PHP 마이크로서비스란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!