大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 Dubbo調(diào)用示例分析

Dubbo調(diào)用示例分析

更新時(shí)間:2021-06-11 15:29:17 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1095次

用dubbo做一個(gè)“hello world”。

此次demo十分簡(jiǎn)單,旨在對(duì)Dubbo有個(gè)整體上的初步了解。服務(wù)提供者(程序)和服務(wù)消費(fèi)者(程序)雖然都是運(yùn)行在同個(gè)服務(wù)器上(本地tomcat),但是調(diào)用是通過(guò)Dubbo的RPC。

注冊(cè)中心是redis,部署在本地虛擬機(jī),地址為192.168.1.66:6379(在配置文件中需要用到)。最終達(dá)到效果是服務(wù)消費(fèi)者(Consumer)調(diào)用服務(wù)提供者(Provider)的sayHello()方法在控制臺(tái)輸出“Hello world”。

需要做的事情:

  • 在pom.xml當(dāng)中引入Dubbo依懶
  • 編寫服務(wù)接口類
  • 編寫服務(wù)實(shí)現(xiàn)類
  • 編寫服務(wù)提供者xml配置
  • 編寫服務(wù)消費(fèi)者xml配置
  • 啟動(dòng)服務(wù)提供者
  • 編寫并執(zhí)行遠(yuǎn)程服務(wù)調(diào)用

pom.xml

	<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo</artifactId>
      <version>2.5.3</version>
    </dependency>

    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.2.0</version>
    </dependency>

 服務(wù)接口DemoService

public interface DemoService {
    String sayHello(String str);
}

服務(wù)接口實(shí)現(xiàn)DemoService

public class DemoServiceImpl implements DemoService {
    public String sayHello(String str) {
        return "Hello " + str;
    }
}

consumer.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 protocol="redis" address="192.168.1.66:6379" check="true"/>
    <dubbo:consumer timeout="5000" retries="2"
                    group="snowman"
                    version="1.0.0"/>
    <dubbo:reference
            timeout="3000" retries="1"
            id="demoService"
            version="*"
            interface="com.snowman.service.DemoService"/>
</beans>

provider.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-provider"/>
    <dubbo:registry protocol="redis" address="192.168.1.66:6379" check="true"/>
    <dubbo:protocol name="dubbo" port="20880"/>
    <dubbo:provider group="snowman"
                    threadpool="fixed"
                    threads="500"
                    timeout="5000"
                    retries="2"
    />
    <dubbo:service interface="com.snowman.service.DemoService"
                   timeout="5000"
                   retries="1"
                   version="3.0.0"
                   ref="demoService">
        <dubbo:method name="sayHello" timeout="2000"/>
    </dubbo:service>
    <bean id="demoService" class="com.snowman.service.DemoServiceImpl"/>
</beans>

服務(wù)提供者Provider

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Provider {
    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
               "config/spring-dubbo-redis-provider.xml");
        context.start();
        System.out.println("dubbo redis 服務(wù)啟動(dòng)成功 ");
        System.in.read();
    }
}

項(xiàng)目工程結(jié)構(gòu)

先啟動(dòng)redis,因?yàn)樗亲?cè)中心(在兩個(gè)xml都配置了redis的地址),沒起來(lái)會(huì)報(bào)錯(cuò),也沒辦法通知Consumer調(diào)用。

運(yùn)行Provider,可以在控制臺(tái)看到輸出“dubbo redis 服務(wù)啟動(dòng)成功 ”

再運(yùn)行Consumer,可以在控制臺(tái)看到輸出“Hello world ”,遠(yuǎn)程調(diào)用Provider的服務(wù)成功。

再去看redis,可以看到Provider和Consumer都把相關(guān)信息發(fā)送到注冊(cè)中心

(RedisDesktopManager,一個(gè)redis可視化工具)

流程簡(jiǎn)述:

  1. 啟動(dòng)Provider,Provider根據(jù)配置文件找到要提供的服務(wù)接口及其相關(guān)參數(shù)(版本號(hào)、超時(shí)時(shí)間等),向提供的注冊(cè)中心發(fā)送信息進(jìn)行注冊(cè)。
  2. 啟動(dòng)Consumer,Consumer根據(jù)配置文件找到所需服務(wù)接口及其相關(guān)參數(shù),向注冊(cè)中心發(fā)送信息進(jìn)行注冊(cè)。
  3. 注冊(cè)中心接收到注冊(cè)信息后盡心匹配,將服務(wù)和接口信息發(fā)送給Consumer。
  4. Consumer接到注冊(cè)信息的信息進(jìn)行緩存,并根據(jù)信息進(jìn)行接口的遠(yuǎn)程調(diào)用。

(調(diào)用過(guò)程跟注冊(cè)中心沒半毛錢關(guān)系,信息是從緩存取得,取得注冊(cè)中心的信息后,就算注冊(cè)中心掛掉可以正常調(diào)用)

以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"學(xué)IT什么培訓(xùn)學(xué)校好",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲欧美日韩一级特黄在线 | 精品久久久久久久久免费影院 | 中文亚洲字幕 | 日本一级毛片片免费观看 | 欧洲成人全免费视频网站 | 欧美日韩成人在线 | 国产亚洲综合成人91精品 | 99国产精品免费观看视频 | 九九精品在线播放 | 在线观看精品91老司机 | 性欧美一级毛片在线播放 | 久久久中文字幕 | 999久久久免费精品国产牛牛 | 成人人免费夜夜视频观看 | 亚洲国产欧美91 | 欧美日韩在线视频 | 日本性网址 | 饥饿游戏在线 | 久久九九亚洲精品 | 国产成人精品免费视 | 大色佬视频在线观看 | 国产性色视频在线高清 | 国产精品综合一区二区三区 | 欧美日韩亚洲m码色帝国 | 成人凹凸短视频在线观看 | 香蕉在线播放 | 日本特一级毛片免费视频 | 天天做天天爱天天爽综合网 | 特级aav毛片日本免费视频 | 精品福利一区二区三区免费视频 | 99精品久久精品一区二区 | 天堂一区二区三区精品 | 玖玖在线视频 | 成熟性xxxxx 成在线人免费视频一区二区三区 | 四虎精品福利视频精品 | 日本一级特黄aa大片24免费 | 五月天婷婷一区二区三区久久 | 国产91页| 欧美日韩国产成人综合在线影院 | 日日操夜夜操天天操 | 久久天天干|