大型网站技术之存储的瓶颈(5)

上文里我遗留了两个问题,一个问题是数据库做了水平拆分以后,如果我们对主键的设计采取一种均匀分布的策略,那么它对于被水平拆分出的表后续的查询操作将有何种影响,第二个问题就是水平拆分的扩容问题。这两个问题在深入下去,本系列就越来越技术化了,可能最终很多朋友读完后还是没有找到解决实际问题的启迪,而且我觉得…

大型网站技术之存储的瓶颈(4)

如果数据库需要进行水平拆分,这其实是一件很开心的事情,因为它代表公司的业务正在迅猛的增长,对于开发人员而言那就是有不尽的项目可以做,虽然会感觉很忙,但是人过的充实,心里也踏实。 数据库水平拆分简单说来就是先将原数据库里的一张表在做垂直拆分出来放置在单独的数据库和单独的表里后更进一步的把本来是一个整体…

NSQ安装与使用

安装步骤 1、Mac系统 $ brew install nsq 2、Linux系统 $ gpm install $ go get github.com/bitly/nsq/… NSQ 使用 gpm 来管理依赖文件。 编译源文件,gpm 是首选方案 相应安装包下载(当前最新版本) Mac:nsq-…

认识NSQ

1、NSQ是个什么东西 NSQ,一个基于GO语言的实时、分布式消息队列系统。 GO语言、实时、分布式、消息队列,是对NSQ最简单且也较为全面的诠释。为了能够更好的学习本教程,苦李建议各位看客最好能对消息队列有个初步的认识(自行百度即可)。另外,如果你再有一点GO语言的知识,那么将会对你理解NSQ的特…

大型网站技术之存储的瓶颈(3)

存储的瓶颈写到现在就要进入到深水区了,如果我们所做的网站已经到了做数据库垂直拆分和水平拆分的阶段,那么此时我们所面临的技术难度的挑战也会大大增强。 这里我们先回顾下数据库的垂直拆分和水平拆分的定义: 垂直拆分:把一个数据库中不同业务单元的数据分到不同的数据库里。 水平拆分:是根据一定的规则把同一业务…

如何使用PHP的异常处理机制

在各种语言里,异常(Exception)和错误(Error)的概念是不一样的。PHP里的异常,是程序运行中不符合预期的情况以及与正常流程不同的状况。所谓不正常的情况,就是说按照正常逻辑不该出错,但仍然出错的情况,这属于逻辑和业务流程的一种中断。PHP里的错误则属于自身问题,是一种非法语法或者环境问题…

搭建Git服务器

第一步:安装Git yum install git 第二步,创建一个git用户,用来运行git服务 useradd git 第三步,创建证书登录(建立信任关系) 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_…

大型网站技术之存储的瓶颈(2)

上篇里我讲到某些网站在高并发下会报出503错误,503错误的含义是指网站服务端暂时无法提供服务的含义,503还表达了网站服务端现在有问题但是以后可能会提供正常的服务,对http协议熟悉的人都知道,5开头的响应码表达了服务端出现了问题,在我们开发测试时候最为常见的是500错误,500代表的含义是服务端…

大型网站技术之存储的瓶颈(1)

前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。 首先我们要思考一个问题,什么样的…