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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Dubbo調用示例分析

Dubbo調用示例分析

更新時間:2021-06-11 15:29:17 來源:動力節點 瀏覽1183次

用dubbo做一個“hello world”。

此次demo十分簡單,旨在對Dubbo有個整體上的初步了解。服務提供者(程序)和服務消費者(程序)雖然都是運行在同個服務器上(本地tomcat),但是調用是通過Dubbo的RPC。

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

需要做的事情:

  • 在pom.xml當中引入Dubbo依懶
  • 編寫服務接口類
  • 編寫服務實現類
  • 編寫服務提供者xml配置
  • 編寫服務消費者xml配置
  • 啟動服務提供者
  • 編寫并執行遠程服務調用

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>

 服務接口DemoService

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

服務接口實現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>

服務提供者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 服務啟動成功 ");
        System.in.read();
    }
}

項目工程結構

先啟動redis,因為它是注冊中心(在兩個xml都配置了redis的地址),沒起來會報錯,也沒辦法通知Consumer調用。

運行Provider,可以在控制臺看到輸出“dubbo redis 服務啟動成功 ”

再運行Consumer,可以在控制臺看到輸出“Hello world ”,遠程調用Provider的服務成功。

再去看redis,可以看到Provider和Consumer都把相關信息發送到注冊中心

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

流程簡述:

  1. 啟動Provider,Provider根據配置文件找到要提供的服務接口及其相關參數(版本號、超時時間等),向提供的注冊中心發送信息進行注冊。
  2. 啟動Consumer,Consumer根據配置文件找到所需服務接口及其相關參數,向注冊中心發送信息進行注冊。
  3. 注冊中心接收到注冊信息后盡心匹配,將服務和接口信息發送給Consumer。
  4. Consumer接到注冊信息的信息進行緩存,并根據信息進行接口的遠程調用。

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

以上就是動力節點小編介紹的"學IT什么培訓學校好",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 2021午夜国产精品福利 | 97免费 | 夜夜夜夜夜操 | 久久久影院 | 狠狠色丁香婷婷久久综合考虑 | 国产伦精品一区二区三区女 | 欧美日韩免费在线视频 | 老太做爰xxxx视频 | 又粗又大的机巴好爽视频视频 | 欧美在线视频在线观看 | 亚洲另类欧美日韩 | 久久国产精品国产自线拍免费 | 国产高h| 国产一区免费在线观看 | 国产福利一区二区在线观看 | 亚洲欧美日韩精品一区 | 亚洲最大成人 | 中文在线亚洲 | 六月婷婷色 | 免费人成激情视频在线观看冫 | 亚洲美女亚洲精品久久久久 | 一级特黄aaa大片在 一级特黄aaa大片在线观看 | 国产精品美女久久久 | 99热在线看 | 正在播放亚洲 | 亚洲欧美日韩国产精品一区 | 久久亚洲这里只有精品18 | 免费看又爽又黄禁片视频1000 | 天天操操操 | 久久美剧免费在线观看 | 一区二区三区在线免费看 | 在线观看日韩视频 | 成在线人永久免费播放视频 | 日韩精品中文字幕在线观看 | 久热国产精品 | 99热精品在线播放 | 四虎永久免费影院 | 一级a欧美毛片 | 国产欧美综合一区二区 | 一级久久 | 久久亚洲伊人中字综合精品 |