分布式服务架构

Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。支持AP/CP/CAPZookeeper支持CP,而Eureka支持AP,nacos支持全部。官方网址:http://nacos.ionacos作为注册中心1.先在官网上下载nacos中间件https://nacos.io/zh-cn/docs/quick-start.html服务注册中心原理:心跳检查:每一个实..
摘要由CSDN通过智能技术生成

Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。

支持AP/CP/CAP

Zookeeper支持CP,而Eureka支持AP,nacos支持全部。

 

官方网址:http://nacos.io

nacos作为注册中心

1.先在官网上下载nacos中间件 

https://nacos.io/zh-cn/docs/quick-start.html

服务注册中心原理:

心跳检查:每一个实例都会有心跳任务,会不断的发送实例的信息,nacos注册中心有一个健康检查任务,会轮循服务的上一次更新时间,若时间间隔大于15秒,则状态改为false,若间隔时间大于30秒,则删除服务。

Ribbon 做负载均衡:它只支持参数拼接调用,借助 Feign (实现远程调用接口使用就像本地接口一样调用,它本质上就是实现了参数的自动拼接),它底层还是依赖ribbon来实现真正的服务调用。

Ribbon依据服务名称使用动态代理去本地缓存中拉取服务,从而实现了远程接口的本地调用。

服务单会定时把服务放入本地缓存。所以就算注册中心挂掉,服务也能继续使用。图示如下:

 

sentinel服务降级和熔断:

对于订单链路里非核心的服务,若出现异常,使用服务降级类记录日志,并在后续补偿任务中重新补偿而并不终止流程,比如积分服务等。

在Feign的配置中把sentinel enabled打开为true.

执行降级和熔断的服务必须实现被执行降级和熔断的服务,实现其内部方法。

可以配置实现,也可以注解实现

Seat 实现分布式锁:

分布式锁实现的三种方式:

1)基于数据库实现分布式锁; 排他锁。
2)基于缓存(Redis等)实现分布式锁; 
3)基于Zookeeper实现分布式锁;

二、分布式锁应该具备哪些条件

在分析分布式锁的三种实现方式之前,先了解一下分布式锁应该具备哪些条件:

1、在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行; 
2、高可用的获取锁与释放锁; 
3、高性能的获取锁与释放锁; 
4、具备可重入特性; 
5、具备锁失效机制,防止死锁; 
6、具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。

三、分布式锁的三种实现方

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值