![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构
文章平均质量分 74
桂学成
这个作者很懒,什么都没留下…
展开
-
大型网站架构改进历程:存储的瓶颈(1)
前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。 大型网站定义 首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是转载 2015-02-04 10:08:01 · 550 阅读 · 0 评论 -
大型网站架构改进历程:存储的瓶颈(5)
上文里我遗留了两个问题,一个问题是数据库做了水平拆分以后,如果我们对主键的设计采取一种均匀分布的策略,那么它对于被水平拆分出的表后续的查询操作将有何种影响,第二个问题就是水平拆分的扩容问题。这两个问题在深入下去,本系列就越来越技术化了,可能最终很多朋友读完后还是没有找到解决实际问题的启迪,而且我觉得这些问题都是像BAT这样巨型互联网公司才会认真思考的,因此本篇我打算换个角度来阐述本文的后续内容。转载 2015-02-04 10:26:12 · 466 阅读 · 0 评论 -
大型网站架构改进历程:存储的瓶颈(3)
存储的瓶颈写到现在就要进入到深水区了,如果我们所做的网站已经到了做数据库垂直拆分和水平拆分的阶段,那么此时我们所面临的技术难度的挑战也会大大增强。 这里我们先回顾下数据库的垂直拆分和水平拆分的定义: 垂直拆分:把一个数据库中不同业务单元的数据分到不同的数据库里。 水平拆分:是根据一定的规则把同一业务单元的数据拆分到多个数据库里。 垂直拆分是一个粗粒度的拆分数据,它主要是将原转载 2015-02-04 10:20:57 · 431 阅读 · 0 评论 -
大型网站架构改进历程:存储的瓶颈(2)
503错误 在上篇,我讲到某些网站在高并发下会报出503错误,503错误的含义是指网站服务端暂时无法提供服务,503还表达了网站服务端现在有问题,但是以后可能会提供正常的服务,对http协议熟悉的人都知道,5开头的响应码表达了服务端出现了问题,在我们开发测试时候最为常见的是500错误,500代表的含义是服务端程序出现了错误导致网站无法正常提供服务,500通常是服务端异常和错误所致,如果生产系转载 2015-02-04 10:11:15 · 431 阅读 · 0 评论 -
大型网站架构改进历程:存储的瓶颈(4)
如果数据库需要进行水平拆分,这其实是一件很开心的事情,因为它代表公司的业务正在迅猛的增长,对于开发人员而言那就是有不尽的项目可以做,虽然会感觉很忙,但是人过的充实,心里也踏实。 数据库水平拆分简单说来就是先将原数据库里的一张表在做垂直拆分出来放置在单独的数据库和单独的表里后更进一步的把本来是一个整体的表进一步拆分成多张表,每一张表都用独立的数据库进行存储。当表被水平拆分后,原数据表成为了一个转载 2015-02-04 10:22:41 · 468 阅读 · 0 评论 -
通过rsync+inotify实现数据的实时同步
一、rsync的优点与不足 与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需转载 2015-03-20 10:45:10 · 537 阅读 · 0 评论 -
关系型数据的分布式处理系统MyCAT(2)——高级功能和管理监控
关系型数据的分布式处理系统MyCAT(2)——高级功能和管理监控日期:2014/12/24文:阿蜜果1、 高级功能1.1 分片策略MyCAT通过定义表的分片规则来实现分片,每个表格可以捆绑一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分片算法。1.1.1 分片规则以常用的基于整数映射的分片函数org.MyCAT.route.funct转载 2015-04-24 17:15:27 · 1524 阅读 · 0 评论 -
2、设计模式之单例模式
1、背景:为了减少系统的资源或者达到资源共享的目的,要求系统中只保存一个实例,即单例。并且提供一个访问该实例的全局接口。在现实系统设计中也大量使用了这种模式,如window任务管理窗口、管理配置文件对象,线程池等等。2、例子 2.1 系统配置文件,系统重启时加载配置文件,保存在内存中 2.2 数据库连接池,维护数据库设定的连接数,负责提供数据库连接,回收数据库连接 3、单原创 2015-04-21 10:32:02 · 648 阅读 · 0 评论 -
3、设计模式之观察者模式
1、背景:在现实生活或者应用程序中,对象(人)与对象(人)之间的合作是根据对方的状态来进行的,或者说自己的状态发生变化之后,通知对方也发生相应的改变。比如场景:“儿子”睡醒后,爸爸要给“儿子”喂奶吃。在程序中是如何实现这样的场景的呢?相信很多人思路大概是这样:启动一个“爸爸”线程,不断询问(监听)“儿子”的状态是不是醒了,如果是,则进行喂奶的操作。这样的方法虽然能实现了上述的场景,但是显然这样做并不原创 2015-04-27 10:47:11 · 1633 阅读 · 0 评论