dubbo最全的使用教程
?
dubbo是阿里一款高性能,輕量級的rpc框架,有兩大核心功能:遠(yuǎn)程服務(wù)調(diào)用和服務(wù)治理。本文主要介紹dubbo的運用。
?
一,安裝注冊中心zookeeper
1,為什么需要注冊中心,不要能不能遠(yuǎn)程服務(wù)調(diào)用
? ? ? ?答:可以采取服務(wù)dubbo服務(wù)直連方式(@Reference注解loadbalance屬性指定調(diào)用的服務(wù)的ip端口)也能在沒有注冊中心情況下進(jìn)行遠(yuǎn)程服務(wù)調(diào)用,但每個服務(wù)的調(diào)用需要到控制臺查看ip,不利于開發(fā)。
2,為什么采用zookeeper,而不是其他
由于zookeeper工業(yè)強(qiáng)度很強(qiáng)(呵呵,以后會寫一篇文章介紹),所以官方文檔推薦它作為注冊中心。
3,安裝教程(windows為例)
? ? ? 3.1??官網(wǎng)或者百度云提取碼:j5w2下載,然后解壓
? ? ? 3.2? 把conf下zoo_sample.cfg的文件名該為zoo.cfg(最好備份),進(jìn)去內(nèi)容指定dataDir的存放地址;還有種方法是修改bin目錄下的zkEnv.cmd,把啟動的配置文件指定為zoo_sample.cfg
? ? ?3.3 雙擊zkServer.cmd啟動,如果啟動失敗請看另一篇博文https://blog.csdn.net/qq_41274660/article/details/106986911
?
二,創(chuàng)建服務(wù)提供者消費者共有接口的maven項目
1,因為dubbo是面向接口的遠(yuǎn)程服務(wù)調(diào)用,所以需要相應(yīng)的接口供服務(wù)提供者和消費者使用
2,創(chuàng)建接口,代碼示例如下(方便復(fù)制粘貼)
package dubboImp;import test.UserAddress;import java.util.List;public interface UserService {List<UserAddress> getUserAddressList(String userId); }三,創(chuàng)建服務(wù)提供者項目
1,創(chuàng)建一個springboot項目(都是和springboot整合示例),引入dubbo starter依賴和二中的項目依賴
<dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version><!--springboot2.x.x 版本對應(yīng)dubbo 0.2.x版本--></dependency>2,配置配置文件
? ? springboot和dubbo整合有三種配置方式,這里使用最常見的配置方式,其他的請百度
server:port: 8081dubbo:application:name: boot-order-service-provider #應(yīng)用名protocol: dubbo #協(xié)議registry:protocol: zookeeper #指定zookeeper為注冊中心address: 127.0.0.1:2181 #注冊中心地址 monitor:protocol: registryprovider:timeout: 30003,編寫需要暴露的服務(wù)和暴露服務(wù)
package com.fq.dubboprovider;import com.alibaba.dubbo.config.annotation.Service; import dubboImp.UserService; import org.springframework.stereotype.Component; import test.UserAddress;import java.util.Arrays; import java.util.List;@Service //這個注解暴露接口,注意是dubbo中的 public class UserServiceImpl implements UserService { @Overridepublic List<UserAddress> getUserAddressList(String userId) {UserAddress address1 = new UserAddress(1, "XXXXX", "1", "car","123456","Y");UserAddress address2 = new UserAddress(1, "YYYYYY", "2", "ea", "4562144", "Y");return Arrays.asList(address1,address2);} }4,啟動類加@EnableDubbo,如果配置文件指定了dubbo.scan.base-package則不需要
?
四,創(chuàng)建服務(wù)消費者項目
? ?1,除了編寫消費者接口外其他步驟和三一樣
? ?2,編寫消費者接口
package com.fq.dubboconsumer;import com.alibaba.dubbo.config.annotation.Reference; import dubboImp.OrderService; import dubboImp.UserService; import org.springframework.stereotype.Service; import test.UserAddress;import java.util.List;@Service public class OrderServiceImpl implements OrderService {@Reference //引用遠(yuǎn)程服務(wù)的注解private UserService userService;public List<UserAddress> initOrder(String userId) {List<UserAddress> userAddressList = userService.getUserAddressList(userId);return userAddressList;} }到了這一步之后可以寫一個請求去測試遠(yuǎn)程服務(wù)調(diào)用了
?
五,安裝dubbo控制臺
可以到官方github項目下載運行,為了方便這里提供已經(jīng)打包好的jar包,提取碼:r3sr,下載下來,控制臺java -jar命令運行即可,通過http://localhost:7001/訪問,用戶名密碼都是root。在這里對負(fù)載均衡智能容錯進(jìn)行管理,去探索吧
?
六,安裝及監(jiān)控中心
官網(wǎng)github項目下載或者百度云下載壓縮包提取碼:4ied,壓縮包下載下來后解壓,進(jìn)入/assembly.bin目錄雙擊start.bat啟動,
http://localhost:8080/訪問
?
轉(zhuǎn)載請注明出處https://blog.csdn.net/qq_41274660/article/details/107009838
總結(jié)
以上是生活随笔為你收集整理的dubbo最全的使用教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次线上服务假死排查过程
- 下一篇: 泛型(Generic)