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

springboot项目注册到nacos使用dubbo互相调用例子

环境:

JDK:21

 

1.项目结构

image

 这里hxl03是服务提供者,hxl04是服务消费者

 

################################################hxl03服务提供者################################

1.pom.xml文件

<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>org.hxl03</groupId><artifactId>hxl03</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>hxl03</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.0</version></parent><dependencies><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>3.2.0</version></dependency><!--    web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>3.2.0</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-nacos</artifactId><version>3.2.0</version></dependency><dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>RELEASE</version><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

 

2.application.yml

server:port: 8003
spring:application:name: demo-provider
dubbo:application:name: demo-providerregistry:##address: nacos://192.168.1.134:8848?username=nacos&password=nacosaddress: nacos://192.168.1.134:8848
    username: nacospassword: nacos##register-mode: instanceprotocol:name: dubboport: -1scan:base-packages: org.hxl03.provider##metadata-type: remote

 

3.java代码

image

 

DemoService.java

package org.hxl03.api;public interface DemoService {String sayHello(String name);
}

 

DemoServiceImpl.java

package org.hxl03.provider;import org.hxl03.api.DemoService;
import org.apache.dubbo.config.annotation.DubboService;@DubboService // 关键注解:声明这是一个Dubbo服务实现,并将此服务发布到注册中心
public class DemoServiceImpl implements DemoService {@Overridepublic String sayHello(String name) {return "Hello, " + name + "! (from Dubbo 3 Provider)";}
}

 

App.java

package org.hxl03;/*** Hello world!**/
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class App
{public static void main( String[] args ){SpringApplication.run(App.class,args);}
}

 

##########################################hxl04服务消费者###############################

1.pom.xml文件

<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>org.hxl04</groupId><artifactId>hxl04</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><name>hxl04</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.0</version></parent><dependencies><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>3.2.0</version></dependency><!--    web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>3.2.0</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-nacos</artifactId><version>3.2.0</version></dependency>    <dependency><groupId>org.hxl03</groupId><artifactId>hxl03</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
</project>

 

红色部分是引入hxl03的项目

 

2.application.yml

server:port: 8004
spring:application:name: demo-consumer
dubbo:application:name: demo-consumerregistry:##address: nacos://192.168.1.134:8848?username=nacos&password=nacosaddress: nacos://192.168.1.134:8848
    username: nacospassword: nacosprotocol:name: dubboport: -1##register-mode: instance##metadata-type: remote

 

3.java代码

image

 

ConsumerController.java

package org.hxl04.consumer;import org.hxl03.api.DemoService;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
public class ConsumerController {// 关键注解:引用远程Dubbo服务// 注意:Dubbo 3.x 应用级服务发现通常不需要指定版本(version)
    @DubboReferenceprivate DemoService demoService;@GetMapping("/hello")public String sayHello(@RequestParam String name) {// 这个调用看起来是本地方法,但实际上是通过Dubbo发起的远程过程调用return demoService.sayHello(name);}
}

 

App.java

package org.hxl04;/*** Hello world!**/
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class App
{public static void main( String[] args ){SpringApplication.run(App.class,args);}
}

 

hxl03提供服务端启动后会发现注册到了nacos

image

 

hxl04消费者端启动后调用

http://127.0.0.1:8004/hello?name=World

image

 

 

http://www.gsyq.cn/news/62914.html

相关文章:

  • 2025年双吸离心泵供货商权威推荐榜单:耐腐蚀离心泵/离心泵/螺旋离心泵源头厂家精选
  • NOIP 集训 day6 杂题选讲(图论)
  • 【weblogic】协议反序列化漏洞 - 指南
  • 2025年药品检测柱后衍生系统十大推荐品牌,赛智柱后衍生技术
  • 2025长沙西点培训学校TOP5权威推荐:长沙欧米奇专业吗?
  • Android开发TextView字体大小自适应实现
  • 2025 年 11 月冲牙器品牌权威推荐榜:涵盖声波脉冲、便携迷你、智能变频及儿童专用,全方位洁净体验与创新科技深度解析
  • Mac利用XAMPP创建thinkphp6项目
  • 2025年不锈钢球供货商权威推荐榜单:钢球/轴承钢球/不锈钢珠源头厂家精选
  • 2025年11月成都监理公司推荐榜:权威解析与用户选择指南
  • 关于XSS和CSRF,面试官更喜欢这样的回答!
  • go2视频流udp传输
  • 口碑佳的深海环境模拟试验装置制造商TOP5推荐:售后完善选择
  • 2025年十大广州西装定制排行榜,浪登定制专业吗?创新能力怎
  • 2025年水面保洁船直销厂家权威推荐榜单:保洁船‌/河道保洁船 ‌/湖面保洁船源头厂家精选
  • 跟着东京大学镰谷研究室学习GWAS分析及可视化 - 实践
  • 气象站厂家专业推荐:从专业科研到农业应用的全方位指南
  • 详细介绍:Sqoop将MySQL数据导入HDFS
  • DB2数据库解除表空间挂起状态
  • 国标GB28181算力算法平台EasyGBS赋能智慧农田可视化监管新模式
  • 2025 年 11 月激振器厂家权威推荐榜:DF/HE/LE/ZDQ/RDQ/JR/BE/UE/KWD/G/ML/MV/DVE全系列激振器型号深度解析与选购指南
  • IPIDEA代理IP深度测评:构建智能体知识库的得力助手
  • Spring Web 中获取 HTTP 请求参数的方法
  • 2025 年油田压裂用支撑剂厂家最新推荐榜,技术创新与产品可靠性深度解析的优质企业名录油田采油用防砂树脂砂/油田压裂用自悬浮支撑剂/钻井用降滤失剂/球团压块粘结剂公司推荐
  • 2025年黑龙江省面试培训十大机构排行榜,雪恒白雪面试常见问
  • 2025 年铝包木窗厂家最新推荐榜,技术实力与市场口碑深度解析 + 高性能与可靠性兼具的优质品牌
  • # C#AI系列(3):31mb单文件exe实现姿态检测-将Yolo装进口袋
  • C 与 C++ 中 ​​inline​​ 关键字的深入解析与使用指南
  • 详细介绍C++中inline函数的优缺点
  • 2025 年 11 月红木装修品牌权威推荐榜:复古/古典/别墅/四合院高端整装设计,精选原料与工艺质量深度解析