实战指南:如何在Spring Boot中无缝整合Dubbo【四】

这篇具有很好参考价值的文章主要介绍了实战指南:如何在Spring Boot中无缝整合Dubbo【四】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎来到我的博客,代码的世界里,每一行都是一个故事


实战指南:如何在Spring Boot中无缝整合Dubbo【四】,# dubbo,spring boot,dubbo,后端

前言

微服务架构已经成为现代应用开发的热门趋势,而Dubbo作为一款强大的分布式服务框架,与Spring Boot的结合是构建高性能微服务应用的理想选择。就像拼装一把锋利的刀刃,让我们一起揭开Spring Boot整合Dubbo的神秘面纱,探索如何在分布式世界中获得竞争优势。

项目结构

实战指南:如何在Spring Boot中无缝整合Dubbo【四】,# dubbo,spring boot,dubbo,后端

主项目(作为主pom)

<?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>fun.bo</groupId>
    <artifactId>dubbo-studys</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <modules>
        <module>dubbo-provider</module>
        <module>dubbo-interface</module>
        <module>dubbo-consumer</module>
    </modules>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <dubbo-version>2.7.8</dubbo-version>
        <spring-boot.version>2.3.0.RELEASE</spring-boot.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- Apache Dubbo  -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-dependencies-bom</artifactId>
                <version>${dubbo-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>${dubbo-version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>${dubbo-version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.servlet</groupId>
                        <artifactId>servlet-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <!-- Dubbo Spring Boot Starter -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>${dubbo-version}</version>
        </dependency>
        <!-- Dubbo核心组件 -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
        </dependency>
        <!--Spring Boot 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>${spring-boot.version}</version>
        </dependency>
        <!-- Zookeeper客户端框架 -->
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.0.1</version>
        </dependency>
        <!-- Zookeeper dependencies -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper</artifactId>
            <version>${dubbo-version}</version>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

</project>

接口

package fun.bo.api;

/**
 * @author todoitbo
 * @date 2024/1/12
 */
public interface TestDubboService {

    String sayHello(String name);
}

服务提供者

properties文件

# 服务端口
server.port=18081
# 应用程序名称
spring.application.name=dubbo-provider
# Dubbo服务扫描路径
dubbo.scan.base-packages=fun.bo

# Dubbo 通讯协议
dubbo.protocol.name=dubbo
# Dubbo服务提供的端口, 配置为-1,代表为随机端口 默认20880
dubbo.protocol.port=-1

## Dubbo 注册器配置信息
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.registry.file = ${user.home}/dubbo-cache/${spring.application.name}/dubbo.cache
dubbo.spring.provider.version = 1.0.0

实现类

package fun.bo.iml;

import fun.bo.api.TestDubboService;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.factory.annotation.Value;

/**
 * @author todoitbo
 * @date 2024/1/12
 */
@DubboService(version = "${dubbo.spring.provider.version}")
public class TestDubboServiceImpl implements TestDubboService {

    @Override
    public String sayHello(String name) {
        return "hello " + name;
    }
}

服务消费者

properties

# 服务端口
server.port=18084
#服务名称
spring.application.name=dubbo-spring-consumer
#服务版本号
dubbo.spring.provider.version = 1.0.0
#消费端注册器配置信息
dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo.consumer.check=false
dubbo.registry.file = ${user.home}/dubbo-cache/${spring.application.name}/dubbo.cache

接口层

package fun.bo.controller;

import fun.bo.api.TestDubboService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author todoitbo
 * @date 2024/1/12
 */
@RestController
public class TestDubboController {

    @DubboReference(version = "${dubbo.spring.provider.version}")
    private TestDubboService testDubboService;

    @GetMapping("/test-dubbo/{name}")
    public String testDubbo(@PathVariable String name) {
        return testDubboService.sayHello(name);
    }
}

实现效果图

实战指南:如何在Spring Boot中无缝整合Dubbo【四】,# dubbo,spring boot,dubbo,后端文章来源地址https://www.toymoban.com/news/detail-789716.html

到了这里,关于实战指南:如何在Spring Boot中无缝整合Dubbo【四】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【springcloud微服务】Spring Cloud Alibaba 整合dubbo与openfeign

    dubbo与springcloud都可以单独作为微服务治理框架在生产中进行使用,但使用过springcloud的同学大概了解到,springcloud生态的相关组件这些年已经逐步停更,这就导致在服务架构演进过程中的迭代断层,以至于一些新的技术组件引入困难重重,于是在国内的市场上就有了升级版的

    2024年02月07日
    浏览(48)
  • 实战系列(一)| Dubbo和Spring Cloud的区别,包含代码详解

    实战系列(一)| Dubbo和Spring Cloud的区别,包含代码详解

    Dubbo 和 Spring Cloud 都是微服务架构中的重要框架,但它们的定位和关注点不同。Dubbo 是阿里巴巴开源的一个高性能、轻量级的 RPC 框架,主要用于构建微服务之间的服务治理。而 Spring Cloud 是基于 Spring Boot 的一个微服务架构开发工具,它提供了一系列的开发工具和服务,帮助开

    2024年02月10日
    浏览(9)
  • Spring Boot进阶(98):【实战经验】Spring Boot如何轻松整合Jenkins?

    Spring Boot进阶(98):【实战经验】Spring Boot如何轻松整合Jenkins?

      Jenkins是一款流行的开源持续集成工具,通过Jenkins可以对项目进行持续集成、自动化部署等操作,提高开发效率和代码质量。Spring Boot作为一款轻量级的开发框架,具有快速构建应用、简化配置等众多优点,与Jenkins的结合可以进一步提高开发效率和项目质量。   那么,

    2024年02月06日
    浏览(18)
  • Spring Boot实战 | 如何整合高性能数据库连接池HikariCP

    Spring Boot实战 | 如何整合高性能数据库连接池HikariCP

    专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow专栏:https://blog.csdn.net/superdangbo/category_869

    2024年02月08日
    浏览(17)
  • 开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比

    开源微服务如何选型?Spring Cloud、Dubbo、gRPC、Istio 详细对比

    作者:刘军 不论您是一名开发者、架构师、CTO, 如果您曾深度参与在微服务开发中,那么相信您一定有过开源微服务框架或体系选型的疑问:Apache Dubbo、Spring Cloud、gRPC 以及 Service Mesh 体系产品如 Istio,到底应该选型哪一个?这篇文章对这几个框架进行了详细的说明,并在选

    2024年02月11日
    浏览(13)
  • dubbo之整合SpringBoot

    dubbo之整合SpringBoot

    目录 zookeeper安装 1.拉取ZooKeeper镜像 2.新建文件夹 3.挂载本地文件夹并启动服务 4.查看容器 5.进入容器(zookeeper) Dubbo Admin安装 1.下载dubbo-admin  2.zip包解压  3.修改配置文件  4.打包项目  5.启动jar 6.访问  构建项目 api模块 1.创建实体类 2.创建测试接口 生产者模块 1.导入依赖

    2024年02月13日
    浏览(6)
  • Spingboot整合Dubbo+zookeeper

    2023-12-26 19:38:05 最近学习分布式技术:Dubbo+zookeeper,准备写一个demo用springboot整合dubbo和zookeeper。但是看了网上一些教程都是几年前的,试着跟着写了几个demo没一个跑起来,基本是maven依赖方面的问题。 1、点击创建一个springboot项目 2、勾选web和lombok 3、创建 4、修改IDEA的Maven配置

    2024年02月04日
    浏览(18)
  • SpringBoot整合Dubbo+Zookeeper

    SpringBoot整合Dubbo+Zookeeper

    Dubbo概述 学习Dubbo前你要了解这些 安装zk Zookeeper概述与安装 Dubbo在zk中的存储结构 Dubbo的注册中心有哪些 1、 Multicast :Multicast 注册中心不需要启动任何中心节点,只要广播地址一样,就可以互相发现。 2、 Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推

    2024年02月04日
    浏览(11)
  • 【SpringBoot整合Dubbo和Zookeeper】

    【SpringBoot整合Dubbo和Zookeeper】

    本笔记内容为狂神说SpringBoot集成Dubbo和Zookeeper部分 目录 一、Dubbo dubbo基本概念 调用关系说明 二、Dubbo环境搭建  三、Window下安装zookeeper 1、下载zookeeper  2、运行 3、测试 四、window下安装dubbo-admin 1、下载dubbo-admin 2、解压进入目录 3、在项目目录下打包dubbo-admin 4、执行 五、S

    2024年02月08日
    浏览(10)
  • windows idea 整合dubbo zookeeper bug记录

    windows idea 整合dubbo zookeeper bug记录

    先说两句题外话 激动地心!颤抖的手!恨不得在此刻,半夜两点仰天长啸!我特码运行起来辣!!!! 别问,问就是一个小问题debug8个小时精神恍惚瞎猫碰上死耗子把问题解决了,只能说,麻了 回归正题,接下来简述一下springboot整合zookeeper 和 dubbo的流程和途中碰到问题  

    2024年02月04日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包