随笔分类 -  【 大算法 】

摘要:这个问题来源于犹太人约瑟夫经历过的故事,在罗马人占领乔塔帕特后,约瑟夫和他的朋友与39 个犹太人躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人时,该人就必须自杀,然后再由下一个人重新报数,直到所有人都自杀身亡为止 阅读全文
posted @ 2023-06-23 21:56 晨煦风清 阅读(2394) 评论(0) 推荐(1) 编辑
摘要:假设现在我们面临这样一个问题:有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢? 如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有: 如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符; 如果失配(即S 阅读全文
posted @ 2023-06-21 22:41 晨煦风清 阅读(208) 评论(0) 推荐(0) 编辑
摘要:布隆过滤器算法分析先来看几个比较常见的例子 字处理软件中,需要检查一个英语单词是否拼写正确 在网络爬虫里,一个网址是否被访问过 邮箱垃圾邮件过滤功能 这几个例子有一个共同的特点: 如何判断一个元素是否存在一个集合中? 常规思路 数组 链表 树、平衡二叉树、Trie Map (红黑树) 哈希表 虽然上面描述的这几种数据 阅读全文
posted @ 2022-01-13 09:00 晨煦风清 阅读(200) 评论(0) 推荐(0) 编辑
摘要:令牌桶工作原理分析高并发系统有三把利器用来保护系统:缓存、降级和限流。 缓存:缓存的目的是提升系统访问速度和增大系统处理容量 降级:降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行 限流:限流的目的是通过对并发访问/请求进行限速,或者对一个 阅读全文
posted @ 2021-12-08 10:53 晨煦风清 阅读(2039) 评论(0) 推荐(0) 编辑
摘要:分布式事务之可靠消息最终一致性消息发送一致性:是指产生消息的业务动作与消息发送的一致。也就是说,如果业务操作成功,那么由这个业务操作所产生的消息一定要成功投递出去(一般是发送到kafka、rocketmq等消息中间件中),否则就丢消息。 可靠消息最终一致性 发送消息不可靠性 既然提到了可靠消息的最终一致性,那么说明现有的消息发送 阅读全文
posted @ 2021-11-22 20:35 晨煦风清 阅读(89) 评论(0) 推荐(0) 编辑
摘要:分布式事务之最大努力通知最大努力通知型( Best-effort delivery)是最简单的一种柔性事务,适用于一些最终一致性时间敏感度低的业务,且被动方处理结果不影响主动方的处理结果。典型的使用场景:如银行通知、商户通知等。 最大努力通知 最大努力通知型( Best-effort delivery)是最简单的一种柔性事 阅读全文
posted @ 2021-11-19 10:03 晨煦风清 阅读(159) 评论(0) 推荐(0) 编辑
摘要:分布式事务之TCC在电商领域等互联网场景下,传统的事务在数据库性能和处理能力上都暴露出了瓶颈。在分布式领域基于CAP理论以及BASE理论,有人就提出了柔性事务的概念。在业内,关于柔性事务,最主要的有以下四种类型:两阶段型、补偿型、异步确保型、最大努力通知型几种。我们前边讲过的2PC和3PC都属于两阶段型,两阶段型事务 阅读全文
posted @ 2021-11-19 08:55 晨煦风清 阅读(1680) 评论(0) 推荐(1) 编辑
摘要:分布式事务之三阶段提交三阶段提交(3PC)是二阶段提交(2PC)的改进版本,三阶段提交协议主要是为了解决两阶段提交协议的阻塞问题,2pc存在的问题是当协调者崩溃时,参与者不能做出最后的选择。因此参与者可能在协调者恢复之前保持阻塞。三阶段提交(Three-phase commit),是二阶段提交(2PC)的改进版本。 三阶 阅读全文
posted @ 2021-11-18 17:34 晨煦风清 阅读(152) 评论(0) 推荐(0) 编辑
摘要:分布式事务之两阶段提交前面的文章中,我们介绍了分布式系统中的CAP理论和BASE理论,本文会就分布式事务的实现方案之一:两阶段提交(2PC)进行介绍。2PC是一个非常经典的强一致、中心化的原子提交协议。中心化是指协议中有两类节点:一个是中心化协调者节点(coordinator)和N个参与者节点(partcipant)。 阅读全文
posted @ 2021-11-18 16:28 晨煦风清 阅读(572) 评论(0) 推荐(0) 编辑
摘要:分布式事务之事务概念剖析现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在互联网金融等一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手。随着业务的快速发展、业务复杂度越来越高,几乎每个公司的系统都会从单体走向分布式,特别是转向微服务架构,随之而来就 阅读全文
posted @ 2021-11-18 10:52 晨煦风清 阅读(38) 评论(0) 推荐(0) 编辑
摘要:Raft 协议分析:集群变更前两篇文章分别解析了Raft中领导人选举和日志复制规范,对于一个固定的集群来说,有了这些规范的保护,就可以快乐的一致运行下去了。随着业务的变化,总归会出现集群规模变更的需求。最简单的处理方式当然是停掉整个集群服务,变更配置,重启服务。有时候,这对于在线业务是无法接受的。如果不停止服务,直接变更又存在 阅读全文
posted @ 2021-11-18 09:02 晨煦风清 阅读(331) 评论(1) 推荐(0) 编辑
摘要:Raft 协议分析:日志复制上一篇文章解析了Raft协议的选举机制,客户端通过和选举出来的Leader通信来读写数据。选举只是保证数据一致性的基础,数据读写才是该协议要实现的功能。这篇文章来分析下Raft协议通过哪些约束来保证数据在多个节点上一致性。 基础原理 官方文档上对Raft的描述中说,“Raft本质上是管理日志复制的一 阅读全文
posted @ 2021-11-17 14:54 晨煦风清 阅读(637) 评论(0) 推荐(0) 编辑
摘要:Raft 协议分析:选举Raft协议是现在使用最广泛的分布式一致性协议,下面从问题出发,看Raft怎么解决分布式中的种种问题。 分布式一致性 先问为什么,再问怎么做:“为什么需要分布式一致性协议”? 首先,需要分布式一致性协议的系统肯定是分布式的。分布式系统是由多台机器组成的集群来实现的。既然是集群,就必然引入额外的复杂度 阅读全文
posted @ 2021-11-16 15:09 晨煦风清 阅读(519) 评论(0) 推荐(0) 编辑
摘要:OAuth 2.0 协议应用解析前言 OAuth 2.0 全称是 Open Authorization 2.0, 是用于授权(authorization)的行业标准协议。 OAuth 2.0 专注于客户端开发人员的简单性,同时为 Web 应用程序、桌面应用程序、移动设备应用等提供了特定的授权流程。它在2012年取代了 OAuth 阅读全文
posted @ 2021-11-16 09:15 晨煦风清 阅读(460) 评论(0) 推荐(1) 编辑
摘要:分布式系统之BASE理论BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结,是基于CAP定理逐步演化而来的。BASE 阅读全文
posted @ 2019-10-14 14:31 晨煦风清 阅读(125) 评论(0) 推荐(0) 编辑
摘要:分布式系统之CAP原则CAP原则又称CAP定理,是一个经典的分布式系统理论。CAP理论告诉我们:一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中两项。 一致性 在分布式环境 阅读全文
posted @ 2019-09-14 11:18 晨煦风清 阅读(176) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示