201504-01 构建高并发高可用的电商平台架构实践(一)——设计理念 空间换时间多级缓存,静态化客户端页面缓存(httpheader中包含Expires/CacheofControl,lastmodified(304,server不返回body,客户端可以继续用cache,减少流量),ETag)反向代理缓存应用端的缓存(memcache)内存数据库Buffer、cache机制(数据库,中间件等)索引哈希、B树、倒排、bitmap哈希索引适合综合数组的寻址和链表的插入特性,可以实现数据的快速存取。B树索引适合于查询为主导的场景,避免多次的IO,提高查... 继续阅读 >
201503-06 关于大型网站技术演进的思考(三):存储的瓶颈(3) 存储的瓶颈写到现在就要进入到深水区了,如果我们所做的网站已经到了做数据库垂直拆分和水平拆分的阶段,那么此时我们所面临的技术难度的挑战也会大大增强。这里我们先回顾下数据库的垂直拆分和水平拆分的定义:垂直拆分:把一个数据库中不同业务单元的数据分到不同的数据库里。水平拆分:是根据一定的规则把同一业务单元的数据拆分到多个数据库里。垂直拆分是一个粗粒度的拆分数据,它主要是将原来在一个数据库下的表... 继续阅读 >
201503-06 关于大型网站技术演进的思考(一):存储的瓶颈(1) 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标... 继续阅读 >
201502-26 memcache的一致性hash算法使用详解 一、概述1、我们的memcache客户端(这里我看的spymemcache的源码),使用了一致性hash算法ketama进行数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进行hash计算,分配到不同节点存储。一致性hash算法是对我们要存储数据的服务器进行hash计算,进而确认每个key的存储位置。2、常规hash算法的应用以及其弊端最常规的方式莫过于hash取模的方式。比如集群中可用机器适量为N,那么key值为K的的数据请求... 继续阅读 >
201412-03 5个强大的Java分布式缓存框架推荐 在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的缓存策略,那么到时候重构起来将会是一个噩梦。本文主要是分享了5个常用的Java分布式缓存框架,这些缓存框架支持多台服务器的缓存读写功能,可以让你的缓存系统更容易扩展。1、Ehcache–Java分布式缓存框架Ehcache是一个Java实现的开源分布式缓存框架,EhCache可以有效... 继续阅读 >
201411-07 Ubuntu中memcached的安装、配置和启用关闭 Memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。最初为了加速LiveJournal访问速度而开发的,后来被很多大型的网站采用。起初作者编写它可能是为了提高动态网页应用,为了减轻数据库检索的压力,来做的这个缓存系统。它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统,... 继续阅读 >
201411-07 ubuntu下安装部署FastDFS+Nginx 一、部署说明部署环境ubuntu12.0.4server32位or64位最简安装,除ssh服务不安装任何服务服务器初始化sudoapt-getupdatesudoapt-getupgradesudoapt-getdist-upgrade安装编译环境:apt-getinstallbuild-essentialdpkg-reconfiguretzdata然后在crontab设置服务器时间同步二、安装libevent官方推荐稳定的1.4.14b版本的,2.x的可能有不稳定性获取下载wgethttps://github.com/downloads/libevent/libevent/li... 继续阅读 >
201411-07 分布式文件系统FastDFS架构及工作原理详解 1.FastDFS是什么FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。它只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地讲,Google FS以及FastDFS、mogileFS、HDFS、TFS等类Google FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。FastDFS的作者是余庆,现在淘宝网Java中间件团队从事Java基础平台研发工... 继续阅读 >
201411-07 PHP特点之数据库永久连接 永久的数据库连接是指在脚本结束运行时不关闭的连接。当收到一个永久连接的请求时。PHP将检查是否已经存在一个(前面已经开启的)相同的永久连接。如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。对web服务器的工作和分布负载没有完全理解的读者可能会错误地理解永久连接的作用。特别的,永久连接不会在相同的连接上提供建立“用户会话”的能力... 继续阅读 >
201411-07 PHP高性能分布式内存对象缓存系统扩展Memcached的安装及使用 一、简介及安装memcached是一个高性能分布式的内存对象缓存系统,通常被用于降低数据库加载压力以提高动态web应用的响应速度。此扩展使用了libmemcached库提供的api与memcached服务端进行交互。它还提供了一个session处理器(memcached)。关于memcached的安装,可参考这篇文章:Ubuntu中memcached的安装和配置。在安装php扩展memcached之前,需要先安装libmemcached,libmemcached是memcached的C/C++本地客户端库。安装lib... 继续阅读 >