SpringCloud应用集成Nacos和Dubbo

SpringCloud应用集成Nacos和Dubbo

官网教程 官方demo

第一步:引入依赖

版本见 => 附录:根pom文件=>版本控制片段 www.cnblogs.com/anhaoyan...

<!-- Spring Boot依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</dependency>

第二步:配置 application.yml 文件

(1)服务提供者

server:
port: 8084
dubbo:
application:
name: nacos-dubbo-provider
protocol:
name: dubbo
port: -1
registry:
address: nacos://127.0.0.1:8848

(2)服务消费者

server:
port: 8085
dubbo:
application:
name: nacos-dubbo-consumer
protocol:
name: dubbo
port: -1
registry:
address: nacos://127.0.0.1:8848

第三步:启动类加@EnableDubbo​注解开启服务注册与发现

(1)服务提供者

​​​image​​​

package com.anhaoyang.test.nacos.dubbo.provider.start;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 服务提供者启动类
* 该类位于 boot-nacos-dubbo-provider 项目子模块 boot-nacos-dubbo-provider-start中
**/
@SpringBootApplication
@EnableDubbo //开启Dubbo
public class NacosDubboProviderStartApplication {
public static void main(String[] args) {
SpringApplication.run(NacosDubboProviderStartApplication.class, args);
}
}
package com.anhaoyang.test.nacos.dubbo.provider.start;
import com.anhaoyang.test.nacos.dubbo.provider.api.NacosDubboProviderApi;
import org.apache.dubbo.config.annotation.DubboService;
/**
* 测试接口
* 该类位于 boot-nacos-dubbo-provider 项目子模块 boot-nacos-dubbo-provider-start中
**/
@DubboService
public class NacosDubboProviderApiImpl implements NacosDubboProviderApi {
@Override
public String sayHello(String name) {
return "Provider received: " + name;
}
}
package com.anhaoyang.test.nacos.dubbo.provider.api;
/**
* 服务提供者api定义
* 该接口位于 boot-nacos-dubbo-provider 项目子模块 boot-nacos-dubbo-provider-api 中
**/
public interface NacosDubboProviderApi {
String sayHello(String name);
}

(2)服务消费者

image

package com.anhaoyang.test.nacos.dubbo.consumer;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableDubbo //开启dubbo
public class NacosDubboConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(NacosDubboConsumerApplication.class, args);
}
}
package com.anhaoyang.test.nacos.dubbo.consumer;
import com.anhaoyang.test.nacos.dubbo.provider.api.NacosDubboProviderApi;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 消费者调用测试
**/
@RestController
public class NacosDubboConsumerController {
//需依赖 服务提供者定义的接口,即 boot-nacos-dubbo-provider-api
@DubboReference
private NacosDubboProviderApi nacosDubboProviderService;
@GetMapping("/get")
public String get() {
return nacosDubboProviderService.sayHello("ConsumerBody");
}
}

第四步:验证

(1)启动服务后,Nacos控制台-服务列表

​​image​​

(2)服务消费者-> 访问rpc结果,成功。

http://127.0.0.1:8085/get

​​image​​

posted @   安浩阳  阅读(211)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示

目录导航