首页
学习
活动
专区
工具
TVP
发布

分布式架构

专栏作者
38
文章
59072
阅读量
30
订阅数
ZooKeeper的顺序一致性属于强一致性?
说到zab到底是强一致性,还是最终一致性,相信大家一定能搜到大量互相打架的文章。在评判这个问题前,咱们在回顾下Consistency(一致性)、Consensus(共识)。这两者间的关系如下:
林淮川
2021-12-20
6200
final域内存语义
比如 writer()里obj = new FinalExample(); 包含两个步骤:
林淮川
2021-12-20
3950
Sentinel 深度剖析 之 流量控制中算法
Sentinel的流量控制是监控应用流量的 QPS 或 并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量⾼峰冲垮,从而保证高可用。
林淮川
2021-12-20
1K0
JMM-重排序
java内存模型允许编译器和处理器对指令重排,目的减少流水线的中断,从而提高流水线运行效率。
林淮川
2021-12-20
2880
一致性算法 - Distro协议在Nacos的实践
本系列文章前面几篇已经总体介绍了一致性、AP的Gossip、CP的Raft。接下去咱们了解一个简单的AP协议:Distro协议。Distro是阿里巴巴的私有协议,目前流行的Nacos服务管理框架就采用了Distro协议。Distro 协议被定位为临时数据的一致性协议:该类型协议,不需要把数据存储到磁盘或者数据库,因为临时数据通常和服务器保持一个session会话,该会话只要存在,数据就不会丢失。
林淮川
2021-12-20
5990
分布式架构设计篇(十三)-一致性算法概述
提到一致性这个词,大家会想到外文中有几个单词,如CAP中的Consistency、Cache Coherence、区块链的Consensus。这三个单词在外文不同环境拥有不同的含义。但在汉字中统一可以翻译为“一致性”。因此在谈一致性之前,有必要对这几个概念做一个区分,否则很容易让人迷惑。
林淮川
2021-12-20
3330
一致性算法 - Raft协议实践
咱们对Raft协议已经进行了原理的解析,接下去咱们从通过SOFAJRaft 框架的核心流程剖析加深对Raft协议的理解。SOFAJRaft 是一个纯 Java 的 Raft 算法实现库, 基于百度 braft 实现而来, 使用 Java 重写了所有功能, 支持:
林淮川
2021-12-20
6340
Docker总结与经验分享
这些都需要亲力亲为,很费事也很费时,需要大量的人力物力,如果有一套只需要代码部署层面的就好了,所以Docker应运而生。它是云时代的产物。
林淮川
2021-12-20
6370
多线程并发编程分享
线程的创建和销毁会消耗资源,在大量并发的情况下,频繁地创建和销毁线程会严重降低系统的性能。因此,通常需要预先创建多个线程,并集中管理起来,形成一个线程池,用的时候拿来用,用完放回去。
林淮川
2021-12-20
4430
一致性算法 - Raft协议流程详解
咱们上文整体的介绍了下Raft协议,Raft协议分区容忍的一致性协议的核心思想:一致性的保证不一定非要所有节点都保持一致,只要大多数节点更新了,对于整个分布式系统来说数据也是一致性的。Raft 协议将概念分解成:Leader election、Log replication、Safety。Raft 把一致性协议划分为 Leader 选举、MemberShip 变更、日志复制、Snapshot 等几个几乎完全解耦的模块,实现了模块化设计。
林淮川
2021-12-20
8290
一致性算法 - Raft协议总述
Raft协议起源于 2013 年 斯坦福 Diego Ongaro和John Ousterhout的论文《In Search of an Understandable Consensus Algorithm》。作者表示因为Paxos 晦涩难懂且缺乏工程实现,所以要设计个既容易实现又利于学生学习的一致性算法。Raft 的数据一致性等价于 Multi Paxos,可以用于取代Paxos,并且证明可以提供与Paxos相同的容错性以及性能。
林淮川
2021-12-20
1.2K0
一致性算法-Gossip协议详解二(Memberlist实践)
咱们上文简单说了Gossip协议的原始方案,在真实场景有几百种变种,比较常见的Gossip 协议实现框架有:
林淮川
2021-12-20
1K0
线上问题排错经验总结
很多年以前,当我还是一个开发菜鸟的时候,觉得写代码是很牛逼并且很关键的事情,当听到有人说做一个项目或者开发一个系统,代码的编写工作只占其中30%的工作量时,当时的我对此说法嗤之以鼻,感觉开发工作受到了侮辱。后来,自己开始做技术leader、项目经理、做架构,慢慢认识到软件开发是一个系统工程,代码编写真的只是其中的一环,而且如果代码写不好测试不到位的话,那就是噩梦的开始。经历过多次噩梦洗礼之后,认清一个现实:CRUD,Ctrl c,Ctrl v,这不是高科技。开发与测试/运营/业务,不是对立关系,而应该相辅相成,如果开发人员对代码抱有敬畏之心,明白每行代码会带来什么样的系统行为,对测试/运营/业务抱有开放包容的心态,对他们的挑刺当成一种鞭策和挑战,写出更加“美丽”的代码,那这样的开发人员将是任何公司的财富。
林淮川
2021-12-20
1.1K0
谈谈二阶段提交在MySQL中的广义应用
2PC全称是Two-PhaseCommit,翻译过来是二阶段提交,是分布式事务XA规范(XA规范是X/Open DTP定义的交易中间件与数据库之间的接口规范)的实现思路,满足CAP理论的CP,是强一致性事务。
林淮川
2021-12-20
1.1K0
未来技术展望(一):混沌工程与ChaosBlade
混沌工程是在分布式系统上进行实验的学科, 目的是建立对系统抵御生产环境中失控条件的能力以及信心。由Netflix在2010年底提出,2012开源Chaos Monkey(混乱猴子),中间经过了一系列的演化。具体路线为:
林淮川
2021-12-20
6990
SpringBoot 下PDF生成使用填坑总结
解释: 1、Configuration cfg 使用了freemaker starter后,在项目启动时即会自动初始化 Configuration 对象到Spring容器中; 2、Template template = cfg.getTemplate("test.ftl","UTF-8"); 模板因cfg本身在Spring容器中,则在获取test.ftl模板是就会自动在resource/templates下寻找模板,默认:ftl 格式,可以修改 3、因为找了很多例子都是使用ITextRenderer 对象来渲染输出渲染的PDF,但ITextRenderer有一个问题是要解决中文不显示问题,必须把字体放在一个以 文件夹 路径访问的形式引入,SpringBoot打包后,经测试,无法获取打包后的FONT字体; 则,再另辟途径,又找到以Document方式,但document需要的是,没一个dom对象都必须一个个添加进去,网上很多都是new 专门的对象,比如:块 Paragraph 然后添加文字(数字)内容。 所以又搜索:是否可以往document插入html 最终找到:https://www.cnblogs.com/mvilplss/p/5646675.html
林淮川
2021-12-20
3.9K0
干货来啦!分布式场景之刚性事务-3PC详解
咱们上文介绍了分布式事务的常见方案、类型划分、2PC的起源和流程。但是不幸的是2PC还是存在几个问题:
林淮川
2021-12-20
2520
干货来啦!分布式场景之刚性事务-2PC详解
分布式场景下,多个服务同时对服务一个流程,比如电商下单场景,需要支付服务进行支付、库存服务扣减库存、订单服务进行订单生成、物流服务更新物流信息等。如果某一个服务执行失败,或者网络不通引起的请求丢失,那么整个系统可能出现数据不一致的原因。
林淮川
2021-12-20
4010
低代码(Low-Code)技术杂谈
“Low-Code”是什么?身为技术人员听到这种技术名词,咱们第一反应就是翻看维基百科 或者其他相关技术论文,咱们想看维基百科的英文介绍:
林淮川
2021-12-15
1.2K0
ZooKeeper的顺序一致性属于强一致性?
说到ZooKeeper到底是强一致性,还是最终一致性,相信大家一定能搜到大量互相打架的文章。在评判这个问题前,咱们在回顾下Consistency(一致性)、Consensus(共识)。这两者间的关系如下:
林淮川
2021-12-06
2.1K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档