iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >springboot集成dubbo的方法
  • 349
分享到

springboot集成dubbo的方法

2023-06-29 22:06:41 349人浏览 泡泡鱼
摘要

这篇“SpringBoot集成dubbo的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboot集成dubb

这篇“SpringBoot集成dubbo的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboot集成dubbo的方法”文章吧。

第一步 搭建ZooKeeper环境

Centos窗口中,执行如下命令,拉取镜像,并启动zookeeper容器

Docker pull zookeeperdocker 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

注:

zookeeper默认连接端口是2181 但本文测试用例时由于被其他程序占走,故使用2182。

读者请自行创建映射目录zookeeperDataDir | zookeeperDataLogDir

第二步 springboot集成dubbo

1.项目目录机构

springboot集成dubbo的方法

说明:

  • api目录:存放消费者与提供者调用的service接口

  • consumer目录:消费者目录 调用提供者远程提供的接口实现

  • provider目录:提供者目录 提供给消费者接口实现

读者请自行创建项目目录(创建空项目,然后在空项目中新建三个module)

项目案例说明:业务假设场景=》 产品购买消费金额(consumer)同时并返回所有消费的总金额(需要调用到provider项目中服务实现)。

2.代码编写

2.1 api目录

接口编写

1.1.在com.dubbo.api.service(读者请自行创建,下同,package创建将不一一赘述)包下创建CostService.java

package com.dubbo.api.service;public interface CostService {        Integer add(int cost);}

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.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.在resources目录下 创建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环境-->        <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.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@EnableDubbopublic class ConsumerApplication {    public static void main(String[] args) {        SpringApplication.run(ConsumerApplication.class, args);    }}

2.4.编写产品service接口 ProductService.java

package com.dubbo.consumer.service;public interface ProductService {        Integer getCost(int a);}

2.5.编写产品接口的实现,并调用远程服务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;@Servicepublic class ProductServiceImpl implements ProductService {        @Reference    private CostService costService;    @Override    public Integer getCost(int a) {        return costService.add(a);    }}

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;@RestControllerpublic class ProductController {    @Autowired    private ProductService productService;        @RequestMapping("/add")    public String getCost(int a){        return "该产品总共消费 :"+productService.getCost(a);    }}
2.3 provider目录 api接口实现以及dubbo配置

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环境-->            <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.在resources目录下 创建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: 3000server:  port: 8061

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@EnableDubbopublic class ProviderApplication {    public static void main(String[] args) {        SpringApplication.run(ProviderApplication.class, args);    }}

3.编写CostService服务实现 CostServiceImpl.java

package com.dubbo.provider.service.impl;import com.alibaba.dubbo.config.annotation.Service;import com.dubbo.api.service.CostService;@Servicepublic class CostServiceImpl implements CostService {        private final Integer totalCost = 1000;        @Override    public Integer add(int cost) {        return totalCost + cost;    }}

第三步 测试dubbo远程服务调用

编写第二步代码完成后 ,启动consumer项目,以及provider项目
在浏览器中访问 http://localhost:8062/add?a=100

springboot集成dubbo的方法

出现如上结果即为调用成功

第四步 dubbo管理平台

本文将运维项目代码

这里需要修改一个配置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.portspring.velocity.cache=falsespring.velocity.charset=UTF-8spring.velocity.layout-url=/templates/default.vmspring.messages.fallback-to-system-locale=falsespring.messages.basename=i18n/messagespring.root.passWord=rootspring.guest.password=guest#访问的密码配置 spring.root.password  spring.guest.password#dubbo.registry.address=zookeeper://127.0.0.1:2181dubbo.registry.address=zookeeper://125.77.116.145:2182#zookeeper地址

在D:learnplaceincubator-dubbo-opsdubbo-admin目录下 ,进入cmd窗口执行
mvn claen package 打包项目,
4.然后进入D:learnplaceincubator-dubbo-opsdubbo-admin arget ,进入cmd窗口执行
java -jar dubbo-admin-0.0.1-SNAPSHOT.jar 运行项目
5.启动成功后 浏览器访问http://localhost:8001 输入账号:root / 密码:root 即可。

springboot集成dubbo的方法

以上就是关于“springboot集成dubbo的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: springboot集成dubbo的方法

本文链接: https://www.lsjlt.com/news/326606.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot集成dubbo的方法
    这篇“springboot集成dubbo的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboot集成dubb...
    99+
    2023-06-29
  • SpringBoot项目集成Dubbo
    1.环境搭建 为整合Dubbo之前,我们所写的项目都是单一应用架构,只需要一个应用,将所有功能都部署在一起,在应用内部是控制层调用业务层,业务层调用数据持久层;如今,整合Dubbo后,我们可以将应用程序的不同功能单元进行拆分(将控制层、业务...
    99+
    2023-08-25
    dubbo spring boot java
  • springboot 集成dubbo的步骤详解
    目录第一步 搭建zookeeper环境第二步 springboot集成dubbo1.项目目录机构2.代码编写2.1 api目录2.2 consumer目录 web访问、接口调用以及d...
    99+
    2024-04-02
  • SpringBoot集成Dubbo启用gRPC协议
    目录前言项目结构代码示例父工程api moduleservice module注意事项区别前言 Dubbo 在 2.7.5 版本开始支持原生 gRPC 协议,对于计划使用 HTTP/...
    99+
    2023-05-15
    SpringBoot集成Dubbo SpringBoot启用gRPC协议 SpringBoot Dubbo
  • springboot集成elasticsearch7的图文方法
    目录1.创建项目2.创建配置文件3.测试4.更新文档5.删除文档1.创建项目 修改依赖版本 2.创建配置文件 package com.huanmingj...
    99+
    2024-04-02
  • springboot集成ffmpeg的方法是什么
    要在Spring Boot中集成FFmpeg,你可以使用Java-FFmpeg库来实现。下面是一些集成FFmpeg的步骤: 添加J...
    99+
    2023-10-23
    springboot ffmpeg
  • SpringBoot多数据源集成的方法
    这篇文章主要介绍了SpringBoot多数据源集成的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot多数据源集成的方法文章都会有所收获,下面我们一起来看看吧。一、多数据源使用场景与弊端1....
    99+
    2023-06-30
  • Springboot 2.x集成kafka 2.2.0的方法
    本文小编为大家详细介绍“Springboot 2.x集成kafka 2.2.0的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot 2.x集成kafka 2.2.0的方法”文章能...
    99+
    2023-06-30
  • SpringBoot集成tomcat的方法是什么
    这篇文章主要介绍“SpringBoot集成tomcat的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot集成tomcat的方法是什么”文章能帮助大家解决问题。spring...
    99+
    2023-07-05
  • springboot集成teams的方法是什么
    本篇内容主要讲解“springboot集成teams的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“springboot集成teams的方法是什么”吧!添加依赖<dependen...
    99+
    2023-06-28
  • Springboot集成lombok.jar的方法是什么
    本文小编为大家详细介绍“Springboot集成lombok.jar的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot集成lombok.jar的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-06
  • springboot集成mybatis的方法是什么
    要在Spring Boot中集成MyBatis,可以按照以下步骤进行操作: 添加MyBatis和MyBatis-Spring的依赖...
    99+
    2024-03-07
    springboot mybatis
  • springboot集成hadoop的方法是什么
    Spring Boot集成Hadoop的方法是通过在Spring Boot应用程序中使用HDFS客户端来访问和操作Hadoop集群。...
    99+
    2024-03-14
    hadoop springboot
  • SpringBoot集成slf4j日志配置的方法
    目录前言 1、slf4j概述 2、pom.xml的日志依赖 3、application.yml的日志配置 4、logback.xml配置文件定义 5、logback.xml配置文件解...
    99+
    2024-04-02
  • SpringBoot项目集成FTP的方法步骤
    目录写在前面FTP相关软件安装开始集成引入相关jar包引入FTPUtils.java和FTPHelper.java如何使用写在前面 FTP是一个文件传输协议,被开发人员广泛用于在互...
    99+
    2024-04-02
  • SpringBoot集成SSM、Dubbo、Redis、JSP的案例小结及思路讲解
    目录1.思路讲解2.案例分析2.1接口工程2.2服务提供者2.3服务消费者2.4启动测试!!!1.思路讲解 这个案例其实就是SpringBoot集成SSM、Dubbo、Redis、J...
    99+
    2024-04-02
  • Springboot整合Dubbo之代码集成和发布的示例分析
    这篇文章主要介绍了Springboot整合Dubbo之代码集成和发布的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:1. boot-dubbo-api相关打...
    99+
    2023-05-30
    springboot dubbo
  • springboot集成spark并使用spark-sql的方法
    这篇文章主要介绍“springboot集成spark并使用spark-sql的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot集成spark并使用spark-sql的方法”文章...
    99+
    2023-06-29
  • springboot集成线程池的方法是什么
    在Spring Boot中集成线程池可以通过以下方法进行: 添加依赖:在pom.xml文件中添加以下依赖: org.s...
    99+
    2023-10-21
    springboot
  • SpringBoot集成H2内存数据库的方法
    目录前言准备技术栈目录结构pom.xml实体类 UserAddressRepositoryapplication.yml连接配置数据初始化配置h2 web consloe配置代码下载...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作