Spring boot 应用引入 Spring cloud alibaba nacos

发布于:2024-05-08 ⋅ 阅读:(32) ⋅ 点赞:(0)

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调用服务的基本步骤:

  1. 添加依赖:确保在项目中添加OpenFeign的依赖。在Maven项目中,可以添加如下依赖:
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
  1. 创建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();
}
  1. 注入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();
    }
}
  1. 调用远程服务:在需要调用远程服务的地方使用注入的Feign客户端接口来调用服务。
String data = myService.fetchDataFromService();

通过上述步骤,你可以使用OpenFeign轻松地调用远程服务。OpenFeign会处理负载均衡、服务发现等工作,使得远程服务调用变得更加简单和方便。


网站公告

今日签到

点亮在社区的每一天
去签到