Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
下面就来安装Nacos并整合Nacos注册中心、配置中心
版本说明
下载
nacos下载地址:https://github.com/alibaba/nacos/releases
安装
- 解压安装包
- 打开配置文件(nacos安装目录 -> conf -> application.properties)
- 修改数据源配置
- 在数据库中执行sql文件(nacos安装目录 -> conf -> nacos-mysql.sql)
- 在nacos安装目录下的bin目录中运行命令,默认是集群模式启动,单机模式启动需要指定模式
startup.cmd -m standalone
通过修改nacos.core.auth.enabled为true,就可以开启nacos认证。开启后客户端必须配置username、password
集群环境搭建
- 将安装包复制多份
- 配置数据源、伪集群需要配置端口
- 将cluster.conf.example复制一份重命名cluster.conf(配置文件目录:nacos安装目录 -> conf)
- 打开配置文件cluster.conf
- 配置每个nacos服务的IP和端口
- 配置完成后启动nacos
startup.cmd -m cluster
Springcloud整合Nacos注册中心
- 添加Maven依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- 添加application.yml配置
spring:
cloud:
nacos:
discovery:
service: nacos-discovery # 默认取的是应用程序名称spring.application.name,配置了service就以service的值为准
# 配置Nacos服务连接地址
server-addr: localhost:8848
# 配置服务所在命名空间,默认为public
namespace: public
# 配置服务所在组,默认的就是DEFAULT_GROUP
group: DEFAULT_GROUP # 不支持不同分组的服务之间的调用
# 开启nacos认证后需要配置用户名和密码
username: nacos # 用户名
password: nacos # 密码
- 在SpringBoot启动类添加@EnableDiscoveryClient注解
/**
- @ClassName NacosApplication
- @Description
- @Author tigerkin
- @Date 2022/3/2 15:51
*/
@SpringBootApplication
@EnableDiscoveryClient
public class NacosApplication {
public static void main(String[] args) {
SpringApplication.run(NacosApplication.class, args);
}
}
- 启动Springboot项目,服务就注册到Nacos了。
nacos注册中心官方文档:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
服务调用
可以通过以下两种方式进行服务调用
- RestTemplate
- Feign
Springcloud整合Nacos配置中心
- 添加Maven依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud 2020.1已经去掉了Bootstrap,需要额外添加依赖 spring-cloud-starter-bootstrap -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
- 添加bootstrap.yml配置
spring:
application:
name: nacos-config # 应用程序名称
cloud:
nacos:
config:
server-addr: localhost:8848
namespace: public
group: DEFAULt_GROUP
# 配置文件扩展名,默认是通过内部相关规则(应用程序名称、扩展名 )自动生成相关的 Data Id 配置。
# 自动生成的data-id为nacos-config.yaml
file-extension: yaml
# 开启nacos认证后需要配置用户名和密码
username: nacos # 用户名
password: nacos # 密码
# 扩展配置:是一个数组,可以有多个
extension-configs:
# nacos配置中心配置dataId时最好加上文件名后缀
# 如果不加后缀,在扩展配置和共享配置读取配置时会出现以前两种情况:
# 1、在下方dataId中不加后缀读取配置时会默认以properties读取,如果文件是properties则没有问题,如果不是那么配置就读取不到了。
# 2、在下方dataId中加上后缀那么在nacos配置中心就找不到对应dataId的配置。
# 注:最好是nacos配置中心和代码中配置的dataId是带有后缀且是一致的。避免踩坑!!!!!!!!!!!!!
- dataId: nacos-user-server.yaml
group: USER_GROUP
refresh: true
# 共享配置:是一个数组,可以有多个,配置方式与扩展配置一模一样
# 配置优先级:shared-configs < extension-configs < 默认
# shared-configs:
- 配置完成项目就可以读取nacos配置中的配置了
通过注解@Value可以赋值nacos中的配置,在类上添加注解@RefreshScope,修改nacos中配置,通过注解注入的值就会实时刷新。
nacos配置中心官方文档:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config
相关文章
暂无评论...