Spring boot 应用引入 Spring cloud alibaba nacos
- 1. 引入pom依赖
- 2. 配置文件(bootstrap.yml)
- 3. 配置中心配置建议
- 4. 注册中心
- 4.1 服务注册
- 4.2 服务发现
1. 引入pom依赖
要在Spring Boot应用中引入Spring Cloud Alibaba的依赖以及Nacos的依赖,您可以按照以下步骤在pom.xml文件中添加相应的依赖:
首先,在pom.xml文件中添加Spring Cloud Alibaba BOM(Bill of Materials)依赖管理,这将统一管理Spring Cloud Alibaba的依赖版本:
com.alibaba.cloud spring-cloud-alibaba-dependencies 2.2.3.RELEASE pom import 然后,在dependencies部分中,添加Spring Cloud Alibaba的具体依赖,以及Nacos的依赖:
com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 通过这些步骤,您的Spring Boot应用就可以成功引入Spring Cloud Alibaba的依赖,并且使用Nacos作为服务发现和配置中心。记得执行mvn clean install来下载依赖并构建项目。
2. 配置文件(bootstrap.yml)
配置文件配置nacos集群地址,注册中心和配置中心相关配置
server: port: 8001 spring: profiles: active: dev application: #项目名称必填,在注册中心唯一 #最好和之前域名规范、kubernetes service名等保持一致(会作为调用) name: app cloud: nacos: config: file-extension: yaml namespace: app-${spring.profiles.active} group: app-group shared-configs: - data-id: app-common.yaml group: app-group refresh: true discovery: namespace: app-${spring.profiles.active} server-addr: your-nacos-cluster-server-ip1:8848,your-nacos-cluster-server-ip2:8848,your-nacos-cluster-server-ip3:8848
3. 配置中心配置建议
- 命名空间:用于设置项目
- Group: 用于设置应用
- Data ID: 具体配置,可以按profile设置不同的文件
4. 注册中心
4.1 服务注册
启用Nacos服务注册:在Spring Boot应用程序的启动类上添加@EnableDiscoveryClient注解,以启用Nacos服务注册功能。
@SpringBootApplication @EnableDiscoveryClient public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } }
运行你的应用程序,它将会自动注册到Nacos注册中心。
如果使用tomcat方式启动应用,应用无法自动注册到nacos,可参考Spring Boot 构建war 部署到tomcat下无法在Nacos中注册服务解决。
4.2 服务发现
使用OpenFeign调用服务可以简化REST API的调用过程。以下是使用OpenFeign调用服务的基本步骤:
- 添加依赖:确保在项目中添加OpenFeign的依赖。在Maven项目中,可以添加如下依赖:
org.springframework.cloud spring-cloud-starter-openfeign - 创建Feign客户端接口:定义一个接口,用于声明需要调用的远程服务的方法。
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @FeignClient(name = "service-name") // 指定要调用的服务名称 public interface MyFeignClient { @GetMapping("/endpoint") // 定义需要调用的接口路径 String getEndpointData(); }
- 注入Feign客户端接口:在需要调用服务的类中注入Feign客户端接口。
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class MyService { @Autowired private MyFeignClient feignClient; public String fetchDataFromService() { return feignClient.getEndpointData(); } }
- 调用远程服务:在需要调用远程服务的地方使用注入的Feign客户端接口来调用服务。
String data = myService.fetchDataFromService();
通过上述步骤,你可以使用OpenFeign轻松地调用远程服务。OpenFeign会处理负载均衡、服务发现等工作,使得远程服务调用变得更加简单和方便。
还没有评论,来说两句吧...