Spring Cloud Alibaba Nacos 入门
概览
阿里巴巴在2018年7月份发布Nacos, Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。并表示在6-8个月完成到生产可用的0.8版本,目前版本是0.9版本。
Nacos提供四大功能
服务发现和服务健康检查
Nacos使服务更容易注册自己并通过DNS或HTTP接口发现其他服务。Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请求。
动态配置管理
动态配置服务允许您在所有环境中以集中和动态的方式管理所有服务的配置。Nacos消除了在更新配置时重新部署应用程序和服务的需要,这使配置更改更加高效和灵活。
动态DNS服务
动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。动态DNS服务还能让您更容易地实现以 DNS 协议为基础的服务发现,以帮助您消除耦合到厂商私有服务发现 API 上的风险。
服务和元数据管理
Nacos提供易于使用的服务仪表板,可帮助您管理服务元数据,配置,kubernetes DNS,服务运行状况和指标统计。
安装
Nacos安装可以采用如下两种方式:
- 1.官网下载稳定版本解压使用。
- 2.下载源代码编译使用,目前最新的版本是0.9.0版本。
本文使用第一种方式,到Nacos的稳定版本下载地址https://github.com/alibaba/nacos/releases,下载最新版,下载后解压即安装完成,然后进入解压目录后的bin目录。
unzip nacos-server-0.9.0.zip
或者
tar -xvf nacos-server-0.9.0.tar.gz
进入解压目录后的bin目录执行如下命令启动Nacos。
#Linux/Unix/Mac 下
sh startup.sh -m standalone
#Windows 下
cmd startup.cmd
启动成功后,访问Nacos服务,http://localhost:8848/nacos/#/login,默认情况用户名密码都是nacos,登录页如图所示。

登录后如图所示。

SpringBoot 使用 Nacos 配置管理
创建一个springboot项目,主要代码如下。
pom.xml
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.1</version>
</dependency>
application.yml
spring:
application:
name: springcloud-nacos-hello
nacos:
config:
server-addr: 127.0.0.1:8848
配置说明:
- spring.application.name:配置应用名。
- nacos.config.server-addr:Nacos server 的地址。
启动类
在启动类,加入 @NacosPropertySource 注解其中包含两个属性,如下:
- dataId:这个属性是需要在Nacos中配置的Data Id。
- autoRefreshed:为true的话开启自动更新。
在使用Nacos做配置中心后,需要使用@NacosValue注解获取配置,使用方式与@Value一样,完整启动类代码如下所示。
@SpringBootApplication
@NacosPropertySource(dataId = "springcloud-nacos-hello", autoRefreshed = true)
@RestController
public class SpringcloudNacosHelloApplication {
public static void main(String[] args) {
SpringApplication.run( SpringcloudNacosHelloApplication.class, args );
}
@NacosValue(value = "${test.properties.useLocalCache:false}", autoRefreshed = true)
private boolean useLocalCache;
@GetMapping("/get")
public boolean get(){
return useLocalCache;
}
}
启动应用,访问http://localhost:8080/get ,返回配置的默认值 “false”
使用Nacos修改配置
添加刚刚创建的data id 的服务,并将配置由 false 修改为 true,如图所示。

发布后,返回配置列表,出现新添加的配置,如图所示。

再次访问 http://localhost:8080/get ,返回值为 “true”。
数据源
经过了上边的一些简单操作,我们已经可以正常使用 Nacos 配置中心了。
但是不知道你有没有想过:配置数据是存在哪里呢?
我们没有对 Nacos Server 做任何配置,那么数据只有两个位置可以存储:
- 内存
- 本地数据库
重启了 Nacos server ,你会发现原先创建的配置依然,这说明不是内存存储的。
这时候我们打开NACOS_PATH/data,会发现里边有个derby-data目录,Derby 是 Java 编写的数据库,属于 Apache 的一个开源项目。我们的配置数据现在就存储在这个库中。
Derby 我们并不是很熟悉,但是数据源可以改为我们熟悉的 MySQL。具体的操作步骤如下。
- 创建一个名为nacos_config的 database。
- 将NACOS_PATH/conf/nacos-mysql.sql中的表结构导入刚才创建的库中。
- 修改NACOS_PATH/conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql了。
到这里SpringBoot使用Nacos配置中心就完成了,关于Nacos更多功能及详细使用,可以参看官方文档。
参考
https://www.cnblogs.com/forezp/p/10136433.html
源码下载
https://github.com/gf-huanchupk/SpringCloudAlibabaLearning
欢迎关注我的公众号,关注有惊喜~

Spring Cloud Alibaba Nacos 入门的更多相关文章
- Spring Cloud Alibaba | Nacos服务中心初探
目录 Spring Cloud Alibaba | Nacos服务中心初探 1. 什么是Nacos? 1.1 Nacos 1.0 1.2 Nacos 2.0 2. Nacos 架构及概念 2.1 服务 ...
- Spring Cloud Alibaba | Nacos服务注册与发现
目录 Spring Cloud Alibaba | Nacos服务注册与发现 1. 服务提供者 1.1 pom.xml项目依赖 1.2 配置文件application.yml 1.3 启动类Produ ...
- Spring Cloud Alibaba | Nacos配置管理
目录 Spring Cloud Alibaba | Nacos配置管理 1. pom.xml 项目依赖 2. 在 bootstrap.properties 中配置 Nacos server 的地址和应 ...
- Spring Cloud Alibaba | Nacos集群部署
目录 Spring Cloud Alibaba | Nacos集群部署 1. Nacos支持三种部署模式 2. 集群模式下部署Nacos 2.1 架构图 2.2 下载源码或者安装包 2.3 配置集群配 ...
- 0.9.0.RELEASE版本的spring cloud alibaba nacos+feign实例
这里的feign依然是原来的feign,只不过将注册中心由eureka换成了nacos.服务提供方参见0.9.0.RELEASE版本的spring cloud alibaba nacos实例,消费方跟 ...
- 0.9.0.RELEASE版本的spring cloud alibaba nacos实例
简而言之,nacos与eureka的不同之处有三:后台老板.部署方式.功能.nacos是阿里的,eureka是奈飞的:nacos有自己的安装包,需要独立部署,eureka仅作为一个服务组件,引入jar ...
- Spring Cloud Alibaba Nacos
1. Spring Cloud Alibaba 介绍 Spring Cloud Alibaba 为分布式应用程序开发提供了一站式解决方案.它包含了开发分布式应用程序所需的所有组件,使得你可以轻松地使用 ...
- Spring Cloud Alibaba+Nacos搭建微服务架构
1. Spring Cloud Alibaba 简介 Spring Cloud Alibaba是阿里巴巴为分布式应用提供的一站式解决方案,能够更方便快捷地搭建分布式平台,nacos拥有着替换eu ...
- Spring Cloud Alibaba Nacos Config 实战
Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持.使用 Spring Cloud Alibaba Nacos Config,您可 ...
随机推荐
- 正则表达示 for Python3
前情提要 从大量的文字内容中找到自己想要的东西,正则似乎是最好的方法.也是写爬虫不可缺少的技能.所以,别墨迹了赶紧好好学吧! 教程来自http://www.runoob.com/python3/pyt ...
- Reactjs项目性能优化
在construct中绑定函数this shouldComponentUpdate React.PureComponent 无状态组件 chrome浏览器性能优化工具 setTimeout,setIn ...
- FFmpeg命令行工具学习(三):媒体文件转换工具ffmpeg
一.简述 ffmpeg是一个非常强大的工具,它可以转换任何格式的媒体文件,并且还可以用自己的AudioFilter以及VideoFilter进行处理和编辑.有了它,我们就可以对媒体文件做很多我们想做的 ...
- [Swift]LeetCode25. k个一组翻转链表 | Reverse Nodes in k-Group
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. k ...
- [Swift]LeetCode92. 反转链表 II | Reverse Linked List II
Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Exa ...
- [Swift]LeetCode682. 棒球比赛 | Baseball Game
You're now a baseball game point recorder. Given a list of strings, each string can be one of the 4 ...
- linux入门--Linux桌面环境(桌面系统)大比拼[附带优缺点]
早期的 Linux 系统都是不带界面的,只能通过命令来管理,比如运行程序.编辑文档.删除文件等.所以,要想熟练使用 Linux,就必须记忆很多命令. 后来随着 Windows 的普及,计算机界面变得越 ...
- mysql主从集群配置
1.二进制日志 主: #master vim /etc/mysql/my.cnf #server-id server-id=2 #二进制日志 log-bin=musql-bin#statement r ...
- 说一说MVC的控制器(二)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 华为oj之字符个数统计
题目:字符个数统计 热度指数:4720 时间限制:1秒 空间限制:32768K 本题知识点: 字符串 题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127). ...