SpringCloud Nacos整合配置、注册中心

什么是Nacos?
Nacos是阿里巴巴开源的项目,是一个更易于帮助构建云原生应用的动态服务发现、配置管理和服务管理平台。英文全称 Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。

Nacos功能介绍

1、动态配置服务:动态配置服务让您能够以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。
2、服务发现及管理:动态服务发现对以服务为中心的(例如微服务和云原生)应用架构方式非常关键。Nacos支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现。Nacos也提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,您可以更容易地为您的服务实现断路器。
3、动态DNS服务:通过支持权重路由,动态DNS服务能让您轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。

为什么选择Nacos?

1、易于使用:动态配置管理、服务发现和动态的一站式解决方案;20多种开箱即用的以服务为中心的架构特性;基本符合生产要求的轻量级易用控制台。
2、更适应云架构:无缝支持Kubernetes和Spring Cloud;在主流公共云上更容易部署和运行(例如阿里云和AWS);多租户和多环境支持。
3、生产等级:脱胎于历经阿里巴巴10年生产验证的内部产品;支持具有数百万服务的大规模场景;具备企业级SLA的开源产品。
4、丰富的应用场景:支持限流、大促销预案和异地多活;直接支持或稍作扩展即可支持大量有用的互联网应用场景;流量调度和服务治理。


环境
SpringBoot 2.3.3.RELEASE
nacos-server-2.0.3
apache-maven-3.6.3
jdk1.8.0_131

1 启动 Nacos Server 并添加配置
1.下载地址:

直接下载: Nacos Server 下载页
源码构建: Github 项目页面
2.启动

cd [文件位置]/nacos/bin/

Linux/Unix/Mac 操作系统,执行命令 bash sh startup.sh -m standalone &
Windows 操作系统,执行命令 cmd startup.cmd
默认账户密码:nacos

查看日志
cd [文件位置]/nacos/logs
tail -200f start.out

启动成功界面
请添加图片描述

3.添加配置
Data ID: nacos-config-example.properties
Group: DEFAULT_GROUP
配置内容:user.name=shiyue
请添加图片描述

	<properties>
		<java.version>1.8</java.version>
		<cloud.version>Hoxton.SR6</cloud.version>
	</properties>
	
		<!--nacos整合配置中心-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
		</dependency>

		<!--nacos 服务注册-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>

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

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

application.yml


server:
  port: 8888

spring:
  application:
    name: nacos-config-example
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848
        group: DEFAULT_GROUP
        file-extension: properties

启动配置

@EnableDiscoveryClient //连接Nacos 注册中心需要的
@SpringBootApplication
@EnableTransactionManagement
@EnableAsync // 开启异步处理
@EnableCaching
public class StarterUser {
	public static void main(String[] args) {
		SpringApplication.run(StarterUser.class, args);
	}
}

控制层

package com.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;


@RestController
@RequestMapping("config")
// 实时热点更新
@RefreshScope
//@ConfigurationProperties(prefix = "nacos-config-example")
public class ConfigController {

    @Value("${user.name}")
    String userName;

    @RequestMapping("/getConfig")
    public String getConfig() {
        System.out.println(userName);
        return userName;
    }
}

请添加图片描述

参考

  1. Nacos整合SpringCloud(配置中心、注册中心)
  2. nacos快速上手
  3. 蘑菇博客Nacos部署指南
  4. Nacos 文档
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值