spring cloud alibaba Nacos学习
学习内容
学习 spring cloud alibaba 主要包含:
- 服务限流降级:默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
- 服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
- 分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。
- 阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
版本控制
版本相关找一张图 具体更具开发版本找对应版本不然后续无法启动
##Nacos 简单介绍
nacos 官方地址
2020-1-4 nacos 最新版本nacos2.0 官方稳定版本1.3.1
环境
jdk1.8+
maven 3.2.x+
单机启动 关闭
- Linux/Unix/Mac
sh startup.sh -m standalone
sh shutdown.sh - Windows
cmd startup.cmd -m standalone
cmd shutdown.cmd
注意: 启动方式会对代码连接有影响 如:拒绝连接等错误 read time out
集群启动
每台服务都要配置
- 进入config配置
- 创建 cluster.conf 或修改 cluster.conf.example 为 cluster.conf
- cluster.conf 填写集群服务器ip:端口号(最好3台)
- 修改 application.properties 网卡会对启动有影响如果不指定服务ip 可能会多出一个ip地址修改配置文件 nacos.inetutils.ip-address=本机ip
- 启动:sh startup.sh
- 关闭:sh shutdown.sh
简单Mysql配置
- 新建naocs数据库 导入conf 里面sql文件
- 修改application.priperties
重启nacos
开始spring colud ailbaba
添加基础依赖
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
注册中心Nacos
- 依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- 应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址
spring.application.name=nacos-disconery
server.port=8080
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
//集群 ,分离
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848,127.0.0.1:8847
- 开启注册发现 @EnableDiscoveryClient
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
- 启动服务可以发现注册列表
项目之间调用Feign
配置中心Nacos
springboot配置文件加载顺序
nacos 使用
- 依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 在应用的 /src/main/resources/bootstrap.properties 配置文件中配置 Nacos Config 元数据
spring.application.name=nacos-config-example
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
nacos 配置
- 注意当你使用域名的方式来访问 Nacos 时,spring.cloud.nacos.config.server-addr 配置的方式为 域名:port
- spring.cloud.nacos.config.file-extension=yaml 对于 yaml 格式也是完美支持的
- spring.cloud.nacos.config.refresh.enabled=false / true 来关闭动态/启动刷新 默认 true
- spring.cloud.nacos.config.group 设置组 默认:DEFAULT_GROUP
- spring.cloud.nacos.config.namespace 设置用于命名空间
- prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置
- 如果存在spring.profiles.active 查找规则:${prefix} - ${spring.profiles.active} . ${file-extension}
- spring.cloud.nacos.config.enabled = false 来完全关闭 Spring Cloud Nacos Config
nacos 自定义配置
- spring.cloud.nacos.config.extension-configs[n].data-id 的配置方式来支持多个 Data Id 的配置。
- spring.cloud.nacos.config.extension-configs[n].group 的配置方式自定义 Data Id 所在的组
- spring.cloud.nacos.config.extension-configs[n].refresh 的配置方式来控制该 Data Id 在配置变更时,是否支持应用中可动态刷新, 感知到最新的配置值。默认是不支持的。