当前位置: 首页 > news >正文

[ Spring] Integrate Spring Boot Dubbo with Nacos 2025

文章目录

          • Dubbo Project Structure
          • Declare Plugins and Repositories
          • Introduce Dependencies
          • Dubbo Consumer Properties
          • Dubbo Provider Application
          • Dubbo Provider Service
          • Dubbo Consumer Properties
          • Dubbo Consumer Application
          • Dubbo Consumer Controller
          • Command References

Dubbo Project Structure
  • provider : provide service implementation
  • consumer : calling service offered by provider
  • registry center : roled by nacos, register service that can be discovered by consumer
  • config center : roled by nacos, offer cloud configurations
Declare Plugins and Repositories
pluginManagement {repositories {gradlePluginPortal()google()mavenCentral()}
}dependencyResolutionManagement {repositoriesMode = RepositoriesMode.PREFER_SETTINGSrepositories {gradlePluginPortal()google()mavenCentral()}
}buildscript {repositories {gradlePluginPortal()google()mavenCentral()}
}plugins {id("org.jetbrains.kotlin.jvm") version "2.0.21" apply falseid("org.jetbrains.kotlin.kapt") version "2.0.21" apply falseid("org.jetbrains.kotlin.plugin.spring") version "2.0.21" apply falseid("org.springframework.boot") version "3.4.1" apply false
}include("dubbo-provider")
include("dubbo-consumer")
Introduce Dependencies

suitable for both provider and consumer modules

plugins {id("org.jetbrains.kotlin.jvm")id("org.jetbrains.kotlin.kapt")id("org.jetbrains.kotlin.plugin.spring")id("org.springframework.boot")
}java {toolchain {languageVersion = JavaLanguageVersion.of(17)}
}dependencies {val springBootVersion = "3.4.2"val springCloudVersion = "4.2.0"val springCloudAlibabaVersion = "2023.0.3.2"// commonsapi("io.github.hellogoogle2000:kotlin-commons:1.0.19")// kotlinapi("org.jetbrains.kotlin:kotlin-reflect:2.0.21")// springapi("org.springframework.boot:spring-boot-starter:$springBootVersion")api("org.springframework.boot:spring-boot-starter-web:$springBootVersion")api("org.springframework.boot:spring-boot-starter-actuator:$springBootVersion")api("org.springframework.cloud:spring-cloud-starter-bootstrap:$springCloudVersion")// dubboapi("org.apache.dubbo:dubbo-spring-boot-starter:3.3.3")api("org.apache.dubbo:dubbo-nacos-spring-boot-starter:3.3.3")api("com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:$springCloudAlibabaVersion")
}
Dubbo Consumer Properties
# service
server.port=10003
spring.application.name=dubbo-consumer
spring.profiles.active=dev
spring.devtools.add-properties=false
# dubbo
dubbo.application.name=dubbo-consumer
dubbo.application.qos-port=20003
dubbo.registry.address=nacos://localhost:8848
dubbo.registry.username=nacos
dubbo.registry.password=nacos
dubbo.protocol.name=dubbo
dubbo.protocol.port=30003
# nacos
spring.cloud.nacos.discovery.server-addr=localhost:8848
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
Dubbo Provider Application
package x.spring.helloimport org.apache.dubbo.config.spring.context.annotation.DubboComponentScan
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.cloud.client.discovery.EnableDiscoveryClient@SpringBootApplication
@EnableDiscoveryClient
@DubboComponentScan(basePackages = ["x.spring.hello"])
class DubboProviderApplicationfun main(args: Array<String>) {runApplication<DubboProviderApplication>(*args)
}
Dubbo Provider Service
package x.spring.hello.serviceinterface DubboConfigService {fun loadConfig(): String
}
package x.spring.hello.serviceimport org.apache.dubbo.config.annotation.DubboService@DubboService
class DubboConfigServiceImpl : DubboConfigService {override fun loadConfig(): String {return "dubbo-provider-config"}
}
Dubbo Consumer Properties
# service
server.port=10003
spring.application.name=dubbo-consumer
spring.profiles.active=dev
spring.devtools.add-properties=false
# dubbo
dubbo.application.name=dubbo-consumer
dubbo.application.qos-port=20003
dubbo.registry.address=nacos://localhost:8848
dubbo.registry.username=nacos
dubbo.registry.password=nacos
dubbo.protocol.name=dubbo
dubbo.protocol.port=30003
# nacos
spring.cloud.nacos.discovery.server-addr=localhost:8848
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
Dubbo Consumer Application
package x.spring.helloimport org.apache.dubbo.config.spring.context.annotation.DubboComponentScan
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.cloud.client.discovery.EnableDiscoveryClient@SpringBootApplication
@EnableDiscoveryClient
@DubboComponentScan(basePackages = ["x.spring.hello"])
class DubboConsumerApplicationfun main(args: Array<String>) {runApplication<DubboConsumerApplication>(*args)
}
Dubbo Consumer Controller
package x.spring.hello.serviceinterface DubboConfigService {fun loadConfig(): String
}
package x.spring.hello.controllerimport org.apache.dubbo.config.annotation.DubboReference
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
import x.spring.hello.service.DubboConfigService@RestController
class DubboConfigController {@DubboReferenceprivate lateinit var service: DubboConfigService@GetMapping("/dubbo/config")fun load(): String {return service.loadConfig()}
}
Command References
nacos=sudo bash -f bin/startup.sh -m standalone
url=http://localhost:8848/nacos
url=http://localhost:10003/dubbo/config

相关文章:

[ Spring] Integrate Spring Boot Dubbo with Nacos 2025

文章目录 Dubbo Project StructureDeclare Plugins and RepositoriesIntroduce DependenciesDubbo Consumer PropertiesDubbo Provider ApplicationDubbo Provider ServiceDubbo Consumer PropertiesDubbo Consumer ApplicationDubbo Consumer ControllerCommand References Du…...

【3分钟极速部署】在本地快速部署deepseek

第一步&#xff0c;找到网站&#xff0c;下载&#xff1a; 首先找到Ollama &#xff0c; 根据自己的电脑下载对应的版本 。 我个人用的是Windows 我就先尝试用Windows版本了 &#xff0c;文件不是很大&#xff0c;下载也比较的快 第二部就是安装了 &#xff1a; 安装完成后提示…...

【QT笔记】使用QScrollArea实现多行文本样式显示

目录 一、QScrollArea 的基本概念 二、demo代码 三、实现效果 1、页面空间足够&#xff0c;无滚动条时显示效果 2、有滚动条时显示效果 一、QScrollArea 的基本概念 QScrollArea 是 Qt 框架中用于提供一个滚动条区域&#xff0c;允许用户滚动查看比当前可视区域更大的内容…...

大模型中提到的超参数是什么

在大模型中提到的超参数是指在模型训练之前需要手动设置的参数&#xff0c;这些参数决定了模型的训练过程和最终性能。超参数与模型内部通过训练获得的参数&#xff08;如权重和偏置&#xff09;不同&#xff0c;它们通常不会通过训练自动学习&#xff0c;而是需要开发者根据任…...

【Uniapp-Vue3】z-paging插件组件实现触底和下拉加载数据

一、下载z-paing插件 注意下载下载量最多的这个 进入Hbuilder以后点击“确定” 插件的官方文档地址&#xff1a; https://z-paging.zxlee.cn 二、z-paging插件的使用 在文档中向下滑动&#xff0c;会有使用方法。 使用z-paging标签将所有的内容包起来 配置标签中的属性 在s…...

UE虚幻引擎No Google Play Store Key:No OBB found报错如何处理

UE虚幻引擎No Google Play Store Key&#xff1a;No OBB found报错如何处理&#xff1f; 问题描述&#xff1a; UE成功打包APK并安装过后&#xff0c;启动应用时提示&#xff1a; No Google Play Store KeyNo OBB found and no store key to try to download. Please setone …...

OKHttp拦截器解析

OKHttp涉及到拦截器大概的执行步骤为&#xff1a; 1.通过newCall生成RealCall对象 具体代码如下&#xff1a; Override public Call newCall(Request request) {return new RealCall(this, request, false /* for web socket */);}2.调用Call的execute方法 当然这也可以是执…...

STM32标准库移植RT-Thread nano

STM32标准库移植RT-Thread Nano 哔哩哔哩教程链接&#xff1a;STM32F1标准库移植RT_Thread Nano 移植前的准备 stm32标准库的裸机代码&#xff08;最好带有点灯和串口&#xff09;RT-Thread Nano Pack自己的开发板 移植前的说明 本人是在读学生&#xff0c;正在学习阶段&a…...

c++11总结26——std::regex

std::regex 是 C11 引入的 正则表达式库&#xff0c;用于 字符串匹配、搜索和替换。 &#x1f539; 头文件&#xff1a;#include <regex> &#x1f539; 命名空间&#xff1a;std &#x1f539; 支持的匹配模式&#xff1a;ECMAScript&#xff08;默认&#xff09;、POS…...

langchain教程-12.Agent/工具定义/Agent调用工具/Agentic RAG

前言 该系列教程的代码: https://github.com/shar-pen/Langchain-MiniTutorial 我主要参考 langchain 官方教程, 有选择性的记录了一下学习内容 这是教程清单 1.初试langchain2.prompt3.OutputParser/输出解析4.model/vllm模型部署和langchain调用5.DocumentLoader/多种文档…...

leetcode_双指针 125.验证回文串

125.验证回文串 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后&#xff0c;短语正着读和反着读都一样。则可以认为该短语是一个回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s&#xff0c;如果它是回文串 &#xff0c;返回 true &#xff…...

ML.NET库学习001:基于PCA的信用卡异常检查之样本处理与训练

文章目录 (文末提供数据集下载)ML.NET库学习001&#xff1a;基于PCA的信用卡异常检查之样本处理与训练目标项目概述代码结构概述1. **主要类和文件**2. **命名空间和使用指令**3. **数据类 (TransactionObservation)**4. **主程序入口 (Main 方法)**5. **数据预处理 (DataPrepr…...

【华为OD机考】华为OD笔试真题解析(1)--AI处理器组合

一、题目描述 某公司研发了一款高性能AI处理器&#xff0c;每台物理设备具备8颗AI处理器&#xff0c;编号分别为0、1、2、3、4、5、6、7。 编号0~3的处理器处于同一链路中&#xff0c;编号4~7的处理器处于另外一个链路中&#xff0c;不同链路中的处理器不能通信&#xff0c;如…...

edu小程序挖掘严重支付逻辑漏洞

edu小程序挖掘严重支付逻辑漏洞 一、敏感信息泄露 打开购电小程序 这里需要输入姓名和学号&#xff0c;直接搜索引擎搜索即可得到&#xff0c;这就不用多说了&#xff0c;但是这里的手机号可以任意输入&#xff0c;只要用户没有绑定手机号这里我们输入自己的手机号抓包直接进…...

力扣 279. 完全平方数

&#x1f517; https://leetcode.cn/problems/perfect-squares 题目 给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量完全平方数可以拆解为两个相同数的乘积 思路 dp 公式&#xff0c;就是从看用哪个完全平方数 1 2 4 9…… 到当前 sum 的数量最少 代码 …...

鸿蒙生态潮起:开发者的逐浪之旅

鸿蒙生态潮起&#xff1a;开发者的逐浪之旅 在全球科技的澎湃浪潮中&#xff0c;鸿蒙生态宛如一座正在崛起的新大陆&#xff0c;熠熠生辉&#xff0c;吸引着无数开发者扬帆起航&#xff0c;探寻其中蕴藏的无限机遇&#xff0c;也直面诸多挑战。 鸿蒙生态的机遇&#xff0c;首先…...

Diskgenius系统迁移之后无法使用USB启动

前言 本文用于记录系统迁移中遇到的问题及解决方法&#xff0c;如有不对请指出&#xff0c;谢谢&#xff01; 现象 使用DiskGenius进行系统迁移后&#xff0c;使用USB启动失败&#xff0c;反复在品牌logo和黑屏之间切换&#xff0c;期间还会在左上角显示”reset system“报错…...

Kafka 可靠性探究—副本刨析

Kafka 的多副本机制提升了数据容灾能力。 副本通常分为数据副本与服务副本。数据副本是指在不同的节点上持久化同一份数据&#xff1b;服务副本指多个节点提供同样的服务&#xff0c;每个节点都有能力接收来自外部的请求并进行相应的处理。 1 副本刨析 1.1 相关概念 AR&…...

我的博文天地测试报告

我的博文天地测试报告 文章目录 我的博文天地测试报告 一.项目背景 二.项目功能 2.1 功能介绍 三.测试分类 3.1 功能测试 3.1.1 测试用例 3.1.2 实际执行测试的部分操作步骤/结果的截图 3.2 自动化测试 3.3 性能测试 3.1.2 用户登录 jmeter性能测试结果 性能测试遇到的困难 …...

EtherCAT主站IGH-- 35 -- IGH之pdo_list.h/c文件解析

EtherCAT主站IGH-- 35 -- IGH之pdo_list.h/c文件解析 0 预览一 该文件功能`pdo_list.c` 文件功能函数预览二 函数功能介绍`pdo_list.c` 中主要函数的作用1. `ec_pdo_list_init`2. `ec_pdo_list_clear`3. `ec_pdo_list_clear_pdos`4. `ec_pdo_list_total_size`5. `ec_pdo_list_a…...

抖音图片怎么去水印?2026年在线去水印工具+方法盘点,总有一款适合你

开篇&#xff1a;为什么要去水印&#xff1f; 保存抖音图片时&#xff0c;总会遇到水印的困扰。这些水印包含抖音logo、发布者名称&#xff0c;有时还会有账号信息。对于自媒体创作者、内容整理者或普通用户来说&#xff0c;去除水印往往是必需的。本文将介绍当下最实用的抖音图…...

SOCD Cleaner终极指南:彻底解决游戏键盘方向冲突的免费开源神器

SOCD Cleaner终极指南&#xff1a;彻底解决游戏键盘方向冲突的免费开源神器 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 还在为格斗游戏中同时按下W和S导致角色卡顿而烦恼吗&#xff1f;或者在射击游戏急停转…...

5分钟免费制作专业AI翻唱:AICoverGen完整指南

5分钟免费制作专业AI翻唱&#xff1a;AICoverGen完整指南 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen 想让AI帮你翻唱…...

LVGUI字体瘦身实战:如何为你的IoT设备定制一个超小的中文字体库

LGVUI字体瘦身实战&#xff1a;为IoT设备定制超小中文字体库的工程化解决方案 在嵌入式物联网设备开发中&#xff0c;每一KB的Flash和RAM都弥足珍贵。当你的智能温控器需要显示"当前温度&#xff1a;25℃"或者电子秤要呈现"净重&#xff1a;0.5kg"时&#…...

3分钟完成30分钟任务:词达人自动化助手终极指南

3分钟完成30分钟任务&#xff1a;词达人自动化助手终极指南 【免费下载链接】cdr 微信词达人&#xff0c;高正确率&#xff0c;高效简洁。支持班级任务及自选任务 项目地址: https://gitcode.com/gh_mirrors/cd/cdr 你是否厌倦了每周在词达人平台上花费数小时完成枯燥的…...

如何用Sunshine打造个人游戏云:终极自托管游戏串流解决方案

如何用Sunshine打造个人游戏云&#xff1a;终极自托管游戏串流解决方案 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾经梦想在任何设备上畅玩PC游戏&#xff1f;无论是想…...

Unity游戏开发集成MCP协议:AI助手自动化操作指南

1. 项目概述&#xff1a;Unity游戏开发中的MCP革命如果你是一名Unity开发者&#xff0c;最近可能已经注意到一个名为“CoderGamester/mcp-unity”的项目在GitHub上悄然走红。这不仅仅是一个普通的插件或工具包&#xff0c;它代表了一种全新的工作流范式&#xff0c;旨在将大型语…...

从零构建情感大语言模型:基于EmoLLM的实践指南

1. 项目概述&#xff1a;当大语言模型学会“察言观色”最近在折腾一个挺有意思的开源项目&#xff0c;叫SmartFlowAI/EmoLLM。光看名字你可能就猜到了&#xff0c;这玩意儿跟“情绪”和“大语言模型”有关。没错&#xff0c;它的核心目标就是让冷冰冰的LLM&#xff08;Large La…...

基于MCP协议构建AI金融数据可视化服务器:从原理到实战部署

1. 项目概述&#xff1a;一个为AI智能体提供实时金融数据可视化的MCP服务器最近在折腾AI智能体&#xff08;Agent&#xff09;的生态&#xff0c;发现一个挺有意思的痛点&#xff1a;当你想让AI帮你分析股票、基金或者加密货币时&#xff0c;它往往只能给你干巴巴的数字和文字描…...

终极指南:如何使用League-Toolkit英雄联盟工具箱快速提升游戏效率

终极指南&#xff1a;如何使用League-Toolkit英雄联盟工具箱快速提升游戏效率 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟中…...