1.什么是Nacos:
官方:一个更易于构建云原生应用的动态服务发现,服务配置和服务管理平台
集:注册中心,配置中心,服务管理平台于一体化
Nacos的关键特性:
1.服务发现和服务健康检测
2.动态配置服务
3.动态DNS服务
4.服务及其元数据管理
Nacos的设计思想:
核心功能:
Nacos Discovery
1:服务注册:Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地
址、端口等信息。Nacos Server接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。
2:服务心跳:在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防
止被剔除。默认5s发送一次心跳。
3:服务同步:Nacos Server集群之间会互相同步服务实例,用来保证服务信息的一致性。 leader raft
4:服务发现:服务消费者(Nacos Client)在调用服务提供者的服务时,会发送一个REST请求给Nacos Server,获取上面
注册的服务清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务定时拉取服务端最新的注
册表信息更新到本地缓存
5:服务健康检查:Nacos Server会开启一个定时任务用来检查注册服务实例的健康情况,对于超过15s没有收到客户端心跳
的实例会将它的healthy属性置为false(客户端服务发现时不会发现),如果某个实例超过30秒没有收到心跳,直接剔除该
实例(被剔除的实例如果恢复发送心跳则会重新注册);
自定义:实则就跟现实中的滴滴打车平台一样:滴滴平台作为注册中心,滴滴司机和客户都可以作为服务提供者和服务消费者,当客户将请求发送到滴滴平台的时候,司机即可拉取获取列表,选取自己想要的客户去服务;
做对比:
雪崩保护:保护的阈值设置在0-1之间的值 0.6
临时实例: spring.cloud.nacos.discovery.ephemeral =false, 当服务宕机了也不会从服务列表中剔除,默认为true
健康实例/总实例数<保护阈值
1/2<0.6
集群搭建:
集群搭建待更新:
1.需要保证数据一致性,将数据源都改为统一的数据库地址
2.需要设置jvm的参数,保证内存的足够使用
3.需要搭建nginx作为反向代理作为前沿,做负载均衡到每一台服务器上
集成Nacos:
1.pom.xml
<!--nacos-服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
2.启动类
3.配置项
spring:
application:
name: stock-service
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
username: nacos
password: nacos
# namespace: public # 相同特征的服务进行归类分组管理
# ephemeral: false # 默认=true(临时实例) 当服务宕机 超过心跳 就会将实例剔除掉
#永久实例 哪怕宕机了也不会删除实例 当服务宕机 永远不会剔除掉
#group的相同特征的服务进行归类分组管理
#weight: 通常要结合 安装 权重的负载均衡策略, 权重越高分配的流量就越大
#metadata: version=1 可以结合元数据做扩展 比如说客户端拉取的时候可以做一个版本的判断然后做扩展
#cluster-name: XUSHU #集群主从搭建 从机名称 nacos的集群搭建,主从的目的就是为了保障数据一致性
#且无论多少台机器,为了保证数据一致性,需要更改nacos的配置,将原本用的内存,全部改为一个数据库地址
后续源码待更新:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)