文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、nacos是什么?
Nacos是SpringCloudAlibaba架构中最重要的组件。
Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态 DNS 服务三大功能。能够无缝对接Springcloud、Spring、Dubbo等流行框架。
二、Nacos服务搭建
当前使用allibaba nacos 2.0.3版本
1. 基于win10安装nacos服务
下载地址:nacos码云镜像
下载后进入可以看到该目录
进入bin/startup.cmd可以启动服务
单机需要修改startup.cmd 里面的 set MODE=“standalone”
或者启动携带参数
#使用单机版本运行
startup.cmd -m standalone
2. 基于docker安装nacos服务
dockerhub:nacos docker镜像
拉取镜像、运行镜像(挂载配置在下方):
#拉取nacos镜像
docker pull nacos/nacos-server:2.0.3
#运行到容器 参数解析
#--restart=always重启docker后自启 --privileged=true授予root权限
#-e MODE=standalone非集群运行 -v可挂载配置、日志、数据
docker run -itd --name nacos -p8848:8848 --restart=always --privileged=true -e MODE=standalone -e PREFER_HOST_MODE=hostname -v/home/nacos/application.properties:/home/nacos/conf/application.properties -v/home/nacos/logs:/home/nacos/logs nacos/nacos-server:2.0.3
3. 基于mysql数据库存储
需要变更conf/application.properties文件配置
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
二. 访问服务
默认访问地址:http://localhost:8848/nacos
默认账号密码:nacos/nacos
1. 服务列表
- 可发现已注册的服务信息
2. 配置列表
- namespace:相当于环境,开发环境 测试环境 生产环境 ,每个空间里面的配置是独立的
默认的namespace是public,配置在cloud项目需要使用命名空间id! - group:相当于项目
3. 命名空间
- 主要用于隔离各种环境配置
三、Springcloud-alibaba-nacos使用
1. 引入依赖
父依赖:
<properties>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- SpringCloud 微服务 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- SpringCloud Alibaba 微服务 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
项目依赖:
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2. 配置信息
代码如下(bootstrap.yml
):
server:
port: 8083 #服务端口
spring:
application:
name: cloud-gateway #服务名
profiles:
active: dev #激活项
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 #服务地址
group: cloud #组名
namespace: 7b9f263b-bddd-4bf4-b655-6e1ad1a9e972 #命名空间默认default 默认可删除该项
config:
server-addr: 127.0.0.1:8848 #服务地址
group: cloud #组名
namespace: 7b9f263b-bddd-4bf4-b655-6e1ad1a9e972 #命名空间默认default 默认可删除该项
file-extension: yaml #配置后缀
#config查找规则:先找到namespace,然后找group的 ${spring.application.name}/${prefix}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}文件
#${spring.application.name} = ${prefix}
3. @RefreshScope使用
如果我们需要不停机改变我们的生产环境的某个值。我们需要在对应的类上添加@RefreshScope
进行动态刷新,这里就不多讲解了~
总结
以上就是今天要讲的内容,本文仅仅简单介绍了alibaba nacos 结合Springcloud alibaba的使用!