随笔分类 -  高级进阶

摘要:服务链路追踪 什么是服务链路追踪 分布式微服务架构上是通过业务来划分服务的,通过Rest调用对外暴露一个接口,可能需要很多服务协同才能完成这个接口的功能。 如果链路上任何一个服务出现问题或者出现网络超时,都会导致接口调用失败。随着业务的扩张,接口调用会越来越复杂。 极端情况: 分布式链路追踪(Dis 阅读全文
posted @ 2022-05-04 22:51 灯塔下的守望者 阅读(101) 评论(0) 推荐(0)
摘要:服务限流 什么是服务限流 限流就是为了提供稳定的服务,限制使用人数。 限流的目的是通过对并发请求进行限速,或者对一个时间窗口内的请求数量进行限速来保护系统。 一旦达到限制速率可以拒绝服务、排队或者等待。 多维度进行限流 请求到达服务接口时,可以采用多维度限流策略。 限流算法 1. 限流算法 计数器( 阅读全文
posted @ 2022-05-04 22:49 灯塔下的守望者 阅读(51) 评论(0) 推荐(0)
摘要:服务熔断 什么是服务熔断 牺牲局部,保存整体的措施叫做熔断。 不采取熔断的后果,例子: 一旦下游服务C变的不可用,积压了大量请求,服务B的请求也会随之阻塞。 线程资源逐渐耗尽,使得服务B也变的不可用。紧接着,服务A也会变得不可用,整个服务链路被拖垮。 这种调用链路的连锁故障,叫做雪崩。 熔断机制 可 阅读全文
posted @ 2022-05-04 22:49 灯塔下的守望者 阅读(145) 评论(0) 推荐(0)
摘要:服务降级 什么是服务降级 在服务器压力剧增的情况下,对一些服务和页面进行有策略的不处理或者换种简单的方式处理,从而释放服务器资源以保证核心服务正常运作或者高效运作。 当架构整体的负载超过了预设的上线阈值,或者即将到来的流量预计将会超过预设的阈值时,为了保证重要的基本服务能够正常运行,可以将一些不重要 阅读全文
posted @ 2022-05-04 22:48 灯塔下的守望者 阅读(56) 评论(0) 推荐(0)
摘要:服务削峰 为什么要进行服务削峰 为了应对瞬间高并发的流量。 流量削峰的方案 1. 消息队列解决削峰 用消息队列缓存瞬时流量,把同步的直接调用转换为异步的间接推送,中间通过队列在一端承接瞬时流量洪峰,在另一端将消息平滑的推送出去。 消息队列中间件主要解决应用耦合,异步消息,流量削峰等问题。 常见的队列 阅读全文
posted @ 2022-05-04 22:47 灯塔下的守望者 阅读(49) 评论(0) 推荐(0)
摘要:分布式服务治理 服务协调 分布式协调主要用来解决分布式环境中多个进程之间的同步,让他们有序的去访问临界资源,防止造成脏数据的后果。 分布式锁是分布式协调技术的核心内容。 分布式锁的实现方式 1. 基于缓存(redis)实现分布式锁 获取锁的时候,使用 加锁,并使用 命令为锁添加一个超时时间,超过该时 阅读全文
posted @ 2022-05-04 22:46 灯塔下的守望者 阅读(26) 评论(0) 推荐(0)
摘要:分布式架构服务调用 服务调用 和传统单体架构相比,分布式多了一个远程服务之间的通信,不管soa还是微服务,本质都是对业务服务的提炼和复用。 远程服务之间的调用,才是实现分布式的关键因素。 实现方式 HTTP通信协议的框架 1. HttpURLConnection "https://docs.orac 阅读全文
posted @ 2022-05-04 22:45 灯塔下的守望者 阅读(52) 评论(0) 推荐(0)
摘要:负载均衡 使用多台服务器共同分担计算任务,将网络请求与计算分配到集群可用的不同服务器节点上,从而达到高可用性以及良好的操作体验。 Client1、Client2、Client3通过负载均衡分配到不同的节点上。 负载均衡有硬件解决方案,也有软件解决方案。硬件解决方案有著名的F5,软件有LVS、HAPr 阅读全文
posted @ 2022-05-04 22:44 灯塔下的守望者 阅读(42) 评论(0) 推荐(0)
摘要:容错性 容错就是IT系统对错误的包容能力。 容错处理保障了分布式系统环境下相应系统高可用和健壮性。 常见的案例是对于 问题的解决方案。 解决办法 1. 临时存放null值 2. 使用布隆过滤器 "https://baike.baidu.com/item/%E5%B8%83%E9%9A%86%E8%B 阅读全文
posted @ 2022-05-04 22:43 灯塔下的守望者 阅读(50) 评论(0) 推荐(0)
摘要:高可用 高可用HA设计 高可用(Hign Availability)是系统架构中必须考虑的因素之一,指的是,经过设计来减少系统不能提供服务的时间。 系统高可用性的设计模式通常有三种:主备(master slave)、互备(active active)和集群(cluster)。 1. 主备模式 主备模 阅读全文
posted @ 2022-05-04 22:42 灯塔下的守望者 阅读(176) 评论(0) 推荐(0)
摘要:本文阐述了分布式系统中常见的设计策略。 <! more 分布式系统设计策略 2022/03/01 校对完成 文章更新历史 2022/03/01 初稿。 分布式系统中需要解决的问题 1. 如何检测当前节点是否存活? 2. 如何保障高可用 3. 容错处理 4. 负载均衡 心跳检测 检测节点故障的通用手段 阅读全文
posted @ 2022-05-04 22:41 灯塔下的守望者 阅读(151) 评论(0) 推荐(0)
摘要:Lease机制 什么是Lease机制 Lease机制,就是租约机制,是一种在分布式协议中常用的协议,是维护分布式系统中数据一致性的常用工具。 Lease机制的特点: Lease是颁发者对一段时间内数据一致性的承诺 颁发者发出Lease后,不管是否被接受,只要Lease不过期,颁发者都会按照协议,遵守 阅读全文
posted @ 2022-05-04 22:40 灯塔下的守望者 阅读(99) 评论(0) 推荐(0)
摘要:Raft协议 什么是Raft协议 Paxos论证了一致性协议的可行性,但是不好懂,缺少必要的细节,工程实现难度高。广为人知的实现目前只zk的zab协议。 Paxos的出现为分布式的强一致性提供了很好的理论基础,但是paxos协议本身理解起来困难,实现复杂。 斯坦福大学的RamCloud项目中提出了易 阅读全文
posted @ 2022-05-04 22:38 灯塔下的守望者 阅读(114) 评论(0) 推荐(0)
摘要:Paxos协议 什么是Paxos Paxos协议说的是Paxos算法,Paxos算法是基于消息传递且具有高容错性的一致性算法,是目前公认的解决分布式一致性问题最有效的算法之一。 为描述Paxos算法,Lamport(Leslie Lamport)虚拟了一个叫做Paxos的 "希腊城邦" ,这个岛按照 阅读全文
posted @ 2022-05-04 22:37 灯塔下的守望者 阅读(194) 评论(0) 推荐(0)
摘要:Gossip协议 什么是Gossip协议 Gossip协议,也叫 Epidemic协议(流行病协议)。原本用于分布式数据库中节点同步数据使用,后来被广泛应用于数据库复制、信息扩散、集群成员身份确认、故障探测等。 Gossip协议利用随机方式将信息传播到整个网络,并在一定时间内,使系统内所有节点的数据 阅读全文
posted @ 2022-05-04 22:36 灯塔下的守望者 阅读(431) 评论(0) 推荐(0)
摘要:NWR协议 什么是NWR协议 NWR是一种在分布式存储系统中用于控制一致性级别的一种策略。在亚马逊的存储系统中,应用了NWR协议来控制一致性。 N:在分布式系统中,有多少分备份数据 W:代表一次成功的更新操作要求至少有W份写入成功 R:代表一次成功的读取操作至少有R份读取成功 原理 NWR值的不同组 阅读全文
posted @ 2022-05-04 22:35 灯塔下的守望者 阅读(135) 评论(0) 推荐(0)
摘要:三阶段提交协议(3PC) 三阶段提交协议出现的背景:一致性协议中设计出了二阶段提交协议,但是2PC设计存在缺陷,于是有了三阶段提交协议。 三阶段提交协议 3PC,全称为“Three phase commit”,是2PC的改进版,将2PC的“事务提交过程”一分为二,并形成了canCommit、preC 阅读全文
posted @ 2022-05-04 22:34 灯塔下的守望者 阅读(117) 评论(0) 推荐(0)
摘要:本文阐述了分布式系统中一些常见的协议以及原理分析。 <! more 分布式一致性协议 2022/03/01 校对完成 文章更新历史 2022/03/01 初稿。 两阶段提交协议(2PC) 两阶段提交协议 两阶段提交协议,简称2PC(2 prepare commit),是比较常见的解决分布式事务的方式 阅读全文
posted @ 2022-05-04 22:33 灯塔下的守望者 阅读(140) 评论(0) 推荐(0)
摘要:BASE定理 CAP不可能同时满足,但是分区容错性对于分布式系统来说,是必须的。如果能够同时满足CAP就好了,于是出现了BASE理论。 BASE:全称Basically Availability(基本可用),Soft State(软状态),和Eventually Consistency(最终一致性) 阅读全文
posted @ 2022-05-04 22:32 灯塔下的守望者 阅读(172) 评论(0) 推荐(0)
摘要:CAP定理 CAP定理介绍 CAP定理(CAP Theorem),又称布鲁尔定理(Brewer's throrem)。它指出,对一个分布式系统来说,不可能同时满足以下三点: | 选项 | 具体意义 | | | | | 一致性(Consistency) | 所有节点访问时都是同一份最新的数据副本 | 阅读全文
posted @ 2022-05-04 22:30 灯塔下的守望者 阅读(167) 评论(0) 推荐(0)