Dubbo:自測自擬專案搭建provider
然後匯入相應的配置資訊:
先配置dubbo:
然後配置zookeeper:
下圖可知:dubbo依賴已經預設攜帶下載了spring很多的包
然後開始程式碼程式設計:
先定義一個介面:
然後寫實現:
package com.test.service; public interface UserService { void register(String name , String password); void login(String name,String password); }
寫好實現:
package com.test.service.impl; import org.springframework.stereotype.Service; import com.test.service.UserService; /** * 不考慮dubbo的任何問題,正常開發 * 只考慮spring管理的問題 * spring容易管理服務物件 * 1.bean標籤管理 * 2.註解管理 * 使用註解管理, 容易導包錯誤. Dubbo也提供了service註解. 但是dubbo的service註解 * 有程式碼衝突. 在大多數情況下. 和spring-context, spring-tx有衝突. * Dubbo的service註解, 在2.5.3版本中(使用spring2.5)註解無衝突 * @author Administrator * */ @Service public class UserServiceImpl implements UserService { public void register(String name, String password) { //可以寫mapper 訪問資料庫 增加或查詢等等的邏輯 我這裡只是列印一下 System.out.println("register方法執行:"+name +";"+password); } public void login(String name, String password) { System.out.println("login方法執行:"+name +";"+password); } }
配置
配置檔案:applicationContext-dubbo
1.先配檔案頭:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> </beans>
2.dubbo配置. Dubbo的配置資訊,必須匯入新的namespace. namespace可以通過dubbo的jar包查詢.
配置檔案的約束資訊所在位置: dubbo.jar/META-INF/dubbo.xsd
新增dubbo.xsd,不新增可能就不會有相應的提示啊什麼的:
頭空間匯入--dubbo名稱空間定義:
複製出來(注意上面的檔案頭中是新增過的):
dubbo.xsd :
dubbo標籤配置
dubbo.xsd就在你的dubbo.jar包裡,解壓後在路徑裡dubbo\META-INF就可以找到
配置參考:https://blog.csdn.net/dhq_blog/article/details/81123712
比如要配置 dubbo的registry 標籤配置如下操作搜尋:
標籤型別裡面包括的就是子標籤和屬性列表。
當然也可以看api檢視這些配置。
配置啟動類:
啟動類程式碼,注意配置檔案的位置,放到resource下面的新建的spring包裡了,直接放resource下面掃面不到:
package com.testDubo.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) throws Exception {
// 1. 建立spring容器. 並掃描配置檔案. ClassPathXmlApplicationContext繼承了Thread
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("classpath:spring/*.xml");
System.out.println("Provider 正在啟動...");
// 2. 啟動spring容器.
context.start();
System.out.println("provider 已啟動...");
// 3. 執行緒阻塞. 如果執行緒終止, 則服務端程式碼停止. 釋出的服務失效.
System.in.read();
}
}
windows啟動zookeeper,然後啟動啟動類,註冊中心前後對比:
開啟zkCli連線zookeeper,然後
執行 ls /dubbo
如上圖,已註冊成功
再執行:
ls /dubbo/com.testDubo.service.UserService/providers
dubbo%3A%2F%2F172.17.16.1%3A20880%2Fcom.testDubo.service.UserService%3Fanyhost% Dtrue%26application%3Dtest-provider-001%26dubbo%3D2.5.7%26generic%3Dfalse%26int rface%3Dcom.testDubo.service.UserService%26methods%3Dlogin%2Cregister%26pid%3D6 52%26side%3Dprovider%26timestamp%3D1543123080324 |
以上是做過編碼了
解碼仿照如下:
如 之前:
轉換後:
所以現在可以知道zookeeper上的dubbo節點裡註冊了所有的呼叫地址以及介面詳細資訊。