Nacos的使用笔记 | 微服务Spring-Cloud-AliBaba
目录
Nacos的使用笔记
什么是 Nacos
Nacos 是一个 Alibaba 开源的、易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
使用 Spring Cloud Alibaba Nacos Discovery,可基于 Spring Cloud 的编程模型快速接入 Nacos 服务注册功能。
Docker 部署Nacos
-
env属性
- MODE:standalone单机模式
- MYSQL_DATABASE_NUM:1
- MYSQL_SERVICE_HOST:你的mysql url
- MYSQL_SERVICE_PORT:mysql的端口
- MYSQL_SERVICE_DB_NAME:mysql持久化建立的数据库名
- MYSQL_SERVICE_USER:mysql用户名
- MYSQL_SERVICE_PASSWORD:mysql密码
- NACOS_AUTH_ENABLE:是否开启鉴权
- NACOS_AUTH_TOKEN:
-
⚠️注意:使用nacos2.0以上的版本要暴露8848和9848,9849三个端口。
2.x版本后增加了grpc 通信并且增加nacos的集群端口上下偏移1000
1
docker run --name nacos-server -e MODE=standalone -e MYSQL_DATABASE_NUM=1 -e MYSQL_SERVICE_HOST=localhost -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos_config -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server
Spring Cloud Alibaba 引入 Nacos Discovery
-
要引入nacos前要先引入 spring-cloud-alibaba-dependencies
1 2 3 4 5 6 7 8 9 10 11
<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.2.9.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
-
引入Nacos Discovery进行服务注册/发现
1 2 3 4
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
-
引入Nacos配置管理
1 2 3 4
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
-
引入负载均衡loadbalancer
1 2 3 4
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency>
-
在bootstrap.yaml中配置
nacos默认运行在8848端口
1 2 3 4 5 6 7 8 9 10 11
spring: application: name: cloud-gateway #你的服务名 cloud: nacos: discovery: server-addr: localhost:8848 #nacos的地址 config: server-addr: localhost:8848 #作为配置管理的nacos地址 file-extension: yaml #配置拓展名 refresh-enabled: true #是否动态刷新
⚠️如果出现配置文件读取错误,要引入 spring-cloud-starter-bootstrap
1 2 3 4
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>