1. 程式人生 > >Dubbo:自測自擬專案搭建provider

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節點裡註冊了所有的呼叫地址以及介面詳細資訊。