转载请表明出处 https://blog.csdn.net/Amor_Leo/article/details/103496056 谢谢
Spring Cloud Alibaba Nacos
源码
SpringCloud+OAuth2+Spring Security+Redis+Jwt+zuul(gateway)+Nacos 实现的微服务统一认证授权
GitHub
安装Nacos
环境
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
64 bit JDK 1.8+
Maven 3.2.x+
下载源码或者安装包
你可以通过源码和发行包两种方式来获取 Nacos。
- Github 上下载源码方式
git clone https://github.com/alibaba/nacos.git cd nacos/ mvn -Prelease-nacos clean install -U ls -al distribution/target/ // cd distribution/target/nacos-server-$version/nacos/bin cd distribution/target/nacos-server-1.2.0-SNAPSHOT/nacos/bin/
- 下载编译后压缩包方式
您可以从 最新稳定版本 下载 nacos-server-$version.zip 包。unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz cd nacos/bin
配置集群配置文件
- 在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf(没有则自建),请每行配置成ip:port。(请配置3个或3个以上节点)。如下:
# ip:port 192.168.0.101:8848 192.168.0.102:8848 192.168.0.103:8848
- 如果没有这么多机器资源,可以直接在一台机器上部署,区分端口号即可(修改application.properties 文件里的端口号)。如下:
# ip:port 192.168.0.97:8848 192.168.0.97:8849 192.168.0.97:8847
配置 MySQL 数据库
- 新建一个名为nacos的数据库,运行conf/nacos-mysql.sql脚本文件。
- 找到conf/application.properties,编辑里面的内容,主要目的是启用MySQL作为存储层(目前仅支持MySQL)。在该文件末尾追加:
spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=GMT%2B8 db.user=root db.password=root
启动服务器
-
Linux/Unix/Mac
启动命令:-
standalone代表着单机模式运行,非集群模式 :
sh startup.sh -m standalone
-
cluster代表着集群模式运行(分别在三个命令窗口启动NACOS):
sh startup.sh -m cluster
如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone
bash startup.sh -m cluster
-
-
Windows
启动命令:
双击startup.cmd运行文件
或者采用下面命令:-
standalone代表着单机模式运行,非集群模式 :
startup.cmd -m standalone
-
cluster代表着集群模式运行(分别在三个命令窗口启动NACOS):
startup.cmd -m cluster
-
访问
访问http://127.0.0.1:8848/nacos/index.html,使用nacos/nacos登录。
Spring Boot 整合Nacos作为注册中心和配置中心
pom 依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
bootstrap.yml
server:
port: 8000
spring:
main:
allow-bean-definition-overriding: true
application:
name: sophia-auth
cloud:
nacos:
config:
server-addr: 192.168.0.97:8848,192.168.0.97:8849,192.168.0.97:8840
file-extension: yml # 如果不写 默认 properties
group: DEFAULT_GROUP
discovery:
server-addr: 192.168.0.97:8848,192.168.0.97:8849,192.168.0.97:8840
profiles:
active: dev
启动类
@SpringBootApplication
@EnableDiscoveryClient
nacos添加配置
添加配置的过程不再赘述,需要注意的是Data Id的填写规范。dataId的完整格式由三部分组成:
${prefix}-${spring.profile.active}.${file-extension}
- prefix: 默认使用${spring.application.name},也可以通过spring.cloud.nacos.config.prefix来配置。
- spring.profile.active: 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}
- file-exetension: 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。