Spring Boot 整合 Dubbo3 + Nacos 2.4.0

news2025/4/6 13:28:25

准备工作:Nacos

一、前置工作

安装Nacos,参考:Nacos 快速开始
此次安装 Nacos 最新版本:2.4.0 单机版
安装教程:Linux 安装 nacos 2.4.0-CSDN博客

二、创建配置文件

创建命名空间

image.png

新增配置文件

image.png

dubbo:
  application:
    id: tyron-dubbo3-consumer
    name: tyron-dubbo3-consumer
    serialize-check-status: WARN
  registry:
    address: nacos://${nacos.config.server-addr}
    parameters.namespace: ${nacos.config.namespace}
server:
  port: 5656

dubbo:
  application:
    id: tyron-dubbo3-provider
    name: tyron-dubbo3-provider
    serialize-check-status: WARN
  protocol:
    id: dubbo
    name: dubbo
    host: 127.0.0.1
    port: 7788
    serialization: hessian2
  registry:
    address: nacos://${nacos.config.server-addr}
    parameters.namespace: ${nacos.config.namespace}

dubboParams: tyron

三、搭建项目

image.png

3.1、父 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>com.tyron</groupId>
    <artifactId>dubbo3-demo</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>dubbo3-provider</module>
        <module>dubbo3-consumer</module>
        <module>dubbo3-api</module>
    </modules>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <java.version>1.8</java.version>

        <spring.boot.version>2.7.17</spring.boot.version>
        <nacos.boot.version>0.2.12</nacos.boot.version>
        <dubbo.version>3.2.9</dubbo.version>
    </properties>
</project>

3.2、dubbo3-provider 服务提供者

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">
    <parent>
        <artifactId>dubbo3-demo</artifactId>
        <groupId>com.tyron</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>dubbo3-provider</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

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

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

        <!--nacos配置中心依赖-->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
            <version>${nacos.boot.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>${dubbo.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>javassist</artifactId>
                    <groupId>org.javassist</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- dubbo整合nacos -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-nacos</artifactId>
            <version>${dubbo.version}</version>
        </dependency>

        <!-- 自定义api -->
        <dependency>
            <groupId>com.tyron</groupId>
            <artifactId>dubbo3-api</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>

配置文件 application.yaml :nacos的配置文件

nacos:
  config:
    # 指定命名空间
    namespace: tyron-dubbo
    #配置服务地址
    server-addr: 192.168.1.8:8848
    #data-ids 为新增加的data-id
    data-ids: dubbo3-provider
    #配置类型
    type: yaml
    #是否启动刷新配置
    autoRefresh: true
    #运行时启用
    bootstrap:
      enable: true

定义接口实现,通过@NacosValue 读取nacos的配置文件数据

package com.tyron.service.impl;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import com.tyron.dubbo3.api.DemoService;
import org.apache.dubbo.config.annotation.DubboService;


@DubboService(version = "1.0.0")
public class DemoServiceImpl implements DemoService {

    @NacosValue(value = "${dubboParams}", autoRefreshed = true)
    private String dubboParams;

    @Override
    public String getString() {
        return dubboParams;
    }
}

3.3、dubbo3-api 接口模块

dubbo 提供和调用本地方法一样的体验,所以需要提供api包

package com.tyron.dubbo3.api;

public interface DemoService {

    String getString();
}

3.4、dubbo3-consumer 消费者

pom.xml 文件,定义依赖
同 dubbo3-provider 的定义:dubbo3-consumer/pom.xml
配置文件

nacos:
  config:
    # 指定命名空间
    namespace: tyron-dubbo
    #配置服务地址
    server-addr: 192.168.1.8:8848
    #data-ids 为新增加的data-id
    data-id: dubbo3-consumer
    #配置类型
    type: yaml
    #是否启动刷新配置,开启之后可适应
    autoRefresh: true
    #运行时启用
    bootstrap:
      enable: true

消费者,调用api接口

package com.tyron.consumer;

import com.tyron.dubbo3.api.DemoService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class DemoConsumer {

    @DubboReference(version = "1.0.0", timeout = 1000)
    private DemoService demoService;

    @GetMapping("/tyron-test")
    public String tyronTest() {
        return demoService.getString();
    }
}

四、项目启动

启动dubbo3-provider
image.png
启动dubbo3-consumer
image.png
本地接口调用,返回nacos配置的值。
image.png

参考

Dubbo 融合 Nacos 成为注册中心
2 - Dubbo Spring Boot Starter 开发微服务应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1968561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于uniapp的vue2.x版本的路由守卫拦截方案

使用uni-read-pages和uni-simple-router实现&#xff0c;方案思路如下 首先在packge.json把下面两个依赖npm install 一下&#xff0c;我目前是这两个版本&#xff0c;别的版本号没有测试过 "dependencies": {"uni-read-pages": "^1.0.5",&quo…

matplotLib在图中标出最后一个点的值

import matplotlib.pyplot as plt import numpy as np# 生成100个随机数据 data np.random.rand(100)# 绘制数据 plt.plot(data, labelData Points)# 获取最后一个数据点的位置和值 last_x len(data) - 1 last_y data[-1]# 用红圈标出最后一个点 plt.plot(last_x, last_y, r…

《动手做科研》09. 万事具备,只欠行动

地址链接:《动手做科研》09. 万事具备&#xff0c;只欠行动 欢迎加入我的知识星球&#xff0c;定期分享AI论文干货知识&#xff01; 导读: 当你坚持学习到这一步&#xff0c;并且之前的内容都有跟着操作&#xff0c;那么恭喜你&#xff0c;你已经在脑力层面消化了最难的知识&am…

AI表情神同步!LivePortrait安装配置,一键包,使用教程

快手在AI视频这领域还真有点东西&#xff0c;视频生成工具“可灵”让大家玩得不亦乐乎。 现在又开源了一款超好玩的表情同步&#xff08;表情控制&#xff09;项目。 一看这图片&#xff0c;就知道是小视频平台出的&#xff0c;充满了娱乐性。发布没几天就已经有8000Star。 项…

7月Langchain-Chatchat 0.3.1最新 win系统-安装教程,踩坑2小时,5分钟拿去!

Win11安装 langchain-chatchat 0.3.1最新版 1. 虚拟环境安装和python包安装 conda create -n chat310 python3.10#这里很重要 需要先安装cuda版本的torch pip install torch2.3.1 torchvision0.18.1 torchaudio2.3.1 --index-url https://download.pytorch.org/whl/cu121pip…

六种方法实现Python文件之间的互动!

一、exec() 首先&#xff0c;我们生成一个名为**“file1.py”的python文件**&#xff1a; # file1.py print("Hello from file1!")然后&#xff0c;再生成一个名为“main.py”的python文件&#xff1a; # main.py filename file1.py with open(filename) a…

vlunstack-1(横向,phpmyadmin拿shell,xycms拿shell,cs和msf联动)

Vulnstack-1 内网环境搭建 环境配置&#xff1a; 靶机介绍 包括win7的web端&#xff0c;还有win2003为域成员&#xff0c;域控为win2008 win7内网ip&#xff1a;192.168.157.153 外网ip&#xff1a;192.168.52.143 域成员 win2003 ip 192.168.52.141 域控 win2008 ip 192.168…

基于WEB的仓库管理系统的设计与实现

点击下载源码 基于WEB的仓库管理系统的设计与实现 摘 要 仓库物品的管理是与我们的日常生活息息相关的一个重大问题。随着我国经济飞速的发展&#xff0c;改革开放的不断深入&#xff0c;企业要想在激烈的市场竞争中立于不败之地&#xff0c;要想继续的发展与生存&#xff0…

IDEA报错无效的目标发行版:17

问题描述&#xff1a;由于要接手另外一个项目&#xff0c;之前项目用的jdk17&#xff0c;新项目用的jdk8。需要切换jdk&#xff0c;idea切换之后启动报错 检查之后发现是没切换完全&#xff0c;一共需要切换如下几个地方&#xff1a; 切换前提&#xff1a;电脑上安装了多个版本…

八戒会修特斯拉 气囊电脑 rcm故障代码RCM2_a442_presFrntRDoorOpen

--------------------------------------------------------------------------------------------------------------------------------- -------------------------------------- 作者&#xff1a; 八戒会修特斯拉 -------------------------…

手机在网状态接口如何对接?(一)

一、什么是手机在网状态&#xff1f; 传入手机号码&#xff0c;查询该手机号的在网状态&#xff0c;返回内容有正常使用、停机、在网但不可用、不在网&#xff08;销号/未启用/异常&#xff09;、预销户等多种状态。 二、手机在网状态使用场景&#xff1f; 1.信贷审核&#…

MySQL是怎样运行的——第2章 启动选项和系统变量

文章目录 2.1 在命令行上使用选项2.1.1 选项的长形式和短形式 2.2 配置文件中使用选项2.2.1 配置文件的路径2.2.2 配置文件的内容2.2.3 配置文件的优先级 2.3 命令行和配置文件中启动选项的区别2.4 系统变量2.4.1 简介2.4.2 查看系统变量2.4.3 设置系统变量2.4.4 启动选项和系统…

Java原生序列化与反序列化、URLDNS

配套课件地址&#xff1a;https://blog.csdn.net/mocas_wang/article/details/10762101 1. 概述 1.1 序列化与反序列化 序列化是指把Java代码转化为字节序列的过程&#xff1b;而反序列化时指把字节序列恢复为Java对象的过程。序列化分为两大部分&#xff1a;序列化和反序列化…

mindspore框架实现ckpt模型导出ONNX格式

mindspore框架保存及加载模型 详细流程&#xff1a;昇思-保存及加载模型 关键步骤 关键代码 from mindspore import export, load_checkpoint, load_param_into_net from mindspore import Tensor import numpy as np from MobileNet2GarbageCls.MobileNetv2 import *# 有…

第二证券:商业航天概念再活跃,航天晨光5连板,航新科技等涨停

商业航天概念1日盘中再度活跃&#xff0c;到发稿&#xff0c;航新科技、春晖智控“20cm”涨停&#xff0c;航天雄图涨超10%&#xff0c;航天长峰、航天晨光、星网宇达、航天科技、航天展开等均涨停&#xff0c;航宇微涨近10%。 值得注意的是&#xff0c;航天晨光已接连5个交易…

如何对同一个项目,不同分支,开两个IDEA窗口?

问题&#xff1a;有次我想参考&#xff08;fu zhi&#xff09;某个分支的代码&#xff0c;来写代码&#xff0c;但是打开双击项目的pom文件&#xff0c;会自动打开现在的IDEA窗口&#xff0c;如下&#xff1a; 解决&#xff1a;后面我用Open的方式打开&#xff0c;也是一样的。…

免费【2024】springboot 大棚蔬菜管理系统的设计与实现

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

【漏洞复现】万户 ezOFFICE协同管理平台 getAutoCode SQL注入

文章目录 0x00 漏洞描述影响范围 0x01 测绘工具0x02 漏洞复现0x03 Nuclei检测脚本0x04 修复建议0x05 免责声明 0x00 漏洞描述 万户OA ezofice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品&#xff0c;统一的基础管理平台,实现用户数据…

Thread-Caching Malloc 简介

文章目录 Google的tcmalloc&#xff08;Thread-Caching Malloc&#xff09;简介主要特点工作原理应用场景安装与配置 总结 &#x1f396; 博主的CSDN主页&#xff1a;Ryan.Alaskan Malamute &#x1f4dc; 博主的代码仓库主页 [ Gitee ]&#xff1a;ryanala [GitHub]&…

第十三章 数据质量

本章重点内容&#xff1a; 1.重要的数据先开始处理 2.要知道PDCA&#xff08;计划-执行-检查-行动&#xff09; 3.知道数据质量的评估维度 4.进行根因分析以找出数据质量问题的根源 5.数据质量报告 1. 概述 与数据治理和整体数据管理一样&#xff0c;数据质量管理不是一个…