SpringBoot 2.0 Dubbo 프레임 워 크 통합 RPC 서비스 원 격 호출 방법

1.Dubbo 프레임 워 크 소개
1.프레임 의존

그림 설명:
1)그림 에서 작은 사각형 Protocol,Cluster,Proxy,Service,Container,Registry,Monitor 대표 층 또는 모듈,파란색 표 시 는 업무 와 상호작용 을 하고 녹색 표 시 는 Dubbo 내부 에 만 상호작용 을 한다.
2)그림 에서 배경 사각형 Consumer,Provider,Registry,Monitor 는 논리 토폴로지 노드 를 대표 적 으로 배치 합 니 다.
3)그림 에서 파란색 점선 이 초기 화 될 때 호출 되 고 빨간색 점선 이 실 행 될 때 비동기 호출 되 며 빨간색 실선 이 실 행 될 때 동기 화 됩 니 다.
4)그림 에는 RPC 의 층 만 포함 되 어 있 고,Remoting 의 층 은 포함 되 어 있 지 않 으 며,Remoting 은 전체적으로 Protocol 에 포함 되 어 있다.
2.핵심 역할 설명
1)Provider 노출 서비스 제공 자
2)소비자 가 원 격 서 비 스 를 호출 하 는 서비스 소비자(부하 균형)
3)레 지 스 트 리 서비스 등록 및 발 견 된 등록 센터(모니터링,심장 박동,차 기,재 입)
4)Monitor 서비스 소비자 와 공급 자 는 메모리 에 호출 횟수 와 호출 시간 을 누적 하고 주동 적 으로 시간 을 정 하여 매 분 에 한 번 씩 통계 데 이 터 를 모니터링 센터 에 보 냅 니 다.
5)Container 서비스 실행 용기:원 격 호출,직렬 화
2.SpringBoot 2.0 과 통합
1.핵심 의존

<!--      Zookeeper   Dubbo   -->
<dependency>
 <groupId>com.alibaba.boot</groupId>
 <artifactId>dubbo-spring-boot-starter</artifactId>
 <version>0.2.0</version>
</dependency>
2.프로젝트 구조 설명

구조 설명

dubbo-consume:     
dubbo-provider:     
dubbo-common:     ,Dubbo  ,   
3.핵심 설정
1)공급 자 설정

server:
 tomcat:
 uri-encoding: UTF-8
 max-threads: 1000
 min-spare-threads: 30
 port: 7007
 connection-timeout: 5000ms
spring:
 application:
 name: block-dubbo-provider
# Dubbo     
dubbo:
 application:
 name: block-dubbo-provider
 registry:
 address: 127.0.0.1:2181
 protocol: zookeeper
 protocol:
 name: dubbo
 port: 20880
 scan:
 base-packages: com.boot.consume
2)소비자 배치

server:
 tomcat:
 uri-encoding: UTF-8
 max-threads: 1000
 min-spare-threads: 30
 port: 7008
 connection-timeout: 5000ms

spring:
 application:
 name: block-dubbo-consume
# Dubbo     
dubbo:
 application:
 name: block-dubbo-consume
 registry:
 address: 127.0.0.1:2181
 protocol: zookeeper
3.사례 를 보 여 준다.
1.서비스 원 격 호출
1)공급 자 서비스 인터페이스
여기 주석 을 주의 하 세 요.com.alibaba.dbbo.config.annotation.Service

@Service
@Component
public class DubboServiceImpl implements DubboService {
  private static Logger LOGGER = LoggerFactory.getLogger(DubboServiceImpl.class) ;
  @Override
  public String getInfo(String param) {
    LOGGER.info("    :{}",param);
    return "[Hello,Cicada]";
  }
  @Override
  public UserEntity getUserInfo(UserEntity userEntity) {
    LOGGER.info("     :{}",userEntity);
    return userEntity;
  }
}
2)소비자 인터페이스
여기 주해 주의 하 세 요.
  • com.alibaba.dubbo.config.annotation.Referenceorg.springframework.stereotype.Service
  • 
    @Service
    public class ConsumeService implements DubboService {
      @Reference
      private DubboService dubboService ;
      @Override
      public String getInfo(String param) {
        return dubboService.getInfo(param);
      }
      @Override
      public UserEntity getUserInfo(UserEntity userEntity) {
        return dubboService.getUserInfo(userEntity);
      }
    }
    2.인터페이스 시간 초과 설정
    이 설정 은 서비스 제공 자 에 게 설정 할 수도 있 고 서비스 소비 자 에 게 설정 할 수도 있 습 니 다.여기 서 제공 자의 설정 을 보 여 줍 니 다.설명:timeout 1)서비스 인터페이스 설명
    
    @Service(timeout = 2000)
    @Component
    public class DubboServiceImpl implements DubboService {
    }
    2)소비자 호출
    
     @Override
     public String timeOut(Integer time) {
       return dubboService.timeOut(time);
     }
    3)테스트 인터페이스
    서비스 시간 초과 이상 던 지기com.alibaba.dubbo.remoting.TimeoutException3.인터페이스 다 중 버 전 설정
    1)서비스 제공 자
    같은 인터페이스 에서 두 가지 버 전 을 제공 합 니 다.설명:version.
    버 전 1:
    
    @Service(version = "1.0.0")
    @Component
    public class VersionOneImpl implements VersionService {
      @Override
      public String getVersion() {
        return "{    :1.0.0}";
      }
    }
    버 전 2:
    
    @Service(version = "2.0.0")
    @Component
    public class VersionTwoImpl implements VersionService {
      @Override
      public String getVersion() {
        return "{    :2.0.0}";
      }
    }
    2)소비자 호출
    @Reference(version)주 해 를 통 해 서로 다른 버 전의 인 터 페 이 스 를 가리 키 며 실 현 됩 니 다.
    
    @Service
    public class VersionServiceImpl implements VersionService {
      @Reference(version = "1.0.0")
      private VersionService versionService1 ;
      @Reference(version = "2.0.0")
      private VersionService versionService2 ;
      @Override
      public String getVersion() {
        return versionService1.getVersion();
      }
      public String version2 (){
        return versionService2.getVersion() ;
      }
    }
    상기 사례 는 모두 Dubbo 홈 페이지 의 절 차 를 참조 하여 작 성 된 것 으로 Dubbo 의 많은 강력 한 기능 은 홈 페이지 의 한 걸음 한 걸음 설정 을 참고 할 수 있 습 니 다.
    소스 코드 주소
    
    GitHub  :    
    https://github.com/cicadasmile/middle-ware-parent
        :    
    https://gitee.com/cicadasmile/middle-ware-parent

    총결산
    위 에서 말 한 것 은 편집장 이 소개 한 SpringBoot 2.0 이 Dubbo 프레임 워 크 를 통합 하여 RPC 서비스 원 격 호출 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
    만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

    좋은 웹페이지 즐겨찾기