RPC 연구 노트
기본 네트워크 기술의 개념을 이해 할 필요없이 네트워크를 통해 원격 컴퓨터의 서비스에 대한 요청입니다 원격 프로 시저 호출 원격 프로 시저 호출.
RPC는 기술 아이디어와 규격이 아닙니다 또는 프로토콜, 일반 RPC 기술 및 프레임 워크입니다 :
- 응용 프로그램 수준의 서비스 프레임 워크 : 알리 두보 / Dubbox, 구글 gRPC, 스핑 부팅 / 스핑 클라우드
- 원격 통신 프로토콜 : RMI, 소켓, SOAP HTTP (XML) REST (HTTP JSON)
- 통신 프레임 워크 : MINA와의 Netty
두보
보행이 RPC 자바 경량 프레임을 열고, 고성능이고, 하단의 Netty 보통 사육사와 함께 사용 기반. 그것은 세 가지 핵심 기능을 제공합니다 :
- 원격 메소드 호출의 인터페이스
- 지능형 부하 분산 및 내결함성
- 셀프 서비스 등록 및 검색
주요 핵심 구성 요소 :
- 리모팅 : 네트워크 통신 프레임 워크 동기화 오버 비동기 메시지 및 요청 - 응답 메커니즘을 달성
- 원격 추상화 RPC 호출 지원, 균형 재해 복구과 능력을 클러스터링로드합니다.
- 레지스트리 서비스 카탈로그 프레임 워크, 게시 및 가입 서비스에 대한 등록 및 서비스 이벤트.
그것이 작동하는 방법 :
- 제공자 노출 서비스 제공 업체는 "서비스 제공자"라고합니다
- 소비자 원격 서비스 호출 파티 "서비스 소비자"라는
- 레지스트리 서비스 등록 및 검색 센터, "서비스 레지스트리"라는 디렉토리 서비스
- "서비스 센터를 모니터링"라고 통화 및 통화 기록 서비스 시간의 B 모니터 통계 번호,
- 용기를 실행 컨테이너 서비스
두보 기술 아키텍처
게시 가입 과정
- 시작 컨테이너,로드, 실행 서비스 제공
- 당신이 시작할 때 서비스 제공자는 서비스를 게시하는 것은 레지스트리에 자신의 등록을 제공하는
- 그들이 필요로하는 레지스트리 구독 서비스에서 시작시 소비자 서비스
당신은 실패의 경우를 고려하거나 변경해야하는 경우 다음 절차를 고려할 필요가
- 변경 사항이있는 경우 레지스트리는 레지스트리는 소비자에게 긴 연결 푸시 데이터에 따라 변경되며, 소비자에 대한 서비스 제공 업체의 목록을 반환합니다.
- 서비스 소비자는 주소 목록, 부드러운로드 밸런싱 알고리즘에서 제공 업체, 호출이 실패 할 경우, 다음 다른 통화를 선택, 공급자 호출을 선택합니다.
- 통화 및 통화 시간의 누적 수를 메모리에 서비스 소비자와 공급자는, 시간은 모니터링 센터로 분 통계 자료에 한 번 보냈다.
두보 외에도 인 Netty와 큐레이터 의존도를 의존해야합니다.
두보 SpringBoot
치어 의존 기준
두보 점프 스타터 보트
사육사 의존 com.101tec zkclient 소개
@Service은, 주석에 두보 서비스를 노출된다, 서비스 스프링 선택하지 마십시오
@구성 요소
봄 플러스 시작 클래스 개방 두보 코멘트에서
@EnableDubboconfigration
@SpringbootApplication
소비 @Reference 주석을 사용하는 경우
참조해야
<그룹> io.dubbo.spring.boot </ 그룹>
<artifactId를> 스프링 부팅 스타터 두보 </ artifactId를>
봄 부팅
springboot 새로운 봄은 개발 프로세스 초기 셋업을 단순화하는 데 사용됩니다.
SpringBoot 프레임 워크 두 가지 중요한 전략이있다 : 상자와 규칙 중 구성을 통해. 상자, Outofbox 중, 개체의 수명주기를 관리하기 위해 해당 주석 대신 지루한 XML 구성 파일을 사용하여 다음 치어 파일 Maven 프로젝트에 종속 패키지를 추가하고,에 의해, 개발 과정을 의미한다. 이 기능은 개발자가 복잡한 구성 및 의존성 관리, 비즈니스 로직에 더 초점이 작업 할 수 있습니다. 구성을 통해 협약이 협약이 구성을 통해, 대상 구조가 SpringBoot 자체로 구성되어, 개발자에 의해 구조에서 정보의 소프트웨어 디자인 패러다임을 추가합니다. 이 기능은 유연성 있지만 감소 BUG 위치의 복잡성을 증가하지만 자동화 할 수 있습니다, XML 구성의 양, 코드 컴파일을 줄이고 테스트 작업을 포장하면서 개발자의 수가 결정을 내리는 데 필요한 감소 .