SpringCloud第二话 -- 基于Nacos实现配置中心

如果不满足上篇文章的eureka注册中心,那么本文记录的Nacos是不二之选。
本文主要记录Springboot基于Nacos实现配置中心

1. Nacos介绍

官网说明:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

2. docker安装Nacos

基于liunx centos7,镜像nacos/nacos-server:v2.1.0

2.1 docker-compose.yaml

version: '3.7'
services:
  nacos01:
    image: nacos/nacos-server:v2.2.3
    container_name: nacos01
#    restart: always
    ports:
    - "8848:8848"
    - "9848:9848"   #好像是2版本以后 新增了grpc的端口 位移1000
    volumes:
    #如果想以文件形式保存 那就需要把这个映射到宿主机
    - ./data:/home/nacos/data
    environment:
    - TZ=Asia/Shanghai
    - MODE=standalone   #单点的形式
    - JVM_XMS=128m
    # 堆内存溢出 后会导致内部data清掉 所以一定要自己保存 使用文件或者mysql
    - JVM_XMX=1024M
	#选择保存到mysql 需要建一个库nacos_config
    #- SPRING_DATASOURCE_PLATFORM=mysql
    #- MYSQL_SERVICE_HOST=192.168.168.191
    #- MYSQL_SERVICE_DB_NAME=nacos_config
    #- MYSQL_SERVICE_PORT=3306
    #- MYSQL_SERVICE_USER=root
    #- MYSQL_SERVICE_PASSWORD=root
    #- MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true
    networks:
    - my-net
networks:
  #新增的网络 内部服务名调用
  my-net:
    external: true

如果需要配置本地数据库的可以参考这篇文章

2.2 启动后访问控制台

访问http://192.168.0.221:8848/nacos/,单点访问不需要鉴权,如果需要,那账号密码都是nacos
在这里插入图片描述
添加一个orderservice-dev.yaml配置,内容如下。
在这里插入图片描述
接下来在springboot中集成Nacos

3.Springboot集成Nacos

3.1 pom依赖

父依赖

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.6.8</version>
</parent>

springcloud版本管理包

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>2021.0.5</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

nacos配置依赖

<!--引入cloud config-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!--引入nacos config依赖-->
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
	<version>2021.0.4.0</version>
</dependency>
<!--cloud2021.x版本后 不在支持bootstrap No spring.config.import set-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

一定要注意依赖,不然很多问题

3.2 yaml配置

特别注意加载配置文件的顺序 bootstrap -> application,所以不要在application.yml写任何配置,不存在最好。新建一个bootstrap.yml

spring:
  application:
    #这个名词需要和nacos配置的一致
    name: orderservice
  profiles:
    #指定环境
    active: dev
  #指定配置名称  
  config:
    import:
      - optional:nacos:application.yml
      - optional:nacos:${spring.application.name}-${spring.profiles.active}.yml  
  cloud:
    #不使用默认的config 使用nacos
    config:
      enabled: false
    nacos:
      config:
        server-addr: 192.168.0.221:8848
        #命名空间 默认public
        #namespace: cms-dev
        #group名称
        group: DEFAULT_GROUP

接下来从启动日志看下读取配置的规则:

Ignore the empty nacos configuration and get it based on dataId[orderservice] & group[DEFAULT_GROUP]
Ignore the empty nacos configuration and get it based on dataId[orderservice.yaml] & group[DEFAULT_GROUP]
Located property source: [BootstrapPropertySource {name='bootstrapProperties-orderservice-dev.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-orderservice.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-orderservice,DEFAULT_GROUP'}]
  1. 服务名+配置的文件后缀(默认properties后缀)最优先,orderservice.${file-extension}
  2. 根据环境配置,orderservice-${spring.profiles.active}.${file-extension}

3.3 测试配置动态化

//开启配置动态刷新
@RefreshScope
@Slf4j
@RestController
public class OrderController {
	@Value("${hello.world}")
    private String hello;
    @GetMapping("/test")
    public String test() throws Exception {
        log.info("config -- {}", hello);
        return hello;
    }
}

3.4 测试日志

c.e.order.controller.OrderController     : config -- 1345671234567887654
//修改为jack再次访问
c.e.order.controller.OrderController     : config -- hello my name is jack

以上就是本章的全部内容了。

上一篇:SpringCloud第一话 – Eureka服务注册中心
下一篇:SpringCloud第三话 – 基于Nacos实现注册中心以及远程服务调用

失之东隅,收之桑榆

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Nacos是一个开源的服务发现、配置管理和服务治理平台,是阿里巴巴推出的云原生生态项目。而nacos-server-2.2.0.tar.gz则是Nacos的安装包。 首先需要到Nacos的官网(https://nacos.io/zh-cn/docs/download.html)下载对应的版本。在页面中可以找到6种不同的安装包,选择自己所需的版本进行下载即可。 下载完成后需要进行解压和配置。解压之后,进入nacos/bin目录中,运行startup.sh脚本即可启动Nacos服务。默认情况下,Nacos会启动在8848端口。 在使用Nacos之前,需要配置相关的参数,如数据库连接、数据存储方式等。可以在nacos/conf目录中找到application.properties文件,根据具体情况进行修改即可。需要注意的是,修改之后需要重启Nacos服务才能生效。 总之,下载nacos-server-2.2.0.tar.gz是Nacos使用的第一步,通过下载、解压和配置,可以让我们顺利进行相关的服务发现、配置管理和服务治理工作。 ### 回答2: nacos-server-2.2.0.tar.gz是一个Nacos服务注册中心的压缩文件,其中包含了Nacos Server的所有代码和资源文件。Nacos是一个开源的服务注册发现和配置管理平台,旨在帮助开发者更轻松地实现微服务架构的管理。 下载nacos-server-2.2.0.tar.gz的步骤如下: 1.打开Nacos的官网:https://nacos.io/zh-cn/ 2.选择“下载”按钮,进入下载页面。 3.找到“Nacos Server”的下载区,点击“下载”按钮即可下载该压缩包。 4.下载完毕后,解压压缩包并配置好环境变量即可使用。 使用nacos-server-2.2.0.tar.gz可以方便地实现服务注册、发现、健康检查、动态配置等功能。Nacos支持多种服务注册中心,包括基于Eureka的注册中心、基于Consul的注册中心和基于Zookeeper的注册中心。在Nacos的管理界面可以方便地进行服务的管理和监控,使得微服务架构的管理更便捷、高效。 ### 回答3: nacos-server-2.2.0.tar.gz是阿里巴巴开源的分布式配置中心和服务注册发现中心Nacos的服务器端2.2.0版本的压缩包。该版本主要增了许多新功能和优化,并修复了许多问题。此外,该版本还提供了更好的稳定性和更高的性能。如果您需要使用Nacos的服务注册和配置管理功能,您可以下载并安装nacos-server-2.2.0.tar.gz文件。在下载文件后,您可以按照官方文档中的指导进行安装和配置。Nacos不仅适用于互联网、金融、零售等企业级场景,也可用于中小型企业的微服务平台。同时,Nacos还提供了开箱即用的Spring Cloud和Dubbo集成方案。这个开源软件正在快速迭代,希望能够为您的微服务架构提供有力的支持。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值