1. 程式人生 > >Dubbo專案搭建

Dubbo專案搭建

       本節我們演示下dubbo專案的搭建,服務端和客戶端進行遠端通訊,通過zookeeper進行註冊的實現。

      專案結構圖

  

Dubbo-client客戶端

Dubbo-host 宿主服務

Dubbo-model實體Model

Dubbo-service服務

Dubbo-service-impl服務實現

專案分為5個模組,客戶端使用的時候只需把介面Dubbo-service和Dubbo-model給客戶端,進行遠端呼叫

model

model層需要實現序列化介面Serializable

package com.dubbo.model;

import java.io.Serializable;

public class ProductModel implements Serializable {

	//產品名稱
	private String name;
	
	//產品編碼
	private String code;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	
}
dubbo-service
package com.dubbo.service;

import java.util.List;

import com.dubbo.model.ProductModel;

public interface ProductService {
	
	public  List<ProductModel> GetAllProcuct();

}

dubbo-service-impl
package com.dubbo.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.dubbo.model.ProductModel;
import com.dubbo.service.ProductService;

public class ProductServiceImpl implements ProductService  {

	
	public List<ProductModel> GetAllProcuct() {
		// TODO Auto-generated method stub
		List<ProductModel> list=new ArrayList<ProductModel>();
		
		ProductModel  model1=new ProductModel();
		model1.setCode("001");
		model1.setName("可口可樂");
		list.add(model1);
		
		ProductModel  model2=new ProductModel();
		model2.setCode("002");
		model2.setName("百事可樂");
		list.add(model2);
		
		
		ProductModel  model3=new ProductModel();
		model3.setCode("003");
		model3.setName("非常可樂");
		list.add(model3);
		
		return list;
	}

}

宿主host

applicationContext.xml

<?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: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://code.alibabatech.com/schema/dubbo  
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd  
        ">  
   
    <!-- 具體的實現bean -->  
   <bean id="productService" class="com.dubbo.service.impl.ProductServiceImpl" />  
      
  <!-- 提供方應用資訊,用於計算依賴關係 -->  
   <dubbo:application name="provider"  />  
   <dubbo:monitor protocol= "registry" />
   <!-- 使用zookeeper註冊中心暴露服務地址 -->  
   <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183" />   
      <!-- <dubbo:registry address="zookeeper://127.0.0.1:2181" />    -->
   <!-- 用dubbo協議在20880埠暴露服務 -->  
   <dubbo:protocol name="dubbo" port="20880" />  
 
   <!-- 宣告需要暴露的服務介面 -->  
  <dubbo:service interface="com.dubbo.service.ProductService" ref="productService" />  
    
</beans>  

package com.dubbo.host;

import java.io.IOException;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
    	
    	ClassPathXmlApplicationContext  context =new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"});  
        context.start();  

        System.out.println( "dubbol服務啟動" );
        try {
			System.in.read();
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        System.out.println("關閉服務");
        context.close();
    }
}

cllient

<?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: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://code.alibabatech.com/schema/dubbo  
        http://code.alibabatech.com/schema/dubbo/dubbo.xsd  
        ">  
   


      
  <!-- 提供方應用資訊,用於計算依賴關係 -->  
   <dubbo:application name="consumer"  />  
  
   <!-- 使用zookeeper註冊中心暴露服務地址 -->  
   <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183" />   
     <!--  <dubbo:registry address="zookeeper://127.0.0.1:2181" />   --> 
   
   <!--   <dubbo:monitor protocol= "registry" /> -->
  <dubbo:reference id="productService"  
       interface="com.dubbo.service.ProductService" />  

    
</beans>  

package com.dubbo.client;

import java.util.List;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dubbo.model.ProductModel;
import com.dubbo.service.ProductService;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
    	
    
     	ClassPathXmlApplicationContext  context =new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"});  
        context.start();  

    	 
        ProductService service = (ProductService) context.getBean("productService"); //  
    	       List<ProductModel> list =service.GetAllProcuct();
    	     for(ProductModel model:list)
    	     {
    	    	 System.out.println(model.getCode()+"--"+model.getName());
    	    	 
    	     }

        System.out.println( "dubbo呼叫完成!" );
    }
}

程式碼下載

http://download.csdn.net/detail/zx13525079024/9601687

相關推薦

Dubbo專案搭建

       本節我們演示下dubbo專案的搭建,服務端和客戶端進行遠端通訊,通過zookeeper進行註冊的實現。       專案結構圖    Dubbo-client客戶端 Dubbo-host 宿主服務 Dubbo-model實體Model Dubbo-serv

專案拆分搭建dubbo專案(二)dubbo專案搭建例項與應用

dubbo專案的配置根據上一篇文章,我們已經建立好兩專案一個xxx-common一個xxx-service並建立好相應的目錄結構開始配置配置檔案內容一、配置pom.xml 檔案,    (1)payment-common的pom.xml檔案配置        配置上使用的父專

Dubbo(一) —— 基礎知識和專案搭建

<!-- 1、指定當前服務/應用的名字(同樣的服務名字相同,不要和別的服務同名) --> <dubbo:application name="boot-user-service-provider"></dubbo:application>

Dubbo:自測自擬專案搭建consumer

建立maven專案之consumer,同建立provider一樣。  pom新增: 先建立介面: 寫實現:  寫實現邏輯: package com.testDubo.service.impl; import org.springfram

Dubbo:自測自擬專案搭建provider

然後匯入相應的配置資訊:  先配置dubbo:   然後配置zookeeper: 下圖可知:dubbo依賴已經預設攜帶下載了spring很多的包    然後開始程式碼程式設計: 先定義一

電商專案day01(dubbo+ssm搭建分散式運用)

一、網際網路和傳統專案的區別 傳統專案   企業內部管理系統             OA 辦公自動化系統         CRM

專案拆分搭建dubbo專案(一)搭建dubbo專案

場景:將大專案中的某個模組功能拆出成一個獨立的dubbo模組,大專案引用dubbo專案暴露的介面來引用dubbo專案中模組的功能。以後此模組的問題全在單獨的dubbo專案中維護即可,釋出版本的時候只將dubbo專案的jar包替換無需停掉整個專案去釋出版本。對於bug修復等發版

搭建dubbo專案解決dubbo.xml標籤報錯的問題

- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dubbo:application'.- schema_reference.4: Failed to

dubbo測試專案搭建

pom.xml pom.xml檔案主要分三部分dubbo+zookeeper+zkclient <dependency> <groupId>

dubbo+zookeeper 分散式專案搭建

一、簡介1.1 dubbo介紹Dubbo是阿里巴巴公司開源的一個高效能優秀的服務框架,使得應用可通過高效能的 RPC 實現服務的輸出和輸入功能,可以和 Spring框架無縫整合。1.2主要核心部件Remoting: 網路通訊框架,實現了 sync-over-async 和 r

Spring +SpringMVC+mybatis+dubbo idea分層專案搭建

 前言:        這是我們常用的專案結構,一個稍微大一點的專案都會用到分散式,索性今天就把dubbo也加上,至於為什麼要用idea,應為個人喜歡這款編輯器吧。下面我們就開始。第一步:專案結構建立整體結構是這樣的,採用的是三層專案結構,整體pom.xml應用流程是這樣的:

dubbo分散式學習(一)---------專案搭建demo

         private static final long serialVersionUID = 1L;               private Integer id;     private String userAdress;//使用者地址     private String userId

Dubbo】Zookeeper+Dubbo專案demo搭建

一、Dubbo的註解配置 在Dubbo 2.6.3及以上版本提供支援。 1、@Service(全路徑@org.apache.dubbo.config.annotation.Service) 配置服務提供方用以暴露服務,添加於api介面的實現類上,並可通過註解提供的屬性進一步定製化服務。 其中比較重要的

基於spring及zookeeper的dubbo工程搭建

控制 服務配置 logs 顯示 zookeeper xxx .html 80端口 代理 一、生產者搭建 新建一個maven工程,勾選Create a simple project Packaging方式選擇jar包的方式。 修改pom.xml文件: <proje

dubbo框架及dubbo環境搭建

article bsp sof OS size tails AC sdn microsoft https://blog.csdn.net/liuhaiabc/article/details/52781351dubbo框架及dubbo環境搭建 dubbo框架及dubbo環境搭

初學第一日struts2專案搭建過程--萌新們一起來學習交流一下吧

初學第一日struts2專案搭建過程 1:新建一個普通的javawe## 標題b專案(建立的步驟很簡單就貼一張建立好的圖) 2:新建檢視層 jsp頁面(可以新建兩個jsp頁面,註冊和顯示頁面) 3:新建一個控制層 RegisterAction 類 4:在web-info 下的li

struts2專案搭建過程

struts2專案搭建過程 1:新建一個普通的javaweb專案 2:新建檢視層 jsp頁面 3:新建一個控制層 RegisterAction 類 4:在web-inf 下的lib 裡邊新增Struts2所需要的jar包 5:在

微信公眾號開發——專案搭建

一  前往微信公眾平臺(https://mp.weixin.qq.com/)獲取開發許可權和開發賬號,公眾號分為好幾種,小程式,訂閱號,服務號,企業號,個人只能用訂閱號,許可權比較少(api介面許可權); 二 想要自定義模組功能或者是回覆資訊啥的,就得有一個自己的後臺來寫介面,

Vuex的基本概念、專案搭建、入坑點

前言:Vuex是一個專門為Vue.js應用程式開發的狀態管理模式, 它採用集中式儲存管理所有元件的公共狀態, 並以相應的規則保證狀態以一種可預測的方式發生變化. Vuex的四大核心 1.state 驅動應用的資料來源2.mutations 基因突變 類如C# 屬性get set3.actions 行為

springboot2.0 快速專案搭建專案的配置(start.spring.io)

訪問 https://start.spring.io/ 輸入專案先關資訊  通過 Search for dependencies 搜尋先關模組並新增 然後點選Generate Project 生成專案的程式碼 會生成一個壓縮吧將壓縮包進行解壓&n