最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot?集成dubbo的步驟詳解

 更新時間:2022年04月08日 11:40:19   作者:m0_54861649  
這篇文章主要介紹了springboot?簡易集成dubbo的步驟詳解,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

寫在前面:在閱讀本文前,請前擁有dubbo基礎知識,springboot知識

dubbo官網: http://dubbo.apache.org
dubbo github 源碼地址:https://github.com/apache/incubator-dubbo
dubbo 運維項目源碼地址:https://github.com/apache/incubator-dubbo-ops

本文項目GitHub: https://github.com/Blankwhiter/dubbo-spring-boot-starter-test
源碼對應版本1.0.1: https://github.com/Blankwhiter/dubbo-spring-boot-starter-test/archive/1.0.1.zip

第一步 搭建zookeeper環(huán)境

在centos窗口中,執(zhí)行如下命令,拉取鏡像,并啟動zookeeper容器

docker pull zookeeper
docker run -d -v /home/docker/zookeeperhost/zookeeperDataDir:/data -v /home/docker/zookeeperhost/zookeeperDataLogDir:/datalog  -e ZOO_MY_ID=1 -e ZOO_SERVERS='server.1=125.77.116.145:2888:3888'  -p 2182:2181 -p 2888:2888 -p 3888:3888  --name zookeeper --privileged zookeeper

注:

1.zookeeper默認連接端口是2181 但本文測試用例時由于被其他程序占走,故使用2182。

2.讀者請自行創(chuàng)建映射目錄zookeeperDataDir | zookeeperDataLogDir

第二步 springboot集成dubbo

1.項目目錄機構

在這里插入圖片描述

說明:

  • 1.api目錄:存放消費者與提供者調用的service接口
  • 2.consumer目錄:消費者目錄 調用提供者遠程提供的接口實現(xiàn)
  • 3.provider目錄:提供者目錄 提供給消費者接口實現(xiàn)

讀者請自行創(chuàng)建項目目錄(創(chuàng)建空項目,然后在空項目中新建三個module)

項目案例說明:業(yè)務假設場景=》 產品購買消費金額(consumer)同時并返回所有消費的總金額(需要調用到provider項目中服務實現(xiàn))。

2.代碼編寫

2.1 api目錄

接口編寫

2.1.1.在com.dubbo.api.service(讀者請自行創(chuàng)建,下同,package創(chuàng)建將不一一贅述)包下創(chuàng)建CostService.java

package com.dubbo.api.service;

public interface CostService {
    /**
     * 成本增加接口
     * @param cost
     * @return
     */
    Integer add(int cost);
}

2.1.2.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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dubbo</groupId>
    <artifactId>api</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>api</name>
    <description>Demo project for Spring Boot</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

2.2 consumer目錄 web訪問、接口調用以及dubbo配置編寫

2.2.1.引入 dubbo-spring-boot-starter 以及 上述的api模塊

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dubbo</groupId>
    <artifactId>api</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>api</name>
    <description>Demo project for Spring Boot</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

2.2.2.在resources目錄下 創(chuàng)建application.yml,并編寫dubbo配置

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dubbo</groupId>
    <artifactId>consumer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>consumer</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--引入api模塊-->
        <dependency>
            <groupId>com.dubbo</groupId>
            <artifactId>api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>

        <!--引入dubbo環(huán)境-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

2.2.3.使用 @EnableDubbo 注解開啟dubbo
ConsumerApplication.java 啟動類

package com.dubbo.consumer;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubbo
public class ConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

2.2.4.編寫產品service接口 ProductService.java

package com.dubbo.consumer.service;
public interface ProductService {
    /**
     * 獲得總消費
     * @param a
     * @return
     */
    Integer getCost(int a);
}

2.2.5.編寫產品接口的實現(xiàn),并調用遠程服務CostService 。 ProductServiceImpl.java

package com.dubbo.consumer.service.impl;
import com.alibaba.dubbo.config.annotation.Reference;
import com.dubbo.api.service.CostService;
import com.dubbo.consumer.service.ProductService;
import org.springframework.stereotype.Service;
/**
 * 產品service
 */
@Service
public class ProductServiceImpl implements ProductService {
    /**
     * 使用dubbo的注解 com.alibaba.dubbo.config.annotation.Reference。進行遠程調用service
     */
    @Reference
    private CostService costService;
    @Override
    public Integer getCost(int a) {
        return costService.add(a);
    }
}

2.2.6.編寫訪問類,ProductController.java

package com.dubbo.consumer.controller;
import com.dubbo.consumer.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 產品controller
 */
@RestController
public class ProductController {
    @Autowired
    private ProductService productService;
    /**
     * 添加完 返回總共消費
     * @param a
     * @return
     */
    @RequestMapping("/add")
    public String getCost(int a){
        return "該產品總共消費 :"+productService.getCost(a);
    }
}

2.3 provider目錄 api接口實現(xiàn)以及dubbo配置

2.3.1.引入 dubbo-spring-boot-starter 以及 上述的api模塊

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.dubbo</groupId>
    <artifactId>provider</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>provider</name>
    <description>Demo project for Spring Boot</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        <!--引入api-->
            <groupId>com.dubbo</groupId>
            <artifactId>api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>compile</scope>
        <!--引入dubbo環(huán)境-->
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

2.3.2.在resources目錄下 創(chuàng)建application.yml,并編寫dubbo配置

dubbo:
  application:
    name: dubbo-provider
  registry:
    address: 125.77.116.145:2182
    # 讀者請自行更改zookeeper地址
    protocol: zookeeper
    check: false
  protocol:
    name: dubbo
    port: 30003
  monitor:
    protocol: register
  consumer:
    check: false
    timeout: 3000

server:
  port: 8061

2.3.3.使用 @EnableDubbo 注解開啟dubbo
ConsumerApplication.java 啟動類

package com.dubbo.provider;
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubbo
public class ProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}

2.3.3.編寫CostService服務實現(xiàn) CostServiceImpl.java

package com.dubbo.provider.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.dubbo.api.service.CostService;
/**
 * 花費服務
 */
@Service
public class CostServiceImpl implements CostService {
    /**
     * 假設之前總花費了100
     */
    private final Integer totalCost = 1000;
    /**
     * 之前總和 加上 最近一筆
     * @param cost
     * @return
     */
    @Override
    public Integer add(int cost) {
        return totalCost + cost;
    }
}

第三步 測試dubbo遠程服務調用

編寫第二步代碼完成后 ,啟動consumer項目,以及provider項目
在瀏覽器中訪問 http://localhost:8062/add?a=100

在這里插入圖片描述

出現(xiàn)如上結果即為調用成功

第四步 dubbo管理平臺

dubbo運維舊版地址: https://github.com/apache/incubator-dubbo-ops/tree/master

1.本文將運維項目代碼下載放于 D:learnplaceincubator-dubbo-ops

2.這里需要修改一個配置D:learnplaceincubator-dubbo-opsdubbo-adminsrcmain esourcesapplication.properties

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
server.port=8001
#服務器端口 server.port
spring.velocity.cache=false
spring.velocity.charset=UTF-8
spring.velocity.layout-url=/templates/default.vm
spring.messages.fallback-to-system-locale=false
spring.messages.basename=i18n/message
spring.root.password=root
spring.guest.password=guest
#訪問的密碼配置 spring.root.password  spring.guest.password
#dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.registry.address=zookeeper://125.77.116.145:2182
#zookeeper地址

3.在D:learnplaceincubator-dubbo-opsdubbo-admin目錄下 ,進入cmd窗口執(zhí)行
mvn claen package 打包項目,
4.然后進入D:learnplaceincubator-dubbo-opsdubbo-admin arget ,進入cmd窗口執(zhí)行
java -jar dubbo-admin-0.0.1-SNAPSHOT.jar 運行項目
5.啟動成功后 瀏覽器訪問http://localhost:8001 輸入賬號:root / 密碼:root 即可。

在這里插入圖片描述

附錄:

1.各個軟件版本對應

versions

Java

Spring Boot

Dubbo

0.2.0

1.8+

2.0.x

2.6.2 +

0.1.1

1.7+

1.5.x

2.6.2 +

到此這篇關于springboot 簡易集成dubbo的步驟詳解的文章就介紹到這了,更多相關springboot 簡易集成dubbo內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java高級之HashMap中的entrySet()方法使用

    Java高級之HashMap中的entrySet()方法使用

    這篇文章主要介紹了Java高級之HashMap中的entrySet()方法使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • ssm項目改造spring?boot項目完整步驟

    ssm項目改造spring?boot項目完整步驟

    Spring?Boot現(xiàn)在已經成為Java開發(fā)領域的一顆璀璨明珠,它本身是包容萬象的,可以跟各種技術集成,下面這篇文章主要給大家介紹了關于ssm項目改造spring?boot項目的相關資料,需要的朋友可以參考下
    2023-04-04
  • Java8與Scala中的Lambda表達式深入講解

    Java8與Scala中的Lambda表達式深入講解

    這篇文章主要給大家介紹了關于Java8與Scala中Lambda表達式的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • SpringMVC整合,出現(xiàn)注解沒有起作用的情況處理

    SpringMVC整合,出現(xiàn)注解沒有起作用的情況處理

    這篇文章主要介紹了SpringMVC整合,出現(xiàn)注解沒有起作用的情況及處理,具有很好的參考價值,希望對大家有所幫助。
    2023-05-05
  • 實戰(zhàn)講解Maven安裝及基本使用詳解

    實戰(zhàn)講解Maven安裝及基本使用詳解

    這篇文章主要介紹了實戰(zhàn)講解Maven安裝及基本使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 解決idea更新maven倉庫的圖文教程

    解決idea更新maven倉庫的圖文教程

    這篇文章主要介紹了解決idea更新maven倉庫的圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 一鍵打包壓縮,Java項目變身JAR

    一鍵打包壓縮,Java項目變身JAR

    想要一鍵打包Java項目生成JAR文件并進行壓縮?本指南將帶你輕松駕馭這項看似復雜的任務,讓我們一起揭開神秘的面紗,輕松打包,高效出發(fā)!
    2023-12-12
  • 在ChatGPT的API中支持多輪對話的實現(xiàn)方法

    在ChatGPT的API中支持多輪對話的實現(xiàn)方法

    ChatGPT是由OpenAI研發(fā)的一種預訓練語言模型,只能在OpenAI平臺上進行訓練,目前并不對外開放訓練接口,這篇文章主要介紹了在ChatGPT的API中支持多輪對話的實現(xiàn)方法,需要的朋友可以參考下
    2023-02-02
  • SpringBoot無法訪問/static下靜態(tài)資源的解決

    SpringBoot無法訪問/static下靜態(tài)資源的解決

    這篇文章主要介紹了SpringBoot無法訪問/static下靜態(tài)資源的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • JDBC 實現(xiàn)通用的增刪改查基礎類方法

    JDBC 實現(xiàn)通用的增刪改查基礎類方法

    下面小編就為大家分享一篇JDBC 實現(xiàn)通用的增刪改查基礎類方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01

最新評論

景洪市| 湘潭市| 涞水县| 柯坪县| 安溪县| 永清县| 无为县| 伊宁市| 泾源县| 当雄县| 大新县| 荆门市| 泸西县| 鹤庆县| 广安市| 水富县| 和硕县| 杂多县| 视频| 琼中| 循化| 武清区| 郁南县| 犍为县| 包头市| 蒙城县| 民勤县| 离岛区| 湟中县| 武宁县| 台中市| 光山县| 土默特右旗| 朝阳县| 岢岚县| 乌海市| 石嘴山市| 北海市| 南阳市| 吉水县| 环江|