Dubbo專案搭建
本節我們演示下dubbo專案的搭建,服務端和客戶端進行遠端通訊,通過zookeeper進行註冊的實現。
專案結構圖
Dubbo-client客戶端
Dubbo-host 宿主服務
Dubbo-model實體Model
Dubbo-service服務
Dubbo-service-impl服務實現
專案分為5個模組,客戶端使用的時候只需把介面Dubbo-service和Dubbo-model給客戶端,進行遠端呼叫model
model層需要實現序列化介面Serializable
dubbo-servicepackage 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; } }
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