Spring Cloud集成Nacos配置管理以及服务发现

在微服务的架构中,发现、配置和管理微服务非常重要,Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。具有服务发现和服务健康监测、动态配置服务、动态 DNS 服务,服务及其元数据管理等主要特性。

在Spring Cloud中集成Nacos的配置管理以及服务发现非常简单,下面以一个3节点集群的Nacos为例,在Spring Cloud中集成Nacos。

版本

首先Spring Cloud Alibaba对于配套的组件是版本要求的,具体的版本对应如下:

Spring Cloud Alibaba Version

Spring Cloud Version

Spring Boot Version

2021.0.4.0*

Spring Cloud 2021.0.4

2.6.11

2021.0.1.0

Spring Cloud 2021.0.1

2.6.3

2021.1

Spring Cloud 2020.0.1

2.4.2

这里以2021.0.1.0为例。

nacos集群

首先准备一个nacos的集群(在一台服务器通过不同的端口来实现)

集群地址:172.18.0.32:8849,172.18.0.32:8851,172.18.0.32:8849

创建项目

打开宇宙第三的IDE IntelliJ IDEA创建一个Maven的项目,创建3个微服务,分别是BookService,UserService和OrderService。

在父项目管理一下版本。

<?xml version="1.0" encoding="UTF-8"?>

    4.0.0

    org.microservice
    ali
    pom
    1.0.0
    
        BookService
        UserService
        OrderService
        Entity
    

    
        17
        17
    

    
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        
        
        
        
            org.springframework.cloud
            spring-cloud-starter-bootstrap
        
    
    
        
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2021.0.1.0
                pom
                import
            
            
                org.springframework.boot
                spring-boot-starter-parent
                2.6.3
                pom
                import
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                2021.0.1
                pom
                import
            
        
    

启用配置管理

添加spring-cloud-starter-alibaba-nacos-config依赖,因为每个子模块都需要用到,在父项目的pom.xml中添加。在2.4以后的版本需要添加spring-cloud-starter-bootstrap的依赖,否则读取不到bootstrap.yaml的配置。


  com.alibaba.cloud
  spring-cloud-starter-alibaba-nacos-config




  org.springframework.cloud
	spring-cloud-starter-bootstrap

在bootstrap.yaml配置nacos的信息

spring:
  application:
    name: bookService
  cloud:
    nacos:
      config:
        server-addr: 172.18.0.32:8849,172.18.0.32:8851,172.18.0.32:8849
        namespace: 8d53a658-0e97-468e-b901-42291996b381
        refresh-enabled: true
        file-extension: yaml
        enabled: true
        name: BookService
        group: dev

其中spring.application.name必须配置,因为nacos中的配置的dataId的组成规则是${prefix}-${spring.profiles.active}.${file-extension}

比如我们以UserService为例,做多环境配置

UserService多环境

启动的时候配置为pro

那么就会自动读取bootstrap-pro.yaml的配置,在Nacos配置对应的配置文件,配置文件中,把当前的服务注册到Nacos中,把dev的环境的server.port配置为8637,pro的配置为8837,下面来测试一下是否正常。

其中dev的配置


pro的配置


配置为dev


配置为pro


在接口中获取配置的值

在nacos的pro环境配置新增userName和password的配置,在Controller新增一个接口,通过指定配置的key,获取配置的值


通过注入的方式使用

当前的版本通过@Value进行注入,@NacosValue已经不支持

服务发现

下面以OrderService服务中,根据订单的id获取订单的信息,订单中包含是哪个用户借阅了什么图书。

在父项目中新增依赖


  com.alibaba.cloud
	spring-cloud-starter-alibaba-nacos-discovery

在OrderService中添加依赖



  org.springframework.cloud
	spring-cloud-loadbalancer

OrderService获取订单的api

注入RestTemplate

BookService的bookInfo

UserService的userInfo

把3个服务都启动。

服务注册到了Nacos


下面来测试一下。

展开阅读全文

页面更新:2024-04-25

标签:发现   数据管理   集群   订单   接口   版本   环境   项目   动态   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top