久久精品A一国产成人免费网站-久久精品爱国产免费久久-久久精品操-久久精品成人免费看-国产一级毛片在线-国产一级免费片

 
您現在的位置:首頁 ? 知識庫 ? 軟件開發 軟件開發
Dubbo分布式服務框架
發布日期:2018-04-11

Dubbo是是一個高性能,基于Java的RPC框架,由阿里巴巴開源。一個分布式的服務框架。可以實現SOA(面向服務的架構)架構。 Dubbo使用的公司:京東、當當、阿里巴巴、中國電信等等。

分布式服務架構的由來

以下式架構演變過程(以下案例純粹為了說明問題,跟業務本身無關):

早期,電信只有座機的時候,系統只有一個打電話的功能和一個計費的功能。因為業務單一,所以只有一個系統。

  • 單一業務的單體式架構

后來,電信業務豐富起來了。新增了“短信”、“寬帶”、“手機流量”等業務功能。按照常規做法,也只會在原有的“打電話”單一業務系統的基礎上,多添加幾個業務功能模塊而已。所有的業務功能(““電話”、“短信”、“寬帶”、“手機流量””)都還是在一個項目內部。如下圖:

  • 多業務單體式架構

多業務模式下的單體架構,當業務不斷擴張、系統內部的業務功能模塊越來越多,會導致如下問題:

1、會導致業務功能模塊的耦合度太高、不利于擴展和維護,以及推廣。

2、再者程序中存在一個魔性的數字:65535(16bit最大值)限制,(因為調用方法的指令容量只有16bit,65535正好是16bit能容納的最大數字)。重復的方法數太多,會加速達到這個上限。(比如Android 應用65535很容易就上限了)。

比如淘寶、天貓、阿里巴巴三個項目都需要用到支付,設想,將淘寶、天貓、阿里巴巴三個項目整合成一個項目的三個業務功能模塊,將會比較雜亂。所以,出現了淘寶、天貓、阿里巴巴三個獨立的項目,類似下圖:

  • 垂直架構

通過一步一步演變,架構已經成為如圖所示的垂直式架構。但是大家都發現了其中的計費功能出現了4次。這樣肯定不利于項目的維護和統一配置。(并且上圖的計費只是眾多可能重復模塊中的一員)。所以不得不將多個項目都要使用的相同模塊獨立出來,共享給業務功能使用。這樣,就演變成如下圖架構:

如圖所示,計費被單獨提煉出來成為一個獨立的app,共其他app共同使用。圖中“其他”模塊用來代替千千萬萬類似計費的模塊。

這樣一來,每一個方塊就是一個獨立的應用。這樣解決了業務復雜度,將業務模塊化、獨立化,方便共享和擴展。這樣的架構帶給我們需要解決的問題如下:

1、各個獨立app之間的通信問題怎么解決?

2、怎么做到統一調度、協調處理。

3、如果計費模塊是并發最大的模塊,但是其他模塊并發不是很大。則需要對計費進行負載均衡,怎么實現?

架構演變過程

什么是RPC?

RPC(Remote Procedure Call Protocol)遠程過程調用協議。服務器A調用服務器B上的方法的一種技術。Dubbo就是一個RPC框架,實現了遠程過程調用。

Dubbo的原理圖

dubbo主要的三個要素:1、接口的遠程調用2、負載均衡。3、服務自動注冊和發現

Dubbo的使用

1、說明

Dubbo框架需要有注冊中心,本案例中使用Redis作為Dubbo的注冊中心。除了Redis外,Zookeeper等也可以作為Dubbo的注冊中心。

2、環境要求

JDK 1.6以上。

3、添加依賴

<dependencies> <!-- https://mvnrepository.com/artifact/com.alibaba/dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.5</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.11.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.11.RELEASE</version> </dependency> </dependencies>

4、定義Dubbo服務接口

其實就是創建一個獨立的module(并且在pom.xml導入以上依賴),在module中創建一些接口和方法(也叫服務)。比如在dubbo_service_interface中創建一個接口IDubboService,代碼如下:

package com.javen.dubbo.service;import java.util.List;/*** Dubbo的服務* @author yangjw*/public interface IDubboService { List<String> getData(String data);}

5、定義服務提供者(接口具體實現者)

創建另外一個module,命名dubbo_provider1(并且在pom.xml導入以上依賴)。將dubbo_service_interface作為依賴添加進來。

1、在其中創建類DubboService,并且繼承IDubboService接口。代碼如下:

package com.javen.dubbo.provider;import com.javen.dubbo.service.IDubboService;import org.springframework.stereotype.Component;import java.util.ArrayList;import java.util.List;/*** 服務提供者* @author yangjw*/@Component("dubboService")public class DubboService implements IDubboService{ public List<String> getData(String data) { ArrayList<String> list = new ArrayList<String>(); list.add("這是Dubbo中Provider返回的數據:" + data); return list; }}

2、配置spring-dubbo.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: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/context http://www.springframework.org/schema/context/spring-context.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <context:annotation-config/> <context:component-scan base-package="com.javen.dubbo.provider"/> <!--配置dubbo服務的唯一名稱 --> <dubbo:application name="dubbo_provider1"/> <!--將服務注冊到redis中,并且配置協議和端口為20880--> <dubbo:registry address="redis://192.168.72.188:6379"/> <dubbo:protocol name="dubbo" port="20880"/> <!--配置服務接口,ref關聯到服務實現類--> <dubbo:service interface="com.javen.dubbo.service.IDubboService" ref="dubboService"/></beans>

3、啟動Provider,代碼如下:

package com.javen.dubbo.provider;import org.springframework.context.support.ClassPathXmlApplicationContext;import java.io.IOException;public class StartProvider { public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] {"spring-dubbo.xml"}); System.out.println("服務1啟動~~~"); context.start(); //線程阻塞:保證服務一直存在,如果線程結束,服務終止 System.in.read(); // press any key to exit }}

6、定義服務消費者(接口的具體調用者)

再創建一個module,命名dubbo_consumer(并且在pom.xml導入以上依賴)。將dubbo_service_interface作為依賴添加進來。

1、配置spring-dubbo.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"> <dubbo:application name="demo-consumer"/> <dubbo:registry address="redis://192.168.72.188:6379"/> <dubbo:reference id="demoService" interface="com.javen.dubbo.service.IDubboService"/></beans>

2、測試

package com.test;import com.javen.dubbo.service.IDubboService;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import javax.annotation.Resource;import java.util.List;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:spring-dubbo.xml")public class DubboTest { @Resource(name = "demoService") private IDubboService dubboService; @Test public void testDubbo(){ List<String> haha = dubboService.getData("haha"); System.out.println(haha.get(0)); }}

Dubbo、MyCat、主從配置讀寫分離、redis分布式、JTA分布式事務的關系。

dubbo默認每次只訪問一個服務器,需要主從配合完成數據同步。

<!--replicate可以實現所有服務器同步寫,但是只讀取單臺服務器。默認是failover,讀寫都是單臺服務器--> <dubbo:registry cluster="replicate" address="redis://192.168.72.188:6379"/>
  • 1.公司登記注冊于2003年1月27日,清遠市桑達電子網絡媒體有限公司
    2.公司2006年起成為清遠市政府定點協議供貨商,電子采購供貨商
    3.公司2007年被清遠市相關政府部門評為安防行業狀元
    4.公司2007年起成為長城電腦清遠如意服務站(SP368)
    5.公司2007年承建清遠市橫河路口電子警察工程,開創清遠電子警察先河。
  • 6.公司2007年起成為IBM合作伙伴、公司2010年底成為金蝶軟件清遠金牌代理(伙伴編號:30030013)
    7.公司組團隊參加南方都市報組織的創富評選,獲廣東80強。公司申請多項軟件著作權、專利權
    8.2016年起公司成為粵東西北地區為數不多的雙軟企業,確立“讓軟件驅動世界,讓智能改變生活!"企業理想
    9.2016-01-29更名為廣東互動電子網絡媒體有限公司
    10.2021-01-13更名為廣東互動電子有限公司
  • 投資合作咨詢熱線電話:0763-3391888 3323588
  • 做一個負責任的百年企業! 天行健,君子以自強不息;地勢坤,君子以厚德載物;
    為用戶創造價值! 讓軟件驅動世界; 讓智能改變生活; 超越顧客期望,幫助顧客成功;
    對客戶負責,對員工負責,對企業命運負責!幫助支持公司的客戶成功;幫助忠誠于公司的員工成功!
  • 聯系電話:0763-3391888 3323588 3318977
    服務熱線:18023314222 QQ:529623964
  • 工作QQ:2501204690 商務QQ: 602045550
    投資及業務投訴QQ: 529623964
    微信:小米哥 微信號:qysed3391888
    騰訊微博:桑達網絡-基石與起點
  • E-MAIL:222#QYSED.CN ok3391888#163.com (請用@替換#)
在線客服
  • 系統集成咨詢
    點擊這里給我發消息
  • 網站\微信\軟件咨詢
    點擊這里給我發消息
  • 售后服務
    點擊這里給我發消息
  • 投資合作
    點擊這里給我發消息
欧美又粗又大XXXⅩBBBB| 青草草97久热精品视频| 无码天堂亚洲国产AV麻豆| AV无码中出一区二区三区| 国产传媒中文字幕视频专区| 欧美乱妇日本无乱码特黄大片| 亚洲色偷偷综合亚洲AV| 国产猛男GAY1069视频| 日韩无码AV一区二区| 777琪琪午夜理论电影网| 久久久久精品电影一区二区三区| 小雪被老外黑人撑破了视频 | 琪琪秋霞午夜AV影院| CHINA 农村妇女NOMEX| 久久午夜无码鲁丝片午夜精品| 亚洲AV乱码一区二区三区按摩| 妇女性内射冈站HDWWWOOO| 欧美熟妇内射深插| 中文字幕人妻被公上司喝醉| 久久6久久66热这里只是精品| 性色AV夜夜嗨AV浪潮牛牛| 丰满少妇人妻HD高清大乳在线| 欧洲无线一线二线三W955| YY8090福利午夜理论片| 农里粗汉的共妻嗯啊高H| 一区二区三区精品视频免费播放 | 亚洲欧美精品SUV| 国产白浆喷水在线视频| 欧亚精品卡一卡二卡三7174| XXXX日本少妇做受| 日韩亚洲欧美精品综合| YY6090新视觉影院| 日韩v亚洲v欧美v精品综合| JIZZ成熟丰满| 欧美激情一区二区三区蜜桃| 在线天堂中文最新版| 久久天堂无码AV网站| 亚洲熟妇无码另类久久久| 久久夜色撩人精品国产| 91人人妻人人做人人爱| 人人妻人人澡人人爽人人精直播 | 中文在线中文在A| 老阿姨哔哩哔哩B站肉片入口6| 亚洲色欲色欱WWW在线| 邻居少妇人妻HD高清大乳在线| 亚洲一区在线日韩在线尤物| 久久国产精品99精品国产| 亚洲精品卡一卡三卡四卡乱码| 激情无码白丝人妻又大又粗| 亚洲AV永久无码精品秋霞电影影院| 国产无遮挡18禁无码网站免费 | 曰批全过程免费视频观看| 久久躁夜夜躁天天躁| 97精品国产手机| 三级国产三级在线| 国产香蕉一区二区三区在线视频| 性少妇JAPANESEXXXX| 九九99久久精品国产| 52秋霞东北熟女叫床| 欧美精品亚洲日韩AⅤ| 饭桌上故意张开腿让公H| 少女たちよ在线观看动漫| 国产成人AV无码精品| 亚洲成人无码一区二区三区| 精品国产一区二区三区噜噜噜| 亚洲欧美日韩在线观看一区二区三| 里面也请好好疼爱漫画最新章节 | 亚洲国产AV无码专区亚洲AV | 人妻熟妇av又粗又爽| 成人精品老熟妇一区二区| 色妞精品AV一区二区三区| 国产成人精品三级麻豆| 欧美性猛交XXXⅩ乱大交| 国产精品99久久99久久久| 性少妇TUBEVIDEOS| 老少交TNBE少老配| 成人综合婷婷国产精品久久| 少妇AV一区二区三区无码久久| 国产av一区二区三区| 亚洲国产成人久久精品99| 浓精喷进老师黑色丝袜| 国产成网站18禁止久久影院| 亚洲中文字幕无码AV| 女人被男人爽到呻吟的视频| YY6090新视觉影院| 性生生活色欲片性按摩| 蜜桃视频一区二区三区在线观看| A级毛片成人网站免费看| 为什么穿裙子方便打野| 狠狠躁夜夜躁人人爽碰AV| 80岁老熟妇乱子伦牲交| 无码成人黄动漫在线观看| 激情综合激情五月俺也去| 99久久无色码中文字幕人妻蜜柚| 日韩精品一区二区三区四区蜜桃| 黑人性受XXXX黑人XYX性爽| 尤物爆乳AV导航| 色婷婷五月综合亚洲影院| 久久WWW色情成人免费观看| А√天堂8资源中文在线| 天堂А√在线最新版在线| 狠狠色噜噜狠狠狠8888米奇| CHINESE老太性视频BBW| 亚洲AV无码第一区二区三区| 老太奶性BBWBBW| 国产VA免费精品高清在线观看| 一本一道波多野毛片结衣AV黑人| 色猫咪AV在线网址| 久久天天躁夜夜躁狠狠| 国产成人精品日本亚洲专区不卡 | AV无码久久久精品免费| 亚洲AV无码片一区二区三区| 欧洲一卡二卡三卡| 精品国产三级A在线观看| 成 人 免 费 黄 色 网站无| 亚洲AV成人片无码网站网| 老奶奶BGMBGM人与自然| 国产成人AV大片在线播放| 中国VITAFUSION孕妇| 无套内射无矿码免费看黄| 久久亚洲精品无码VA大香大香| 国产99久久九九精品无码| 亚洲色精品三区二区一区| 色综合天天综合欧美综合| 老头的老枪又粗又大| 国产六月婷婷爱在线观看| 伊人涩涩涩涩久久久AV| 日韩精品无码一区二区三区视频| 边做边爱完整版免费视频播放| 亚洲A∨精品一区二区三区下载| 欧美极品少妇XXXXⅩ另类| 精品人妻AV区波多野结衣| А√天堂资源地址在线下载| 亚洲精品国产综合麻豆久久99| 色翁荡息又大又硬又粗又爽| 精品熟女少妇AV免费久久| 爱性久久久久久久久| 亚洲AV无码专区国产乱码4| 人人妻人人爽人人澡AV| 狠狠精品干练久久久无码中文字幕| 波多野美乳人妻HD电影欧美| 尤物在线视频.YW163.成年| 午夜成人鲁丝片午夜精品| 人妻在线无码一区二区三区| 久久丫精品国产亚洲AV不卡| 国产日韩一区在线精品 | 国产剧情AV在线| 苍井空无码免费换线| 真实的国产乱ⅩXXX66| 亚洲AV嫩草AV极品在线观看 | 久久婷婷大香萑太香蕉AV人| 国产亚洲欧洲综合5388| 粉嫩虎白女流水白浆在线播放| 99国精产品W灬源码1688| 性色AV 一区二区三区| 如狼似虎的熟妇14P| 欧美极品少妇XXXXⅩ另类| 久久久久亚洲AV综合仓井空| 国产AV天堂亚洲国产AV麻豆| CHINESE裸体男野外GAY| 在线 | 一区二区三区| 午夜亚洲AV日韩AV无码大全 | 色狠狠AV一区二区三区| 欧美老熟妇乱大交XXXXX| 久久影院午夜理论片无码| 狠狠躁夜夜人人爽天96| 国产交换配乱婬视频| 吃瓜爆料黑料网站| 中文国产成人精品久久| 亚洲国产精品不卡AV在线 | 女儿的朋友7中汉字晋通话| 久久久久无码国产精品不卡| 黑人双人RAPPER的特点| 国产乱人伦AV在线麻豆A| 丰满熟妇人妻AV无码区| 变态SM无码凌虐视频网站| BGMBGMBGM老太太HD| 中国高清WINDOWS视频软件| 亚洲一区波多野结衣在线APP| 亚洲成av人在线观看| 亚洲AV成人一区二区三区不卡| 调教小奴高潮惩罚PLAY道具| 欧美人与动牲交免费观看视频| 麻豆精品国产综合久久| 黑人巨大BBWBBW| 国产强伦姧在线看无码| 国产精品SP调教打屁股| 国产97色在线 | 日韩| 粗了大了 整进去好爽视频| 把腿扒开做爽爽视频| А√中文在线天堂| XXXXXL日本17上线| 锕锕锕锕锕锕锕好疼视频真人| AⅤ日本亚洲欧洲免费| 97精品依人久久久大香线蕉97| 做AJ的姿势教程大全图片高清版| 亚洲乱码日产精品M| 亚洲国产精品无码久久98| 无码人妻久久一区二区三区免费丨| 日本畜禽CORPORATION|