Spring Cloud Alibaba 初体验(一) Nacos 配置中心
一、Nacos 下载与初始化配置
本文使用1.2.0,下载地址:https://github.com/alibaba/nacos/releases
Nacos 单机模式支持持久化配置到 MySQL 数据库,修改 conf/application.properties 配置:
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://数据库地址:端口/数据库名?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=用户名
db.password=密码
然后在数据库执行 conf/nacos-mysql.sql 初始化数据库
Windows 环境下双击 bin/startup.cmd 启动 Nacos
二、Nacos 配置及在 Spring Cloud 中的使用
Nacos 可以根据三种模式区分不同环境下的配置:
- 根据 Data Id 和 profiles (spring.profiles.active)
- 根据 Group
- 根据 Namespace (命名空间)
本人认为根据 Namespace 区分不同环境下的配置应该更适用于实际项目,故本文以 Namespace 模式为例
2.1 新建命名空间
新增名字为 dev 的命名空间
2.2 新增配置
在 dev 命名空间新增配置,Data Id 为 service1.yml,Group 为 service1,配置格式为 YAML,内容为:
server:
port: 8070
2.3 在 Spring Cloud 中使用
添加依赖:
<dependencies>
...
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
...
</dependencies>
<dependencyManagement>
<dependencies>
...
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencies>
</dependencyManagement>
spring-cloud-alibaba-dependencies 是 Spring Cloud Alibaba BOM,包含了 Spring Cloud Alibaba 的所有依赖的版本,使用 Nacos, Sentinel 等时不用再指定版本
新建 Spring Cloud 项目,在 bootstrap.yml 新增配置:
spring:
application:
name: service1
cloud:
nacos:
config:
server-addr: 192.168.92.1:8848 # Nacos 地址与端口
namespace: e5fc372c-ad66-4e0e-a353-a217d0a315ba # 命名空间ID
group: service1
file-extension: yml
启动项目,可以看到项目使用的端口为在 Nacos 中配置的 8070 说明配置生效
2.4 扩展配置
有时我们想要将配置放置在不同的文件或者多个项目共用部分配置,则可以添加扩展配置
2.4.1 在 Nacos 添加配置
在 dev 命名空间新增配置,Data Id 为 greeting.yml,Group 为 common,配置格式为 YAML,内容为:
greeting: Hello, world!
在 dev 命名空间新增配置,Data Id 为 author.yml,Group 为 common,配置格式为 YAML,内容为:
author: karonda
2.4.2 Spring Cloud 配置
方法一:
spring:
application:
name: service1
cloud:
nacos:
config:
server-addr: 192.168.92.1:8848
namespace: e5fc372c-ad66-4e0e-a353-a217d0a315ba
group: service1
file-extension: yml
extension-configs[0]:
data-id: greeting.yml
group: common
refresh: true # 配置修改后是否自动更新
extension-configs[1]:
data-id: author.yml
group: common
refresh: true
方法二:
spring:
application:
name: service1
cloud:
nacos:
config:
server-addr: 192.168.92.1:8848
namespace: e5fc372c-ad66-4e0e-a353-a217d0a315ba
group: service1
file-extension: yml
extension-configs:
- data-id: greeting.yml
group: common
refresh: true
- data-id: author.yml
group: common
refresh: true
2.4.3 测试
@RefreshScope # 配置自动更新
@RestController
public class GreetingController {
@Value("${greeting:}")
private String greetingStr;
@Value("${author:}")
private String authorStr;
@RequestMapping("/greeting")
public String greeting() {
return greetingStr + " from " + authorStr;
}
}
访问 http://localhost:8070/greeting
参考:
Spring Cloud Alibaba 初体验(一) Nacos 配置中心的更多相关文章
- Spring Cloud Alibaba 初体验(二) Nacos 服务注册与发现 + 集成 Spring Cloud Gateway
一.服务注册 添加依赖: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>s ...
- Spring Cloud Alibaba 初体验(三) Nacos 与 Dubbo 集成
一.新建项目 新建项目,只放置接口,用于暴露 Dubbo 服务接口 public interface GreetingService { String greeting(); } 二.provider ...
- Spring Cloud Alibaba基础教程:Nacos配置的多环境管理
前情回顾: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方式> ...
- Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置
前情回顾: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方式> ...
- Spring Cloud Config、Apollo、Nacos配置中心选型及对比
Spring Cloud Config.Apollo.Nacos配置中心选型及对比 1.Nacos 1.1 Nacos主要提供以下四大功能 2.Spring Cloud Config 3.Apollo ...
- Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解
前情回顾: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方式(Res ...
- Spring Cloud Alibaba 初体验(六) Seata 及结合 MyBatis 与 MyBatis-Plus 的使用
一.下载与运行 本文使用 Seata 1.1.0:https://github.com/seata/seata/releases Windows 环境下双击 bin/seata-server.bat ...
- Spring Cloud Alibaba 初体验(四) Sentinel
一.Sentinel 下载与运行 本文使用 Sentinel 1.7.1:https://github.com/alibaba/Sentinel/releases 使用自定义端口 8089 运行 Se ...
- Spring Cloud Alibaba 初体验(五) SkyWalking
一.下载与运行 本文使用 SkyWalking 7.0.0:https://www.apache.org/dyn/closer.cgi/skywalking/7.0.0/apache-skywalki ...
随机推荐
- jetson-reference编译出现的问题记录
问题一: 显示gcc版本过高,需要安装低版本的gcc.g++ sudo apt-get install -y gcc-4.9 sudo apt-get install -y g++-4.9 cd /u ...
- C语言100题集合-ex003
系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...
- Python - Git仓库忽略提交规则 & .gitignore配置
Git 忽略文件提交的方法 有三种方法可以实现忽略Git中不想提交的文件. 在Git项目中定义 .gitignore 文件 这种方式通过在项目的某个文件夹下定义 .gitignore 文件,在该文件 ...
- python之《set》
set 是python里面的集合的概念 list_1 = [1,2,3,4,5,6,] list_2 = set(list_1) print(list_1,type(list_1)) print(li ...
- ipmi常用的命令行命令
前言 记录一些常用的命令行操作 命令 查询机器的电源状态 ipmitool -I lanplus -U admin -P admin -H 172.16.21.215 power status 硬重启 ...
- 定制ubuntu的时候修改proseed
一个参数的修改 d-i clock-setup/utc-auto boolean false (不用utc) d-i clock-setup/ntp boolean false (不时间同步) d-i ...
- day94:flask:Jinjia2模板引擎&flask中的CSRF攻击&Flask-SQLAlchemy的创建模型类和基本的增删改查
目录 1.Jinjia2模板引擎 1.Jinjia2加载模板并传递数据到模板中 2.Jinjia2的模板语句 3.模板中特有的变量和函数 4.模板中内置的过滤器 5.自定义过滤器 6.模板继承 2.在 ...
- 你了解ABBYY FineReader 14么?
有没有一款是能够同时处理纸质文档和个类型PDF的一站式解决方案?答案是肯定的,ABBYY FineReader 14集合了强大的光学字符识别(OCR)以及 PDF 查看和编辑功能.不仅能够高效识别图片 ...
- 在IDM上设置防止过度抓取网站信息
在使用Internet Download Manager(IDM)下载器时,有时会发现IDM自带的抓取功能过于强大,以至于有时会抓取一些无效的链接.那么,该如何避免IDM的过度抓取呢? 图1:IDM的 ...
- CorelDRAW中的3D线条表现方法
CorelDRAW图形设计工具的最优势之一是其强大的交互式工具. 调和工具就是这样一种互动性很强的工具,从表面上看来可能不是那么突出,但功能是真的强啊!一旦发现它的潜力,它很快就会成为经验丰富的Cor ...