0
点赞
收藏
分享

微信扫一扫

Nacos、

一、Nacos

1、简介

Nacos就是注册中心+配置中心的组合 ->Nacos = Eureka+Config+Bus。

能干嘛

  • 替代Eureka做服务注册中心
  • 替代Config做服务配置中心
  • 替代Bus做服务总线
  • Nacos内嵌ribbon(负载均衡)

去哪下

  • ​​https://github.com/alibaba/nacos/releases​​
  • ​​官网文档​​
  • 解压安装包,直接运行bin目录下的startup.cmd
  • 命令运行成功后直接访问http://localhost:8848/nacos,默认账号密码都是nacos

各中注册中心比较:

服务注册与发现框架

CAP模型

控制台管理

社区活跃度

Eureka

AP

支持

低(2.x版本闭源)

Zookeeper

CP

不支持

consul

CP

支持

Nacos

AP、CP

支持


2、服务注册中心(替换Eureka)

1)服务注册端:

pom依赖

<!--SpringCloud ailibaba nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>

yml:

server:
port: 9001

spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: localhost:8848 #配置Nacos地址

management:
endpoints:
web:
exposure:
include: '*'

主启动类:加上@EnableDiscoveryClient

2)服务消费端

yml

server:
port: 83

spring:
application:
name: nacos-order-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848

#消费者将要去访问的微服务名称(注册成功进nacos的微服务提供者)
service-url:
nacos-user-service: http://nacos-payment-provider

主启动类:加上@EnableDiscoveryClient


3、服务配置中心(替换config)

3.1 基础使用

1)代码上

pom依赖:

<!--nacos-config-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>

springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application。

bootstrap:

# nacos配置
server:
port: 3377

spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
group: DEV_GROUP
namespace: 7d8f0f5a-6a53-4785-9686-dd460158e5d4

application:

spring:

spring:
profiles:
active: dev # 表示开发环境
#active: test # 表示测试环境

2)在Nacos中添加配置信息

在 Nacos Spring Cloud中,dataId的完整格式如下:

${spring.application.name)}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

Nacos、_spring

Nacos界面配置对应 - 设置DataId

Nacos、_springcloud_02

Nacos、_配置文件_03

3.2、命名空间、分组、DataID三者关系

Namespace+Group+Data lD三者关系?为什么这么设计?

类似Java里面的package名和类名最外层的namespace是可以用于区分部署环境的,Group和DatalD逻辑上区分两个目标对象。

默认情况:Namespace=public,Group=DEFAULT_GROUP,默认Cluster是DEFAULT

1)DataID配置方案

指定spring.profile.active和配置文件的DatalD来使不同环境下读取不同的配置

默认空间+默认分组+新建dev和test两个DatalD

  • 新建dev配置DatalD

Nacos、_spring_04

  • 新建test配置DatalD

Nacos、_spring_05

  • 通过spring.profile.active属性就能进行多环境下配置文件的读取

Nacos、_springcloud_06


2)Group分组方案

​通过Group实现环境区分 - 新建Group

Nacos、_spring_07

在nacos图形界面控制台上面新建配置文件DatalD

Nacos、_配置文件_08

bootstrap+application

在config下增加一条group的配置即可。可配置为DEV_GROUP或TEST GROUP

Nacos、_配置文件_09

3)Namespace空间方案

新建dev/test的Namespace

Nacos、_springcloud_10

回到服务管理-服务列表查看

Nacos、_配置文件_11

按照域名配置填写

Nacos、_nacos_12

YML

# nacos配置
server:
port: 3377

spring:
application:
name: nacos-config-client
cloud:
nacos:
discovery:
server-addr: localhost:8848 #Nacos服务注册中心地址
config:
server-addr: localhost:8848 #Nacos作为配置中心地址
file-extension: yaml #指定yaml格式的配置
group: DEV_GROUP
namespace: 7d8f0f5a-6a53-4785-9686-dd460158e5d4 #<------------指定namespace


# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yaml

# nacos-config-client-test.yaml ----> config.info





举报

相关推荐

0 条评论