Spring boot 应用引入 Spring cloud alibaba nacos
1. 引入pom依赖
要在Spring Boot应用中引入Spring Cloud Alibaba的依赖以及Nacos的依赖,您可以按照以下步骤在pom.xml
文件中添加相应的依赖:
首先,在pom.xml
文件中添加Spring Cloud Alibaba BOM(Bill of Materials)依赖管理,这将统一管理Spring Cloud Alibaba的依赖版本:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
然后,在dependencies
部分中,添加Spring Cloud Alibaba的具体依赖,以及Nacos的依赖:
<dependencies>
<!-- Spring Cloud Alibaba Nacos Discovery -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Spring Cloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- 其他Spring Cloud Alibaba的依赖 -->
</dependencies>
通过这些步骤,您的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项目中,可以添加如下依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
- 创建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会处理负载均衡、服务发现
等工作,使得远程服务调用变得更加简单和方便。