Spring boot 통합 Dubbox 방법 예시

8258 단어 SpringbootDubbox
머리말
업무 상의 이유 로 프로젝트 에 dubbo 를 통합 해 야 하기 때문에 dubbo 관련 문 서 를 조회 한 결과 dubbo 는 현재 업데이트 되 지 않 았 기 때문에 dubbox 에 눈 을 돌 렸 습 니 다.dubbox 는 해당 네트워크 에서 dubbo 를 바탕 으로 2 차 개발 한 프로젝트 입 니 다.dubbox회사 프로젝트 중 하 나 는 spring mvc 3.0 을 바탕 으로 하 는 것 이 고 하 나 는 spring boot 을 바탕 으로 하 는 것 입 니 다.한편,spring boot 는 상대 적 으로 문서 가 적 기 때문에 이 글 은 spring boot 에서 dubbox 를 어떻게 계승 하 는 지 기록 합 니 다.
1.zookeeper 설치
1.zookeeper 안내
ZooKeeper 는 분포 식 이 고 소스 코드 를 개방 하 는 분포 식 응용 프로그램 조율 서비스 로 Google 의 Chubby 오픈 소스 의 실현 이 며 Hadoop 과 Hbase 의 중요 한 구성 요소 입 니 다.이것 은 분포 식 응용 에 일치 성 서 비 스 를 제공 하 는 소프트웨어 로 유지 보수,도 메 인 네 임 서비스,분포 식 동기 화,그룹 서비스 등 을 포함한다.
ZooKeeper 의 목 표 는 복잡 하고 오류 가 발생 하기 쉬 운 관건 적 인 서 비 스 를 밀봉 하고 간단 하고 사용 하기 쉬 운 인터페이스 와 성능 이 효율 적 이 고 기능 이 안정 적 인 시스템 을 사용자 에 게 제공 하 는 것 이다.
한편,dubbo 는 zookeeper 에 의존 하 는 분포 식 프레임 워 크 입 니 다.물론 2 차 개발 한 dubbox 도 zookeeper 에 의존 할 것 입 니 다.그래서 우 리 는 먼저 zookeeper 를 설치 해 야 합 니 다.
2,다운로드 zookeeper
zookeeper 홈 페이지 주소http://zookeeper.apache.org/
다운로드 주소http://apache.fayea.com/zookeeper/
로 컬 다운로드 주소,더욱 편리 함:https://www.jb51.net/softs/578345.html
3.zookeeper 설치
저 는 Windows 환경 에서 설정 되 어 있 기 때문에 windows 아래 설정 을 간단히 말씀 드 리 겠 습 니 다.먼저 압축 패 키 지 를 풀 고 conf 폴 더 에 들 어가 zoosample.cfg 를 복사 하여 복사 본 을 만 든 다음 zoo.cfg 로 이름 을 바 꿉 니 다.zookeeper 는 zoo.cfg 만 식별 하기 때문에 기본적으로 이 파일 이 없습니다.zoosample.cfg 는 기본 설정 파일 입 니 다.그러나 파일 이름 때문에 zookeeper 는 식별 할 수 없습니다.물론 zoo 라 는 이름 을 직접 바 꿉 니 다.sample.cfg 도 괜 찮 습 니 다.마음 에 드 는 것 만 보 세 요.
4.zookeeper 시작
윈도 환경 에서 빈 디 렉 터 리 에 있 는 zkServer.cmd 를 직접 실행 하면 됩 니 다.리 눅 스 환경 이 라면 빈 디 렉 터 리 에서 실행 합 니 다.

./zkServer.sh start
명령 하면 zookeeper 를 시작 할 수 있 습 니 다.
5,dubbox 의존 추가 

  <dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>dubbo</artifactId>
   <version>2.8.4</version>
  </dependency>
  <dependency>
   <groupId>com.101tec</groupId>
   <artifactId>zkclient</artifactId>
   <version>0.9</version>
  </dependency>
  <dependency>
   <groupId>org.apache.zookeeper</groupId>
   <artifactId>zookeeper</artifactId>
   <version>3.4.6</version>
   <exclusions>
    <exclusion>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-log4j12</artifactId>
    </exclusion>
    <exclusion>
     <groupId>log4j</groupId>
     <artifactId>log4j</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
주의 하 세 요.여기 dubbo 의 2.8.4 버 전 은 제 가 직접 컴 파일 한 것 입 니 다.이것 은 maven 창고 에 없습니다.dubbo 는 이미 업데이트 되 지 않 았 고 2.8.4 는 해당 네트워크 의 dubbox 이기 때문에 사용 하려 면 dubbox 를 컴 파일 하거나 오래된 버 전의 dubbo 를 사용 하 십시오.
6.서비스 제공 자의 인터페이스 클래스 추가:

package wang.raye.dubbo.interfaces;
public interface DubboInterface {
 public String hello(String name);
}

인터페이스 구현 클래스:

package wang.raye.dubbodemo1;
import org.springframework.stereotype.Service;
import wang.raye.dubbo.DubboInterface; 
@Service
public class DubboImpl implements DubboInterface {
 public String hello(String name) {
  return "hello "+name+" this is dubbodemo1";
 }

}

7.dubbo 설정 xml xml 파일 을 sources 폴 더 에 추가 합 니 다.이름 은 마음대로 명명 할 수 있 습 니 다.저 는 dubbo.xml 입 니 다.

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:jee="http://www.springframework.org/schema/jee"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
 xmlns:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
 http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
 http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd
 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"
 default-lazy-init="false" >
 <!--          ,          ,  dubbo                   -->  
 <dubbo:application name="dubbo-provider1"></dubbo:application> 
 <!--          
 <dubbo:annotation package="wang.raye.dubbodemo1" /> -->
 <!--   zookeeper           --> 
 <dubbo:registry address="zookeeper://192.168.1.126:2181" check="false" subscribe="false" register=""></dubbo:registry>
 <!--         -->
 <dubbo:service interface="wang.raye.dubbo.interfaces.DubboInterface" ref="dubboImpl" /> 
</beans> 
여기 에는 각 노드 마다 해석 이 있어 서 너무 많은 해석 을 믿 을 수 없다.
8.소비자 배치
클래스 에서 원 격 공급 자 참조

package wang.raye.dubbodemo3.controller;
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.ResponseBody;
import wang.raye.dubbo.DubboInterface;
@Controller
public class DubboControll {

 @Autowired
 private DubboInterface interface1;
 @RequestMapping("/hello")
 @ResponseBody
 public String hello(String name){
  return interface1.hello(name);
 }
}
소비자 xml 설정

<beans xmlns="http://www.springframework.org/schema/beans" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" 
 xsi:schemaLocation="http://www.springframework.org/schema/beans   
 http://www.springframework.org/schema/beans/spring-beans.xsd   
 http://code.alibabatech.com/schema/dubbo   
 http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> 
 <!--       ,        ,      ,         --> 
 <dubbo:application name="dubbo-custom-dsp"/> 
 <dubbo:registry address="zookeeper://192.168.1.126:2181" /> 
 <!--         ,     bean    demoService --> 
 <dubbo:reference id="dubboService" interface="wang.raye.dubbo.interfaces.DubboInterface" /> 
</beans> 
여기 도 모든 접점 에 주석 이 있 으 니 더 이상 말 할 필요 가 없 을 것 입 니 다.또한 본 고 는 dubbo 설정 을 중시 하 는 것 이 아니 라 주로 spring boot 집성 dubbox 를 말 합 니 다.
9.dubbo 설정 xml 를 참조 하여 Spring boot 의 Application 류 에 주 해 를 추가 합 니 다.

@ImportResource({"classpath:dubbo.xml"})
제 xml 이름 은 dubbo.xml 이기 때문에 사용 할 때 xml 이름 으로 바 꿔 야 합 니 다.주의:소비자 프로젝트 와 서비스 제공 자의 프로젝트 의 Application 류 는 모두 이 주 해 를 설정 해 야 합 니 다.
엔 딩
이로써 spring boot 통합 duubox 는 말 이 끝 났 습 니 다.물론 이렇게 말 하면 공허 할 것 입 니 다.그래서 저 는 제 가 테스트 한 프로젝트 를 github 에 올 렸 습 니 다.참고 하 셔 도 됩 니 다.물론 테스트 하려 면 dubbo.xml 의 dubbo:registry 노드 의 zookeeper 주 소 를 수정 해 야 합 니 다.
demo 주소dubbo 의 장점 을 나타 내기 위해 저 는 2 개의 서비스 제공 자 를 만 들 었 습 니 다.자주 호출 하면 이 2 개 중 하 나 를 자동 으로 선택 하고 부하 균형 도 면 제 했 습 니 다.zookeeper 가 직접 만 들 었 기 때문에 괜 찮 은 것 같 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기