(一)Spring Cloud Alibaba篇 之Nacos系列

Nacos 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

一.进入nacos官网下载 nacos

在这里插入图片描述
在这里插入图片描述
下载完成解压,打开bin目录 打开命令窗口 输入 stratup.cmd 完成运行

在这里插入图片描述
访问 http://127.0.0.1:8848/nacos/index.html#/login
用户名 密码 都为nacos

二.nacos之服务者注册

2.1 创建Parent工程项目

在这里插入图片描述

2.2 引入在需要注册的模块引入maven坐标

		<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.0.2.RELEASE</version>
        </dependency>
       

2.3 查看Nacos控制台

在这里插入图片描述

2.3 Nacos 负载均衡

模拟两个服务
在这里插入图片描述
查看Nacos控制台在这里插入图片描述
可以在nacos坐标中看到其引入了ribbon

2.4 创建服务消费者

在这里插入图片描述
在yml中添加服务消费者的url
在这里插入图片描述
使用RestTemplate来访问paymentService微服务
在这里插入图片描述
在这里插入图片描述
使用消费者来访问该接口
在这里插入图片描述
在这里插入图片描述
可以看出nacos是自带负载均衡的

2.5 各注册中心的对比

在这里插入图片描述

2.6 Nacos支持AP和CP模式的切换

C是所有节点在同一时间看到的数据是一样的;而A的定义是所有的请求都会收到响应

何时选择使用何种模式?
一般来说,如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,name就可
以选择AP模式.当前主流的服务如Spring Cloud和Dubbo 服务都适用于AP模式,AP模式为了服务的可能性而减弱 一致性,因此AP模式下只支持注册临时实例

如果需要在服务级别编辑或者存储配置信息,那么CP是必须,K8S服务和DNS服务适用于CP模式。
CP模式下支持注册持久化实例,此时则是以Raft协议为集群运行模式,该模式下注册实例之前必须先注册服务,如果服务
不粗在则会返回错误

3 Nacos之服务配置中心-基础配置

3.1.配置新增

在这里插入图片描述

3.2 Nacos界面配置对应

公式: s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name{spring.profiles.active}-${spring.cloud.nacos.config.file-extension}

prefix默认为spring.application.name的值

spring.profile.active即为当前环境对应的profile,可以通过配置项spring.profile.active来配置

file-exetension为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension来配置

3.3 编写Nacos 配置管理

在这里插入图片描述

3.4 编写 bootstrap.yml

注:bootstrap.yml的优先级高于appliation.yml

在这里插入图片描述

3.5 编写Controller来测试ConfigService

在这里插入图片描述
在这里插入图片描述

4 Nacos之服务配置中心-分类配置

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

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

  • 三者情况

在这里插入图片描述
默认情况:
Namespace=public,Group=DEFAULT_GROUP,默认的Cluster是DEFAULT

  • Nacos 默认的命名空间是public,Namespace主要用来实现隔离
    比方说我们现在有三个环境:开发、测试、生产环境我们就可以创建三个Namespace,不同的Namespace之间是隔离的
  • Group默认是DEFAULT_GROUP,Group 可以把不同的微服务划分到同一分组里面去
  • Service就是微服务;一个Service 可以包含多个Cluster(集群),Nacos默认Cluster是DEFAULT,Cluster是对指定微服务的一个虚拟划分.
    比方说为了容灾,将Service微服务分别部署在了杭州机房和广州机房,这时我们就可以给杭州机房的Service微服务起一个集群名称(HZ),给广州机房的Service 微服务起一个集群名称(GZ),还可以尽量 让同一个机房的微服务互相调用 从而来提升性能
  • 最后Instance,就是微服务的实例

5.Nacos的集群配置和持久化

猜你喜欢

转载自blog.csdn.net/qq_43565087/article/details/108984546