当前位置: 代码迷 >> 综合 >> 微服务第一天 Nacos
  详细解决方案

微服务第一天 Nacos

热度:50   发布时间:2023-11-29 16:59:28.0

一、注册中心基本原理

在这里插入图片描述服务启动时,调用注册中心的注册接口,也就是insert into Register (1,order_name…);

1)服务内部维护了三个TimeTask(定时任务),其中TimeTask1会通过心跳接口定时发送心跳,并实时更新注册表中last_heartbeat字段信息(会做定时清理)
Update 表 set status=”down” where 当前时间-last_heatbeat>15.

2)服务通过TimeTask2会定时拉取商品服务实例ip信息存储到客户端缓存,通过Ribbon从客户端组件中拉取ip进行调用。

3)TimeTask3会清理没有心跳的实例信息

4)注册中心还要有服务stop的注销接口,注销接口的逻辑就是delete 一个字段。

二、微服务适用的场景

1、大型复杂的项目
2、一天一个版本
3、并发高(考虑扩缩容)

三、各个开源框架对应的具体内容

Springboot是用来快速开发微服务的web框架
springCloud 是微服务架构的工具集
springCloud netflix: 国外的一个开发微服务的工具集,是springcloud子项目
springCloud alibaba:阿里开源的符合中国企业的一套微服务架构解决方案,也是springcloud的子项目

Alibab:
分布式配置中心:Nacos
服务注册发现:Nacos
服务网关路由:SpringCloud gateWay
服务调用:Ribbon,feign
客户端负载均衡:Ribbon
断路器 限流:sentinel
分布式消息:Rabbitmq

四、Nacos的领域模型

1、NameSpace: 环境隔离,dev,prod

2、Group: 微服务分组 不同组之间不能调用 订单和支付 属于一个组 仓储属于一个组 ,不同组之间不能相互调用
如果调用了 会在前端有一个友好的提示 不是报错

3、Service服务: 设置后可通过代码实现避免跨集群调用,优先选择附近集群调用(Cluster Name:BJ /NJ)

底层存储介质是Map。去匹配 去找是否存在你访问的实例,进行筛选

4、元数据:

Order-center		product-centerv1					v1V2					v2
让v1调用v1 让v2调用v2

金丝雀发布 不懂怎么太懂,大致意思是服务上新版本了 需要进行测试吧,但是你不能一股脑的让所有机器上的服务都是新版本,所以可以让几台机器率先是新版本,进行测试,同时测试的时候要避免v2版本的机器调服务时调到v1版本的机器上了。这里元数据可以为我们做隔离。

  相关解决方案