(一)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控制台
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
本文链接:https://www.cnblogs.com/zhangsan-plus/p/16503286.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步