머리말
작업 이유로 인해 Dubbo를 프로젝트에 통합해야하므로 Dubbo 관련 문서를 확인한 결과 Dubbo가 현재 업데이트되지 않았다는 것을 알았으므로 Dubbox에 관심을 돌 렸습니다. Dubbox는 Dubbo, Dubbox를 기반으로 Dangdang.com에서 개발 한 프로젝트입니다. 회사 프로젝트 중 하나는 Spring MVC 3.0을 기반으로하고 다른 하나는 Spring Boot를 기반으로하고 Spring Boot는 문서가 상대적으로 적기 때문에이 기사는 Spring Boot에서 Dubbox를 상속하는 방법을 기록합니다.
1. 동물원 키퍼를 설치하십시오
1. Zookeeper 소개
Zookeeper는 분산 된 오픈 소스 분산 응용 프로그램 조정 서비스입니다. Google의 통통한 오픈 소스 구현이며 Hadoop 및 HBase의 중요한 구성 요소입니다. 분산 애플리케이션에 일관된 서비스를 제공하는 소프트웨어이며 기능에는 구성 및 유지 관리, 도메인 이름 서비스, 분산 동기화, 그룹 서비스 등이 포함됩니다.
Zookeeper의 목표는 복잡하고 오류가 발생하기 쉬운 주요 서비스를 포장하고 간단하고 사용하기 쉬운 인터페이스와 효율적이고 안정적인 시스템을 사용자에게 제공하는 것입니다.
Dubbo는 Zookeeper에 의존하는 분산 프레임 워크입니다. 물론, 보조 개발 Dubbox는 분명히 Zookeeper에 의존 할 것이므로 먼저 Zookeeper를 설치해야합니다.
2. Zookeeper 다운로드
Zookeeper 공식 웹 사이트 주소 http://zookeeper.apache.org/
주소 다운로드 http://apache.fayea.com/zookeeper/
로컬 다운로드 주소는 더 편리합니다 : //www.vevb.com/softs/578345.html
3. 동물원 키퍼를 설치하십시오
Windows 환경에서 구성 했으므로 Windows 아래의 구성에 대해 간략하게 이야기하겠습니다. 먼저, 압축 패키지를 압축 한 다음 conf 폴더를 입력하고 Zoosample.cfg를 복사 한 다음 사본을 만들고 Zoo.cfg로 이름을 바꾸십시오. Zookeeper는 zoo.cfg 만 인식하고 기본값을 사용할 수 없습니다. Zoosample.cfg는 기본 구성 파일이지만 파일 이름으로 인해 Zookeeper는이를 인식 할 수 없습니다. 물론 ZOO_SAMPLE.CFG 이름을 직접 바꾸는 것은 괜찮으며 좋아하는 것에 달려 있습니다.
4. Zookeeper를 시작하십시오
BIN 디렉토리에서 Windows 환경에서 직접 zkserver.cmd를 실행하십시오. Linux 환경 인 경우 BIN 디렉토리에서 실행하십시오.
./zkserver.sh 시작
동물원 키퍼를 시작할 수 있습니다
5. Dubbox 종속성을 추가하십시오
<pectionency> <groupid> com.alibaba </groupid> <artifactid> dubbo </artifactid> <bersion> 2.8.4 </version> </fectionency> <pectionement> <groupid> com.101tec </groupid> <artifactid> zkclient </artifactid> <9 </version> </dependency> <groupid> org.apache.zookeeper </groupid> <artifactid> Zookeeper </artifactid> <bersion> 3.4.6 </version> <exclusions> <exclusion> <groupid> org.slf4j </groupid> <artifactid> slf4j-log4j12 </artifactid> <groupid> groupid> <artifactid> log4j </artifactid> </exclusion> </exclusions> </fectionency>
Dubbo가 더 이상 업데이트되지 않기 때문에 Maven 저장소에서 사용할 수없는 2.8.4 버전의 Dubbo 버전은 직접 컴파일되어 있으며 Dubbo는 더 이상 업데이트되지 않으며 2.8.4는 Dangdang.com의 Dubbox이므로 사용하려면 Dubbox를 컴파일하거나 Dubbo의 이전 버전을 사용하십시오.
6. 서비스 제공 업체의 인터페이스 클래스 추가 :
패키지 wang.raye.dubbo.interfaces; public 인터페이스 Dubbointerface {public String hello (문자열 이름);}인터페이스 구현 클래스 :
패키지 Wang.raye.dubbodemo1; import org.springframework.service; import wang.raye.dubbo.dubbointerface; @ServicePublic 클래스 Dubboimpl은 Dubbointerface {public String hello (문자열 이름) {return "hello"+name+"this is is dubbodemo1"; }}7. Dubbo 구성 XML XML 파일을 소스 폴더에 추가하십시오. 당신은 이름을 마음대로 이름을 지정할 수 있습니다. 다음은 dubbo.xml입니다
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.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/schema/" xmlns : context = "http://www.springframework.org/schema/context"xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/schema/scremans/sprdeans- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.spramework.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 : "wang.raye.dubbodemo1" />-> <!-kukeeper 등록 센터를 사용하여 서비스 주소를 노출시킵니다. 주소 = "Zookeeper : //192.168.1.126 : 2181"check = "false"subscribe = "false"repight = ""> </dubbo : registry> <!-노출 될 인터페이스를 노출-> <dubbo : service interface = "wang.raye.dubbo.interfaces.dubbointerface"ref = "dubboimpl"/> </beans ".
여기의 모든 노드에는 설명이 있습니다. 설명이 너무 많지 않을 것이라고 생각합니다.
8. 소비자를 구성하십시오
수업 시간에 원격 제공 업체에 대한 참조
Package Wang.raye.dubbodemo3.controller; import org.springframework.bean.beans.annotation.autowired; org.springframework.stereotyp.controller import; org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.responsebody; import wang.raye.dubbo.dubbointerface; @controllerpublic 클래스 DubboControll {@autowired private dubbointerface interface1; @RequestMapping ( "/hello") @ResponseBody public String Hello (String Name) {return interface1.Hello (이름); }}소비자의 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/schema/schema. 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 : registres : //192.19.126 : 168.126 : <!-원격 서비스 에이전트를 생성하면 로컬 콩과 같은 Demoservice를 사용할 수 있습니다-> <dubbo : reference id = "dubboservice"interface = "wang.raye.dubbo.interfaces.dubbointerface" /> < /beans>
여기에는 의견이 있으므로 더 많은 말을 할 필요가 없습니다. 또한이 기사는 Dubbo 구성에주의를 기울이지 않지만 주로 Spring Boot Integration Dubbox에 대해 이야기합니다.
9. Spring Boot 응용 프로그램 클래스에 주석을 추가하려면 Dubbo 구성 XML 참조
@importresource ({ "classpath : dubbo.xml"})내 XML 이름은 dubbo.xml이므로 사용하면 자신의 XML 이름으로 변경해야합니다. 참고 : 소비자 프로젝트 및 서비스 제공 업체 프로젝트의 애플리케이션 클래스는이 주석으로 구성해야합니다.
종결
이 시점에서 Spring Boot Integration Duubox가 완료되었습니다. 물론, 이것을 말하는 것은 비어 있어야하므로 테스트 한 프로젝트가 Github에 업로드되었습니다. 당신은 그것을 참조 할 수 있습니다. 물론 테스트하려면 Dubbo.xml의 Dubbo : Registry 노드에서 Zookeeper 주소를 수정해야합니다.
데모 주소, Dubbo의 장점을 보여주기 위해 두 개의 서비스 제공 업체를 만들었습니다. 자주 전화하면이 두 가지 중 하나를 자동으로 선택하고 부하 밸런싱을 피할 수도 있습니다. Zookeeper 자체가 수행해야하므로 꽤 좋다고 생각합니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.