随笔分类 -  分布式/架构

集群,负载均衡,分布式架构,性能优化
摘要:缓存一致性问题 当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。 缓存并发问题 缓存过期后将尝试从后端数据库获取数据, 阅读全文
posted @ 2016-12-05 12:41 丁码农 阅读(20947) 评论(6) 推荐(16) 编辑
摘要:缓存命中率的介绍 命中:可以直接通过缓存获取到需要的数据。 不命中:无法直接通过缓存获取到想要的数据,需要再次查询数据库或者执行其它的操作。原因可能是由于缓存中根本不存在,或者缓存已经过期。 通常来讲,缓存的命中率越高则表示使用缓存的收益越高,应用的性能越好(响应时间越短、吞吐量越高),抗并发的能力 阅读全文
posted @ 2016-11-30 12:57 丁码农 阅读(22624) 评论(2) 推荐(12) 编辑
摘要:常见的数据库系统优化中的一些观点: “系统性能出现问题进行优化,一定要深入了解数据库内部参数、等待事件、Latch、缓冲池、trace文件、查询/优化引擎等底层细节。” 这种观点往往出自数据库“高手”,这部分人以了解数据库底层实现细节而感到非常骄傲。但是从优化角度讲数据库的等待事件、Latch等指标 阅读全文
posted @ 2016-11-29 13:13 丁码农 阅读(3476) 评论(9) 推荐(8) 编辑
摘要:缓存的基本知识 在整个计算机体系构造中(无论是硬件层面还是软件层面),缓存都是无处不在的。 在计算机硬件构造中,由于两种介质的速度不匹配,高速介质在和低速介质交互时速度趋向低速方,这就导致了高速介质的资源闲置。而通过引入第三种介质(速度和成本介于两者中间),将低速方读写的部分内容数据保存在该介质中, 阅读全文
posted @ 2016-11-28 08:59 丁码农 阅读(4318) 评论(9) 推荐(18) 编辑
摘要:做过APP产品的技术人员都知道,APP应用属于一种C/S架构的,所以在做多版本兼容,升级等处理则比较麻烦,不像web应用那么容易。下面将带大家分析几种常见的情况和应对方式: 小改动或者新加功能的 这种情况,数据库结构和API程序一般是可以兼容多版本的,所以不用强制升级,可以坐到多版本共存。 尽量采用 阅读全文
posted @ 2016-11-23 09:14 丁码农 阅读(7935) 评论(8) 推荐(14) 编辑
摘要:在之前的文章中,我介绍了分库分表的几种表现形式和玩法,也重点介绍了垂直分库所带来的问题和解决方法。本篇中,我们将继续聊聊水平分库分表的一些技巧。 分片技术的由来 关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等都很有限,数据库本身的“有状态性”导致了它并不像Web和应用服务 阅读全文
posted @ 2016-11-21 09:24 丁码农 阅读(18446) 评论(30) 推荐(72) 编辑
摘要:在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此, 阅读全文
posted @ 2016-11-18 09:03 丁码农 阅读(22606) 评论(17) 推荐(32) 编辑
摘要:本文首发于InfoQ,版权所有,请勿转载!!! http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency 开篇 在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求, 阅读全文
posted @ 2016-07-17 22:06 丁码农 阅读(88826) 评论(18) 推荐(31) 编辑
摘要:最近在招聘中,聊到基础的网络编程的时候,发现不少人对BIO、NIO、AIO等理解非常模糊,觉得有必要写文章来纠正下很多人的误解。在谈这些之前,非常有必要先介绍下Unix 5种IO模型:阻塞:阻塞是最常用的IO模型,默认情况下所有的文件操作都是阻塞的。以套接字编程为例。在进程空间中调用recvfrom... 阅读全文
posted @ 2016-01-05 14:19 丁码农 阅读(1627) 评论(1) 推荐(5) 编辑
摘要:在主流的Web站点中,图片往往是不可或缺的页面元素,尤其在大型网站中,几乎都将面临“海量图片资源”的存储、访问等相关技术问题。在针对图片服务器的架构扩展中,也会历经很多曲折甚至是血泪教训(尤其是早期规划不足,造成后期架构上很难兼容和扩展)。本文将以一个真实垂直门户网站的发展历程,向大家娓娓道来。构建... 阅读全文
posted @ 2015-06-29 22:08 丁码农 阅读(28877) 评论(56) 推荐(64) 编辑
摘要:在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜,但是总让很多刚入门的人感觉很神秘,甚至是高深莫测。很少有人对“架构”有全面的了解和认识能并说清楚架构是什么,更谈不上掌握了。事实上,也只有极少数人能成为或者被冠以“架构师”这样的title。为此,笔者总结了对架构的一些理解,希望能够... 阅读全文
posted @ 2015-06-10 10:41 丁码农 阅读(44584) 评论(5) 推荐(19) 编辑
摘要:曾今SOA的概念犹如今日“云计算、大数据”一样,被炒得火热,不少企业便纷纷响应,并宣称会拥抱和实施SOA。而事实上,业界出现了两种极端:一种是由于各类文章和书籍关于SOA的描述往往太过抽象,再加上各大厂商的呼吁,使得SOA往往显得“高大上”,令不少企业和架构师们望而却步。第二种恰好相反,有部分人却认... 阅读全文
posted @ 2015-03-25 20:54 丁码农 阅读(1039) 评论(2) 推荐(2) 编辑
摘要:企业级的数据库应用大多部署在RAID磁盘阵列的服务器上,这样能提高磁盘的访问性能,并能够实现容错/容灾。RAID(冗余磁盘阵列),简单理解,就是拿一些廉价的硬盘来做成阵列。其目的无非是为了扩展存储容量,提升读写性能,实现数据冗余(备份容灾)。就像很早就有老外拿N台旧PC,做成一个强大的“服务器集群”。RAID技术诞生于1987年,由美国加州大学伯克利分校提出。主流的大概可以分为几个级别:RAID 0,RAID 1,RAID 5,RAID 10 。配置起来也不是很复杂,有兴趣和条件的朋友可以找相关的资料,自己动手实践。SQL Server 2005常用的有几个级别0,1,5,10 下面我来简单说 阅读全文
posted @ 2012-09-09 17:11 丁码农 阅读(2559) 评论(7) 推荐(6) 编辑