คำนำ
เนื่องจากเหตุผลในการทำงานจำเป็นต้องรวม Dubbo เข้ากับโครงการดังนั้นฉันจึงตรวจสอบเอกสารที่เกี่ยวข้องกับ Dubbo และพบว่า Dubbo ยังไม่ได้รับการปรับปรุงในปัจจุบันดังนั้นฉันจึงหันความสนใจไปที่ Dubbox Dubbox เป็นโครงการที่พัฒนาโดย Dangdang.com ตาม Dubbo, Dubbox เนื่องจากหนึ่งในโครงการของ บริษัท ขึ้นอยู่กับ Spring MVC 3.0 และอีกโครงการหนึ่งขึ้นอยู่กับ Spring Boot และ Spring Boot มีเอกสารค่อนข้างน้อยดังนั้นบทความนี้จึงบันทึกวิธีการสืบทอด Dubbox ภายใต้ Spring Boot
1. ติดตั้ง zookeeper
1. บทนำสู่ Zookeeper
Zookeeper เป็นบริการประสานงานแอปพลิเคชันแบบกระจายโอเพ่นซอร์ส มันเป็นการใช้งานโอเพนซอร์สของ Google Chubby และเป็นองค์ประกอบสำคัญของ Hadoop และ HBase เป็นซอฟต์แวร์ที่ให้บริการที่สอดคล้องกันสำหรับแอปพลิเคชันแบบกระจายและฟังก์ชั่นของมันรวมถึง: การกำหนดค่าและการบำรุงรักษา, บริการชื่อโดเมน, การซิงโครไนซ์แบบกระจาย, บริการกลุ่ม ฯลฯ
เป้าหมายของ Zookeeper คือการจัดทำแพ็คเกจบริการคีย์ที่ซับซ้อนและมีข้อผิดพลาดและให้ผู้ใช้มีอินเทอร์เฟซที่ใช้งานง่ายและใช้งานง่ายและระบบที่มีประสิทธิภาพและมีเสถียรภาพ
Dubbo เป็นเฟรมเวิร์กแบบกระจายที่ต้องอาศัย Zookeeper แน่นอนว่า Dubbox Development Development จะพึ่งพา Zookeeper แน่นอนดังนั้นเราต้องติดตั้ง Zookeeper ก่อน
2. ดาวน์โหลด ZooKeeper
zookeeper เว็บไซต์อย่างเป็นทางการที่อยู่ http://zookeeper.apache.org/
ดาวน์โหลดที่อยู่ http://apache.fayea.com/zookeeper/
ที่อยู่ดาวน์โหลดในพื้นที่สะดวกกว่า: //www.vevb.com/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 ในไดเรกทอรี bin โดยตรงในสภาพแวดล้อม Windows หากเป็นสภาพแวดล้อม Linux ให้เรียกใช้ในไดเรกทอรี Bin
./zkserver.sh เริ่มต้น
สามารถเริ่มต้นได้
5. เพิ่มการพึ่งพา Dubbox
<การพึ่งพา> <roupId> com.alibaba </groupId> <ratifactid> Dubbo </artifactid> <cersion> 2.8.4 </เวอร์ชัน> </การพึ่งพาอาศัย> <การพึ่งพาอาศัย <roupId> org.apache.zookeeper </groupid> <ratifactid> Zookeeper </artifactid> <cersion> 3.4.6 </เวอร์ชัน> <exclusions> <exclusion> <scolusion> <ArtIfactId> log4j </artifactId> </excusion> </การยกเว้น> </การพึ่งพาอาศัย>
โปรดทราบว่า Dubbo เวอร์ชัน 2.8.4 ที่นี่รวบรวมด้วยตัวเองซึ่งไม่สามารถใช้งานได้ในที่เก็บ Maven เนื่องจาก Dubbo ไม่ได้รับการอัปเดตอีกต่อไปในขณะที่ 2.8.4 เป็น Dubbox ของ Dangdang.com ดังนั้นหากคุณต้องการใช้
6. เพิ่มคลาสอินเตอร์เฟสของผู้ให้บริการ:
แพ็คเกจ wang.raye.dubbo.interfaces; อินเตอร์เฟสสาธารณะ Dubbointerface {สตริงสาธารณะสวัสดี (ชื่อสตริง);}คลาสการใช้งานอินเตอร์เฟส:
แพ็คเกจ wang.raye.dubbodemo1; นำเข้า org.springframework.stereotype.service; นำเข้า wang.raye.dubbo.dubbointerface; @ServicePublic คลาส Dubboimpl ใช้ dubbointerface {สตริงสาธารณะสวัสดี (ชื่อสตริง) {return "hello"+name+"นี่คือ dubbodemo1"; -7. เพิ่มไฟล์ Dubbo Configuration XML XML ลงในโฟลเดอร์ Sources คุณสามารถตั้งชื่อชื่อได้ตามต้องการ นี่คือ dubbo.xml
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://ww.w3.org/2001/xml xmlns: jee = "http://www.springframework.org/schema/jee" xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: dubbo = "http:/ xmlns: context = "http://www.springframework.org/schema/context" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/scha http://www.springframework.org/schema/jee/spring-jee-3.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbobbo.alibabatech.com/dubbobbo.alibabatech.com/dubbo. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd "ข้อมูลเริ่มต้นที่จะเริ่มต้น หน้าการจัดการ Dubbo ของเราชัดเจนว่าแอปพลิเคชันที่เปิดเผย-> <dubbo: แอปพลิเคชันชื่อ = "Dubbo-Provider1"> </bbo: แอปพลิเคชัน> <!-เปิดเผยอินเทอร์เฟซโดยใช้คำอธิบายประกอบ <Dubbo: Annotation Package = "Wang.raye.DubBodemo1" />-> <! address = "zookeeper: //192.168.1.126: 2181" ตรวจสอบ = "false" subscribe = "false" register = ""> </dubbo: รีจิสทรี> <!
ทุกโหนดที่นี่มีคำอธิบายฉันเชื่อว่ามันจะไม่เป็นคำอธิบายมากเกินไป
8. กำหนดค่าผู้บริโภค
การอ้างอิงถึงผู้ให้บริการระยะไกลในชั้นเรียน
แพ็คเกจ wang.raye.dubbodemo3.controller; นำเข้า org.springframework.beans.factory.annotation.autowired; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.web.bind.annotation.requestmapping; นำเข้า org.springframework.web.bind.annotation.responsebody; นำเข้า wang.raye.dubbo.dubbointerface; @controllerpublic คลาส Dubbocontroll {@autowired Private Dubbointerface Interface1; @RequestMapping ("/hello") @ResponseBody สตริงสาธารณะสวัสดี (ชื่อสตริง) {return interface1.hello (ชื่อ); -การกำหนดค่า XML ของผู้บริโภค
<ถั่ว xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo/dubbo.xsd "> <!-ชื่อแอปพลิเคชันผู้บริโภคใช้ในการคำนวณการพึ่งพา, ไม่จับคู่เงื่อนไขไม่เหมือนกับผู้ให้บริการ-> <dubbo: แอปพลิเคชันชื่อ =" Dubbo-DSP "/> /> <!-สร้างตัวแทนบริการระยะไกลคุณสามารถใช้ Demoservice เช่นถั่วท้องถิ่น-> <dubbo: อ้างอิง ID = "DubBoservice" อินเตอร์เฟส = "wang.raye.dubbo.interfaces.dubbointerface" /> </epeans>
มีความคิดเห็นที่นี่ดังนั้นจึงไม่จำเป็นต้องพูดเพิ่มเติม ยิ่งกว่านั้นบทความนี้ไม่ได้ให้ความสนใจกับการกำหนดค่า Dubbo แต่ส่วนใหญ่พูดถึง Dubbox Integration Spring Boot Integration
9. การอ้างอิงการกำหนดค่า Dubbo XML เพื่อเพิ่มคำอธิบายประกอบในคลาสแอปพลิเคชัน Spring Boot Application
@importresource ({"classpath: dubbo.xml"})เนื่องจากชื่อ XML ของฉันคือ dubbo.xml เมื่อคุณใช้คุณต้องเปลี่ยนเป็นชื่อ XML ของคุณเอง หมายเหตุ: คลาสแอปพลิเคชันของโครงการผู้บริโภคและโครงการผู้ให้บริการจะต้องกำหนดค่าด้วยคำอธิบายประกอบนี้
ตอนจบ
ณ จุดนี้ Duubox รวมการบูตสปริงเสร็จสิ้นแล้ว แน่นอนว่ามันจะต้องว่างเปล่าที่จะพูดแบบนี้ดังนั้นโครงการที่ฉันทดสอบจึงถูกอัปโหลดไปยัง GitHub คุณสามารถอ้างถึงมันได้ แน่นอนถ้าคุณต้องการทดสอบคุณต้องแก้ไขที่อยู่ Zookeeper ใน Dubbo: Registry Node ของ Dubbo.xml
ที่อยู่ตัวอย่างเพื่อแสดงข้อดีของ Dubbo ฉันได้สร้างผู้ให้บริการสองราย ถ้าฉันโทรหาบ่อยครั้งฉันจะเลือกทั้งสองอย่างโดยอัตโนมัติและหลีกเลี่ยงการปรับสมดุลโหลด มันควรจะทำโดย zookeeper เองดังนั้นฉันรู้สึกว่ามันค่อนข้างดี
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น