1. 程式人生 > >dubbox在異構系統中的使用

dubbox在異構系統中的使用

前端包括C#、Android等,後端採用java編寫,經考量最終選擇dubbox作為服務框架。主要步驟包括:

1. git clone dubbox,執行mvn編譯釋出。如果遇到錯誤,可以跳過: mvn install -Dmaven.test.skip=true

2. 建立api,供Android直接使用,C#客戶端無法直接使用但起到很好的參考作用。主要是dependencies的版本要一致。pom.xml如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.abel</groupId>
    <artifactId>dubbox-demo</artifactId>
    <version>1.0</version>
  </parent>
  <artifactId>dubbox-demo-api</artifactId>
  <name>dubbox demo api for both client & server</name>
  <dependencies>
  	<dependency>
  		<groupId>com.alibaba</groupId>
  		<artifactId>fastjson</artifactId>
  		<version>1.2.46</version>
  	</dependency>
  	<dependency>
  		<groupId>org.jboss.resteasy</groupId>
  		<artifactId>resteasy-jaxrs</artifactId>
  		<version>3.1.4.Final</version>
  	</dependency>
  	<dependency>
  		<groupId>com.fasterxml.jackson.core</groupId>
  		<artifactId>jackson-annotations</artifactId>
  		<version>2.3.3</version>
  	</dependency>
  	<dependency>
  		<groupId>org.codehaus.jackson</groupId>
  		<artifactId>jackson-mapper-asl</artifactId>
  		<version>1.9.13</version>
  	</dependency>
  </dependencies>
</project>

3. 建立服務實現,在tomcat中釋出執行。pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.abel</groupId>
	<artifactId>dubbox</artifactId>
	<name>dubbox-demo-spring</name>
	<packaging>war</packaging>
	<version>1.0.0</version>
	<properties>
		<java-version>1.6</java-version>
		<org.springframework-version>3.2.9.RELEASE</org.springframework-version>
		<org.aspectj-version>1.6.10</org.aspectj-version>
		<org.slf4j-version>1.6.6</org.slf4j-version>
	</properties>
	<dependencies>
		<!-- Spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${org.springframework-version}</version>
			<exclusions>
				<!-- Exclude Commons Logging in favor of SLF4j -->
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				 </exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${org.springframework-version}</version>
		</dependency>
				
		<!-- AspectJ -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>${org.aspectj-version}</version>
		</dependency>	
		
		<!-- Logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${org.slf4j-version}</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>${org.slf4j-version}</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${org.slf4j-version}</version>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.15</version>
			<exclusions>
				<exclusion>
					<groupId>javax.mail</groupId>
					<artifactId>mail</artifactId>
				</exclusion>
				<exclusion>
					<groupId>javax.jms</groupId>
					<artifactId>jms</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jdmk</groupId>
					<artifactId>jmxtools</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jmx</groupId>
					<artifactId>jmxri</artifactId>
				</exclusion>
			</exclusions>
			<scope>runtime</scope>
		</dependency>

		<!-- @Inject -->
		<dependency>
			<groupId>javax.inject</groupId>
			<artifactId>javax.inject</artifactId>
			<version>1</version>
		</dependency>
				
		<!-- Servlet -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.1</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
	
		<!-- Test -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.7</version>
			<scope>test</scope>
		</dependency> 

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.8.4</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jaxrs</artifactId>
            <version>3.1.4.Final</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-client</artifactId>
            <version>3.1.4.Final</version>
        </dependency>
        <dependency>
            <groupId>org.jboss.resteasy</groupId>
            <artifactId>resteasy-jackson-provider</artifactId>
            <version>3.1.4.Final</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.3.3</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.3.3</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.46</version>
        </dependency>
        <dependency>
            <groupId>com.abel</groupId>
            <artifactId>dubbox-demo-api</artifactId>
            <version>1.0</version>
        </dependency>
        <dependency>
        	<groupId>javax.validation</groupId>
        	<artifactId>validation-api</artifactId>
        	<version>2.0.1.Final</version>
        </dependency>
        <dependency>
        	<groupId>org.hibernate</groupId>
        	<artifactId>hibernate-validator</artifactId>
        	<version>6.0.7.Final</version>
        </dependency>
        <dependency>
        	<groupId>org.hibernate</groupId>
        	<artifactId>
        		hibernate-validator-annotation-processor
        	</artifactId>
        	<version>6.0.7.Final</version>
        </dependency>
	</dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <additionalProjectnatures>
                        <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                    </additionalProjectnatures>
                    <additionalBuildcommands>
                        <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                    </additionalBuildcommands>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>true</downloadJavadocs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <mainClass>org.test.int1.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

4. 使用postman測試通過。實現全部服務,部署到生產系統。

相關推薦

dubbox系統的使用

前端包括C#、Android等,後端採用java編寫,經考量最終選擇dubbox作為服務框架。主要步驟包括:1. git clone dubbox,執行mvn編譯釋出。如果遇到錯誤,可以跳過: mvn install -Dmaven.test.skip=true2. 建立ap

dubbox系統的使用-補充1

除了新增必要的dependencies外,其他需要設定的檔案包括:1. web.xml,載入dubbox dispatch servlet:<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.

dubbox系統的使用-整合mybatis全註解方式到spring

原來在spring中使用mybatis一直採用了mapper-xml配置檔案方式,編寫Mapper介面檔案,然後編寫對應的sql指令碼xml配置檔案,最後在spring-context.xml配置檔案中配置mapper。得益於eclipse良好的程式碼提示功能,整合並不困難。

Spring Cloud(十)整合系統Nodejs(Spring Cloud Sidecar)

一、 Sidecar簡介 什麼是Sidecar模式? Sidecar模式是一種將應用功能從應用本身剝離出來作為單獨程序的方式。該模式允許我們嚮應用無侵入新增多種功能,避免了為滿足第三方元件需求而嚮應用新增額外的配置程式碼。 就像邊車加裝在摩托車上一樣,在軟體架構

分散式系統的資料一致性架構實現

分散式異構系統的實際應用場景 在現代的系統設計裡面,由於科技的不斷更新,分散式演算法和移動計算模型,分散式計算模型的成熟, 會產生很多系統遷移的案例, 主要是系統整合以及資料的遷移和整合。 隨著基於應用域的設計和開發(DDD)的成熟,讓微服務(Mirco-Service)架構的應運而生。 就產生了各個

hystri斷路器+zuul實現ApI閘道器+Sidecar系統呼叫NodeJS

hystri斷路器:豪豬 代表了一種防禦機制 分散式系統中,依賴呼叫失敗是不可避免的,為了避免一個依賴影響全域性 Netfilx團隊開發了Hystrix,hystrix提供了熔斷 、隔離、fallback、cache、監控等功能,能在一個一個依賴出問題的情況下保證系統可用 請求合併 將一

系統間的呼叫

一.需求背景        演算法團隊使用python作為開發語言,web系統的開發人員使用java,web系統提供了一些頁面操作,使用者點選  按鈕之後,java呼叫python指令碼進行處理。 二.錯誤的選擇   &nb

系統架構標準——HSA

       前幾天看到一則新聞AMD發新Carrizo處理器http://digi.tech.qq.com/a/20150603/009450.htm 。這是第一個完整支援HSA1.0標準的產品。因為當時HSA是新生標準,沒有進入市場的產品,因此對於這個標準以前只知道是

什麼是系統

異構資料庫系統是相關的多個數據庫系統的集合,可以實現資料的共享和透明訪問,每個資料庫系統在加入異構資料庫系統之前本身就已經存在,擁有自己的DMBS。異構資料庫的各個組成部分具有自身的自治性,實現資料共享的同時,每個資料庫系統仍保有自己的應用特性、完整性控制和安全性控制。異構資

文獻筆記03-基於資料來源的網路等級考試報名管理系統設計及實現

一、基本資訊 標題:基於異構資料來源的網路等級考試報名管理系統設計及實現 時間:2008. 出版源:中國知網 領域分類:計算機應用及軟體 二、研究背景 隨著我國高校擴大招生工作的進行,高校對學生的等級考試管理工作也面臨著新的要求。全國大學英語四、六級考試,專業外語四、八級考試,計算機等級考試,普通

(相容dubbo)SOA系統架構(.net)優化升級

原文: 異構(相容dubbo)SOA系統架構(.net)優化升級 前面一片文章已經提到我司的異構(相容dubbo)SOA系統架構,解決了不少技術痛點,也還算比較完善,也順利推廣開來。 但作為專案的開發者,自己產品的問題心裡是清楚的,離自己滿意還是有不小的距離。 在推廣的同時,我緊張的進入了下一個版本的開

SOA系統架構之Asp.net實現(相容dubbo)

原文: 異構SOA系統架構之Asp.net實現(相容dubbo) 我們公司技術部門情況比較複雜,分到多個集團,每個集團又可能分為幾個部門,每個部門又可能分為多個小組,組織架構比較複雜,開發人員比較多。 使用的程式語言也有點複雜,主流語言有.net(C#)、Java、PHP等。 所以SOA架構需要的是異構

Swift — 資料來源的同

對於Swift的集合資料來說,有同構和異構之分。如果你需要討論一群鳥類或者一批飛機,那麼這樣的資料是同構的,比如包含鳥類的陣列[Bird]和包含飛機的陣列[Airplane]。有時你想要探討的是這些空中傢伙們的共性:飛翔,因此你的資料來源可能同時包含Bird和Airplane

雲端計算集群系統存在的問題

異構集群系統存在的問題 現有的Hadoop排程器都是建立在同構叢集的假設前提下,具體假設如下: 1)叢集中各個節點的效能完全一樣 2)對於reduce task,它的三個階段:copy、sort和reduce,用時各佔1/3 3)同一job的同類型的task是一批一批完成

PathSim:資訊網路基於元路徑的Top-K相似度搜索(一)

    2018年到啦,祝大家新年快樂~~時間過得真快,一年又這樣匆匆過去了,回想2017年,我。。。確實也沒怎麼努力學習,我深刻檢討,所以,先立個flag,2018年,我要認真鑽研,順利畢業,找個好工作,恩!好了,閒話到此為止,下面進入正題~     這篇部落格總結了異質

win10系統VMware與Hyper-v不兼容

vmware hyper-v 因為知道win10中有一個自帶的虛擬機Hyper-v於是今天就去添加去試一試,體驗了一把。結果在需要使用VMware的時候遇上這個問題這個就很尷尬了,由於平時很多的測試都在VMware上操作,這個使得很多重要數據都在上面,這樣只能重新把Hyper-v給關了再重啟了,

odoo系統name_search和name_get用法

打印 per sequence not 添加 product xpath ret 領料單 自動帶出工序和工序序號,兩個條件都能搜索,並且兩個都帶出來顯示在前端: # 輸入工序序號會自動帶出工序名// def name_search(self, cr,user,name=

老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統LVM配置實現方法?

邏輯卷管理 磁盤 每日一題 1.題目老男孩教育每日一題-2017年5月12日-磁盤知識點:linux系統中LVM配置實現方法?2.參考答案01:將一個或多個物理分區創建為一個PV# pvcreate /dev/sdb{1,2} Physical volume "/dev/sdb1" success

錯誤卸載軟件導致Windows7系統的軟件無法播放視頻

gb2 content win net window text bsp 技術分享 pan 1、錯誤描寫敘述 2、錯誤原因 在卸載軟件時。不小心將Windows7中的服務給刪除了 3、解決的方法 又一次安裝操作系統 錯誤卸載軟件導致Wind

VMware12 CENTOS系統網絡(橋接模式)靜態ip設置

start 3.1 打開 設備 一段 引導 打開文件 虛擬網絡 -- 1.菜單欄:--》編輯 –》虛擬網絡編輯 2.虛擬機設置 3.啟動虛擬機   3.1打開文件ifcfg-eth0 命令如下: vi