阿里Nacos初体验

Nacos 从开源到如今已经18个releases了,更新很快,社区也很活跃,光钉钉群的人数那也是好多,每次点个查看所有成员的按钮,个人钉钉就要卡死,也有可能我没更新最新的版本。linux

前面写了一段时间的Sentinel,最近仍是打算学习下Nacos,目前不用也不要紧,关键是先要体验下,知道这个框架的优势,对技术选型来讲很重要。git

Github地址:github.com/alibaba/nac…github

记得Star下哦。。。spring

其实Nacos的官方文档已经很详细了,并且是中文版,对国内的开发来讲简直是福音。这其实就牵扯到另外一个问题,就是既然这么详细了,还有必要写这些文章吗?springboot

这个嘛主要是本身学习过程当中的积累,也许我在这个过程当中会遇到一些问题,也许这些问题对某些刚接触的人来讲有用,这就够了。除了官方文档以外其实还有不少大牛也写了不少文章,我们应该多向这些乐于分享的人学习。bash

详细介绍

Nacos主要用于 服务发现和服务健康监测,动态配置服务,动态 DNS 服务等场景。架构

下图是官方提供的,经过下图能够全面的了解Nacos。app

Nacos 地图

特性大图:要从功能特性,非功能特性,全面介绍咱们要解的问题域的特性诉求 架构大图:经过清晰架构,让您快速进入 Nacos 世界 业务大图:利用当前特性能够支持的业务场景,及其最佳实践 生态大图:系统梳理 Nacos 和主流技术生态的关系 优点大图:展现 Nacos 核心竞争力 战略大图:要从战略到战术层面讲 Nacos 的宏观优点框架

快速体验

不少框架为了让使用者快速体验,都会提供一个快速启动包,简单方便。spring-boot

咱们能够在github.com/alibaba/nac…页面下载你须要的版本包:

Windows上下载zip包就能够了,linux上下载tar包。以Windows为例,解压以后进入bin目录,直接运行startup.cmd脚本便可启动Nacos服务。Linux/Unix/Mac上执行sh startup.sh -m standalone启动服务,standalone表明着单机模式运行,非集群模式。

登录页面

默认的帐号密码是 nacos/nacos,登录以后能够看到主页面。

主页面

Spring Boot 集成配置管理

因为是第一篇文章,我们先从配置这块学起,首先体验下配置在Spring Boot中如何集成,详细的后面再一一进行介绍。

加入依赖:

<dependency>
	<groupId>com.alibaba.boot</groupId>
	<artifactId>nacos-config-spring-boot-starter</artifactId>
	<version>0.2.1</version>
</dependency>
复制代码

注意:版本 0.2.x.RELEASE对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。

经过下面的地址查看版本列表:

mvnrepository.com/artifact/co…

在Nacos后台新建一个配置:

Data ID:Nacos 中的某个配置集的 ID。配置集 ID 是组织划分配置的维度之一。Data ID 一般用于组织划分系统的配置集。一个系统或者应用能够包含多个配置集,每一个配置集均可以被一个有意义的名称标识。Data ID 一般采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则保证全局惟一性。此命名规则非强制。

在启动类上指定Data ID:

@NacosPropertySource(dataId = "nacos-springboot", autoRefreshed = true)
@SpringBootApplication
public class NacosSpringBootApp {
	public static void main(String[] args) {
		SpringApplication.run(NacosSpringBootApp.class, args);
	}
}
复制代码

测试代码:

@RestController
public class ConfigController {

	@NacosValue(value="${name}", autoRefreshed=true)
	private String name;
	
	@GetMapping("/name")
	public String getName() {
		return this.name;
	}
}
复制代码

使用@NacosValue来注入配置,autoRefreshed默认为false, 在后台改了是不会刷新值的,须要设置成true才能够刷新。

第一篇文章就到这里,更多特性,咱们后面一一讲解。

猿天地
相关文章
相关标签/搜索