Raft 为什么是更易理解的分布式一致性算法

一致性问题可以算是分布式领域的一个圣殿级问题了,关于它的研究可以回溯到几十年前。拜占庭将军问题Leslie Lamport 在三十多年前发表的论文《拜占庭将军问题》(参考[1])。拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。在战争的时候,拜占庭军队内所有将军必需达成 一致的共识,决定是否...
阅读(3384) 评论(3)

你读到了什么:谈谈阅读的空与实

开始写点文字后,有些文章有人留言评论说:「都是些空话,正确的废话」,而有些文章有人又会留言评论说:「就喜欢这种,满满的干货,实在」。到底什么是空还是实蛮让我困惑的,思考了一段时间后今天就想谈谈我从阅读文章中到底读到了些什么?无论是别人评价是空话还是实在,于写作者我而言仅仅负责将自己思考后的观点清晰的表达,而至于是用「干货」还是「湿货」的形式来表达其实取决于支撑观点的内容本身。代入去想我知道评论说文章...
阅读(1842) 评论(6)

飞行的架构师和奔跑的程序员

关于程序员和架构师的讨论很多,我想从不同的角度说下。 寻路 当我刚进入软件行业成为一名程序员时,我的理想就是成为一名架构师。架构师这个词的英文叫 Architect,原意是建筑师,因为软件行业参照借鉴了很多建筑行业的概念,所以就借用这个词。我是在学校读书时知道架构师这个名词的,当时很多软件方面的书都是翻译过来的,现在也不知道是谁最早把 Architect 翻译成架构师的了。总之从那时起,架构师...
阅读(3706) 评论(7)

最近碰到的一些 SSL 问题记录

最近碰到一些 SSL 的小问题,特记录下。我们有个 Java 实现的 SSL TCP 服务端,为客户端(PC、Android 和 iOS)提供 SSL 接入连接服务。最近有用户反馈其手机上 App 不能正常连接登录,别人手机上都可以。经过单独回访调查该用户使用的手机操作系统是 Android 6.0,经搜索了解了 Android 6.0 之后 Google 使用了自家的 BoringSSL 替换了原...
阅读(3290) 评论(0)

本来连学计算机的都不是,怎么却读了计算机研究生

前两天成都出了太阳,本以为寒潮就此过去。结果今天又冷风呼呼吹,缩在家看书。手机震了一下,是微信有新的提醒,打开一看是 「小道消息」推送了一篇《学计算机的同学们啊,想清楚再去读研究生》,读完感觉一下击中了些什么,然后泛起一片片好多年前还在学校时的陈年旧忆。本来不打算在年前写文了,但感觉一下好像有很多想说的,就此写一篇吧,因为我就是计算机研究生毕业啊。说起和计算机的渊源可以回溯到二十年前,我还在读初二。...
阅读(6216) 评论(13)

成长路上,刀剑如梦

在成长的路上,回首望去是否感觉是一个刀剑如梦的过程?杀人术你狠狠的敲下键盘的回车键,终于看见程序按预期输出了正确结果,长长吐了一口气。点上一支烟,环顾四周,独自一人,又是一个夜深人静的晚上。在一种搞定 bug 的满足和空旷寂寥的忧伤中,你不禁迷惘。记不清这是你修复的第多少个 bug 了,甚至记不清这是你参与开发和维护的第几个系统了。就像一个剑客在这个江湖上行走多年,已记不清死在自己剑下人有多少,拔剑...
阅读(4812) 评论(14)

MongoDB 初见指南

技术若只如初见,那么还会踩坑么? 在系统引入 MongoDB 也有几年了,一开始是因为 MySQL 中有单表记录增长太快(每天几千万条吧)容易拖慢 MySQL 的主从复制。而这类数据增长迅速的流水表,对数据一致性也没那么高要求,而且业务上也不需要关联查询它,就考虑分出去。为什么是 MongoDB?刚巧赶上公司 DBA 团队引入了这个数据库,有人帮助运维,对业务团队就成了一个自然的选择。不过对...
阅读(9689) 评论(13)

程序员「奇葩」说

一直以来「奇葩」这个词都是偏贬义的,直到去年有个综艺节目叫「奇葩说」挺热闹,这里的人不一定是奇葩,更多指达人的意思。 「奇葩说」里的达人都是能说会道的,我的主业是程序员,所以只能写写在我职业生涯中碰到的一些「奇葩」程序员。 你懂的,我这里的「奇葩」没有任何贬义的意思。 月在胸襟人在途 我刚入行时的第一位项目经理,70后。那年三十出头,在银行客户现场做项目经理,负责一个二十来人的客户现场团队...
阅读(3351) 评论(11)

MySQL 数据库主从复制架构

前文《MySQL 数据库事务与复制》分析了 MySQL 复制过程中如何保证 binlog 和事务数据之间的一致性,本文进一步分析引入从库后需要保证主从的数据一致性需要考虑哪些方面。原生复制架构 MySQL 的原生复制架构原理如上图所示。从库的 I/O Thread 线程负责不断读取主库的 binlog 日志文件并写入本地的 Relay log 临时缓存。从库的 SQL Thread 线程则不断读取...
阅读(7014) 评论(6)

Redis 集群的合纵与连横

之前一篇写了关于 Redis 的性能,这篇就写写我认为比性能更重要的扩展性方面的主题。如果再给我一次回到好几年前的机会,对于使用 Redis 我一开始就要好好考虑将来的扩展问题。就像我们做数据库分库分表,一旦决策了分库分表,通常一次就会分到位,比如搞上 8 或 16 个库,每个库再分 256 或 1024 个表。不管将来业务再怎么发展,基本这个量级的分片都足够应对,而且底层库可以做成逻辑的,扛不住时...
阅读(9626) 评论(5)

系统崩溃,大圣归来

走在程序员的路上,久了总会碰到一些系统崩溃的事件。在 2011 年 8 月份某个阴雨连绵的周一,北弗吉尼亚一个 1000 万瓦特的变压器发生爆炸,在整个电网中带来了庞大的突增瞬间电压,对亚马逊位于弗吉尼亚州阿什伯恩(Ashburn)的一个数据中心造成了重创,导致这个数据中心的主电源关闭。亚马逊的杰出工程师詹姆斯·汉密尔顿(James Hamilton)当时正巧开车驶入该数据中心停车场,对于阿什伯恩数...
阅读(2263) 评论(7)

分布式存储概述

分布式存储是相对于单机存储而言,之所以要分布自然是因为互联网时代信息数据大爆炸,单机已经难以满足大型应用的数据存储需求。存储系统的关注点关于存储系统,一般我们关注下面几个方面: 数据分布与负载均衡 数据存储的可靠性与一致性 数据访问性能 系统容错能力 系统扩展能力 在单机存储系统中有一种独立磁盘冗余阵列(RAID,redundant array of independent...
阅读(3731) 评论(2)

MySQL 数据库双向同步复制

MySQL 复制问题的最后一篇,关于双向同步复制架构设计的一些设计要点与制约。问题和制约数据库的双主双写并双向同步场景,主要考虑数据完整性、一致性和避免冲突。对于同一个库,同一张表,同一个记录中的同一字段的两地变更,会引发数据一致性判断冲突,尽可能通过业务场景设计规避。双主双写并同步复制可能引发主键冲突,需避免使用数据库自增类主键方案。另外,双向同步潜在可能引发循环同步的问题,需要做回环控制。如上图...
阅读(9846) 评论(0)

Redis 的性能幻想与残酷现实

2011 年,当初选择 Redis 作为主要的内存数据存储,主要吸引我的是它提供多样的基础数据结构可以很方便的实现业务需求。另一方面又比较担心它的性能是否足以支撑,毕竟当时 Redis 还属于比较新的开源产品。但 Redis 官网宣称其是提供多数据结构的高性能存储,我们对其还是抱有幻想的。幻想要了解 Redis 的性能,我们先看看官方的基准性能测试数据,心里有个底。测试前提 Redis versio...
阅读(4876) 评论(9)

不懂程序看的明白《黑客帝国》吗?

十多年后又看了遍《黑客帝国》,扯点和程序有关的非技术话题。前段时间出差周末没事就在酒店又把黑客帝国重温了一遍,不看不要紧,十年后再看发现以前对这部电影的理解完全错了。 《黑客1》是 1999 年出的,我还在读高中,第一次看还在学校附近的录像厅,枪版。 整个画面黑漆漆的,看了不到半小时直接睡过去了,醒来时已经是最后的高潮枪战部分,感觉结尾打斗好看,剧情不懂。 2003 年《黑客2&3》一起推出后,又连...
阅读(3053) 评论(2)
180条 共12页首页 上一页 ... 6 7 8 9 10 ... 下一页 尾页
    个人资料
    • 访问:1181978次
    • 积分:11553
    • 等级:
    • 排名:第1327名
    • 原创:171篇
    • 转载:0篇
    • 译文:9篇
    • 评论:914条
    文章分类
    最新评论