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