dubbo+zookeeper+springboot構建服務

本次和大家分享的是dubbo框架應用的初略配置和zookeeper註冊中心的使用;說到註冊中心現在我使用過的只有兩種:zookeeper和Eureka,zk我結合dubbo來使用,而Eureka結合springcloud使用,因此後面將和大家分享一些關於微服務的一些篇章,希望對你有好的幫助。

安裝註冊中心zookeeper

dubbo框架之provider和consumer

dubbo-admin部署

安裝註冊中心zookeeper

首先,我們需要在網上搜索下zookeeper下載地址,我這裡是linux系統,所以下載了zookeeper-3.3.6.tar.gz包,通過 tar -zxvf zookeeper- 3.3 . 6 .tar.gz 解壓出來,需要注意的是一般的包裡面配置文件都是默認的sample版本,zookeeper默認配置文件名只zoo.cfg,為了不每次指定文件名來運行,因此需要我們自己在conf目錄下創建一個名稱為zoo.cfg的配置文件,文件內容可以從zoo_sample.cfg拷貝或者把這個文件重命名都行,內容如下 vim zoo.cfg :

1# The number of milliseconds of each tick2tickTime=2000#心跳頻率3# The number of ticks that the initial 4# synchronization phase can take5initLimit=10#限制連接6# The number of ticks that can pass between 7# sending a request and getting an acknowledgement8syncLimit=59# the directory where the snapshot is stored.10dataDir=/tmp/zookeeper#數據存儲文件夾11# the port at which the clients will connect12clientPort=2081#zookeeper對外的端口

vim zoo.cfg:查看文件內容

insert:執行插入命令

esc:取消命令,再接著按:q:退出,:wq:保存並退出

當有了zoo.cfg後,我們只需要進入她的bin目錄裡面查找zkServer.sh文件,通過執行: ./zkServer.sh start 命令啟動zookeeper註冊中心,正常啟動提示如:

dubbo+zookeeper+springboot構建服務

通常情況是zookeeper作為註冊中心在單獨的一臺服務器上,而程序(這裡指我本地)需要調用另外註冊中心需要檢查zookeeper開放的端口是否能通,我本地是window10因此可以不需要通過zookeeper客戶端去驗證端口,只需要通過 telnet ip 2081 就能檢測出是否端口開放;

dubbo框架之provider和consumer

首先為了方便,我們需要定義一個統一的接口,該接口就是業務抽出來的公用接口,我們單獨對這種接口包裝成一個module,我這裡是 dubbo_api ,我們在這個module中定義如下的接口:

1publicinterfaceUserService{23List getUsers();4}

然後,創建一個 provider模塊 ,這個模塊去依賴dubbo_api模塊,並且實現UserService接口,代碼如:

1publicclassUserServiceImplimplementsUserService{23@Value("${server.port}")4privateint port;56/** 7 *@return8 */9@Override10publicList getUsers() {1112Listlist=newArrayList<>();13for(int i =0; i <5; i++) {14MoUser user =newMoUser();15user.setUserName("shenniu"+ i);16user.setUserPwd("端口:"+ port);17list.add(user);18}19returnlist;20}21}

作為服務提供者,要使用dubbo框架就需要先引入dubbo,然後再做一些配置,首先我們需要在dubbo_provider模塊通過maven引入dubbo依賴,註冊中心用的zookeeper所以也需要通過maven引入相應的依賴:

12org.apache.zookeeper3zookeeper43.4.8567com.101tec8zkclient90.3101112com.alibaba13dubbo142.5.3151617org.springframework18spring1920212223com.example24dubbo_api250.0.1-SNAPSHOT26

完成依賴後,剩下的就是對dubbo的provider的配置了,創建resources/dubbo-conf/server.xml的配置文件,文件內容:

12

5 http://www.springframework.org/schema/beans/spring-beans.xsd

6 http://code.alibabatech.com/schema/dubbo

7 http://code.alibabatech.com/schema/dubbo/dubbo.xsd">8 91011 121314 151617 181920 212223

在DubboProviderApplication入口增加資源導入 @ImportResource( " classpath:dubbo-conf/*.xml " ) ,到這裡我們的服務提供端就完成了,查看下啟動日誌:

dubbo+zookeeper+springboot構建服務

服務提供者啟動暫無異常,再來看調用方創建一個 dubbo_consumer 的moduel,同樣去引入dubbo_api公共接口的模塊依賴,然後創建一個UserController,並暴露一個get的user接口:

1@RestController2publicclassUserController{3@Autowired4privateUserService userService;56@GetMapping("/users")7publicList getUsers(){89returnuserService.getUsers();10}11}

這裡的UserService是公共接口的注入;編碼完成後剩下的就是consumer端引入dubbo和zookeeper依賴了:

12org.apache.zookeeper3zookeeper43.4.8567com.101tec8zkclient90.3101112com.alibaba13dubbo142.5.3151617org.springframework18spring192021

我們同樣創建名稱resources/dubbo-conf/client.xml的配置文件,並在application入口引入這個資源:

1@ImportResource("classpath:dubbo-conf/*.xml")2@SpringBootApplication3publicclassDubboConsumerApplication{4publicstaticvoidmain(String[] args){5SpringApplication.run(DubboConsumerApplication.class, args);6}7}

client.xml的配置內容如:

12

5 http://www.springframework.org/schema/beans/spring-beans.xsd

6 http://code.alibabatech.com/schema/dubbo

7 http://code.alibabatech.com/schema/dubbo/dubbo.xsd">8 91011 121314 151617 18

這個時候一個簡單的服務提供者,服務調用者配置和編碼都完成了,3個module如下:

dubbo+zookeeper+springboot構建服務

然後分別啟動provider,consumer;再通過consumer暴露的controller接口請求接口,我這裡的地址是 http: // localhost:8082/users :

dubbo+zookeeper+springboot構建服務

效果是Consumer通過注入的UserService接口依賴調用getUsers()拿到了Provider返回的結果,也表示此次dubbo框架的簡單使用算成功了。

dubbo-admin部署

作為一個流行的rpc框架dubbo有這一個開源的監控工具dubbo-admin,不得不說現在網上現成的dubbo-admin.war包要麼現在下來不能用要麼就是下載需要csdn積分,版本多種多樣有點坑啊,果斷去git拉源碼自己打包,git地址: https: // github.com/apache/incubator-dubbo-ops ,拉下來後我們只需要關注dubbo-admin工程,其他的暫可忽略;打開項目後,我們需要改的地方只有如下截圖配置(也可以對打包後的配置文件修改):

dubbo+zookeeper+springboot構建服務

1#zookeeper配置地址和端口2dubbo.registry.address=zookeeper://127.0.0.1:20813#後臺登錄密碼4dubbo.admin.root.password=root5dubbo.admin.guest.password=guest

執行打包後,能得到名稱:dubbo-admin-2.0.0.war包,然後放在tomcat中,再通過瀏覽器瀏覽,賬號和密碼: 都是root ;登錄後能看到我們之前的啟動的provider和consumer在裡面,這就是dubbo-admin監控註冊中心服務的界面,能夠直接對這些服務做點擊操作,其他的不多說自行嘗試吧。

dubbo+zookeeper+springboot構建服務


分享到:


相關文章: