• 限流, 熔断,降级笔记


    数据库主从复制包括四种:

    一主一从

    一主多从

    互为主从

    级联主从

    主从复制会有延迟, 其实现方式如下, 首先主库要开启binary log, 从库开启异步IO线程同步主库日志到本地Relay日志, 开启另外线程轮询relay log, 经筛选的日志同步到从库中, 鉴于主库日志增长速度,网络,IO等原因, 从库可能数据同步有延迟.

      

    CAP理论: 互联网公司更多的是追求AP, 牺牲C,来提高系统响应时间, 它们追求的是最终一致性. 

    分布式事务: 由X/Open公司提供的DTP标准(分布式事务协议), 

    JTA: JAVA版的DTP标准, 主要包括TM,AP,XA组成. 其中TM是核心(分布式事务管理组件)

    目前开源的分布式事务主要有Atomikos/JoTM , 

    分布式事务效率不高, 目前互联网公司大多避免使用, 或者绕道使用, 而是追求最终一致性, 

    Base理论: 是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写, BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结, 是基于CAP定理逐步演化而来的。BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性

    软服务:对于未知状态提供两种方式: 

    1. 最大化重试

    2. 衰减重试: 15S->3m->10m->30m->1h->2h->6h->15h

    弱一致性可以由消息队列辅助实现.

    消息队列实现时要主语幂等性, 

    幂等性的实现方式: 

    1. 数据库加上唯一性约束

    2. 传参是带上token,并判断token是否重复.

    3. 使用状态机, 即每次更新时检查状态机状态.

    Openrestry+lua+DB实现缓存, 限流, 熔断,降级等功能.

    熔断是限流的一种方式. 

    常见的限流算法有:

    漏桶算法: 无预留容量, 能保证输出数据的稳定, 容量慢了之后直接抛弃

    令牌桶算法:有预留容量, 可以容纳一定的突发容量

    使用方式:

    1. 使用Guava库, 直接使用两种限流算法

    2. 可以由第三方中间件实现, 如Redission,(其核心是由lua脚本模拟实现)

    其他限流措施包括: SQL连接池, 线程池等

    线程池四种拒绝策略: Abort, Discard,DiscardOldest , Caller run

  • 相关阅读:
    第11组 团队项目-需求分析报告
    第12组 Alpha冲刺(1/6)
    2019 SDN上机第2次作业
    2019 SDN上机第1次作业
    第12组 团队Git现场编程实战
    第12组 团队项目-需求分析报告
    团队项目-选题报告
    第一次团队展示
    第一次结对编程作业
    第一次个人编程作业
  • 原文地址:https://www.cnblogs.com/snow-man/p/9837867.html
Copyright © 2020-2023  润新知