互联网应用架构
文章平均质量分 57
yanghehong
这个作者很懒,什么都没留下…
展开
-
Redis server主从之间的断开重连
最近某项目,用了开源的 key-value 存储 Redis server,同事提出来用的。会部署一个master和若干个slave。slave和master同步。开发完了上线。第二天,发现slave与master断开了。master和slave放在不同机房的。进程都还在,只是没有同步,数据没有更新,因为master显示连接的slave少了。这太吓人了,不会简单的断开重连都没实现吧,redis。进一步分析,一开始如果slave没连上master,是会一直重试连接的。中间如果重启mas原创 2010-08-31 21:38:00 · 3954 阅读 · 0 评论 -
Oracle的高可用
快速浏览了一下Oracle官方的网页以及非官方的ppt,简单了解了一下Oracle提供的高可用方案。主要有三种: 1. RAC RAC, Real Application Clusters 多个Oracle服务器组成一个共享的Cache,而这些Oracle服务器共享一个基于网络的存储。这个系统可以容忍单机/或是多机失败。 不原创 2011-05-20 00:40:00 · 2626 阅读 · 0 评论 -
初遇缓冲区溢出攻击
初遇缓冲区溢出(Stack Buffer Overflow)攻击那天晚上,某种业务有好几个服务端进程在短时间内崩溃了。同事上去看了,发现都是在处理来自同一个地方东莞的同一个IP地址过来的请求时发生core dump。恩,诡异,当时我们先跟运维同事联系,在该业务的几个服务器上 临时紧急禁掉该IP的连接。我也上去看了,用GDB查看core文件。看了trace原创 2011-10-23 13:11:39 · 3027 阅读 · 2 评论 -
Facebook的服务器架构
大体层次划分 Facebook的架构可以从不同角度来换分层次。 一种是:一边是PHP整的经典的LAMP stack;另外一边是非PHP整的各种service。Facebook的页面从刚创立的时候扎克伯格写的,到现在,都用PHP开发。后端有用各种语言开发的service。它们之间用跨语言的thrift RPC通信(Scribe也是建立在Thrift之上原创 2011-06-09 16:45:00 · 9281 阅读 · 6 评论 -
试了一下一致性哈希(consistent hashing)
普通的一致性哈希(consistent hashing)是这样,在哈希环上为client顺时针选取最近一个server: 在某个paper上看到一种变形,具体哪个paper忘了,它是这么做的,就是选取前后两个server,每个client对应两个server,而不是一个: 为了写代码方便,最后实现的是这种: 为一个原创 2011-02-01 12:42:00 · 3900 阅读 · 5 评论 -
Evernote 的服务器架构
最近几天开始用云笔记Evernote...也顺带了解一下Evernote服务器端的设计。Evernote的技术博客上有若干Evernote的CTO Dave Engberg撰写的文章做了阐述。可读性很强,可直接点开下面的原文链接阅读,这里就不赘述或翻译了。Evernote服务器整体方案的描述:http://blog.evernote.com/tech/2011/05/17/ar原创 2012-02-28 23:19:49 · 3384 阅读 · 0 评论 -
黑莓宕机
黑莓宕机影响全球用户3天 ...各大洲的用户都影响到了,可以看RIM官方上的service update:http://www.rim.com/newsroom/service-update.shtml原因是一个核心交换机坏了,虽有备份的,不过切换后备份交换机没按预期工作...一般实现一个高可用的服务器系统,有两种方式。方法A,让一个主服务器原创 2011-10-14 01:01:56 · 2541 阅读 · 0 评论 -
Twitter的服务器架构
三字要诀Twitter的工程师把他们构建高效率,可伸缩的系统的经验总结为三字要诀:partitioning(分片), indexing(索引), 和 replication(复制)。分片(partitioning)技巧Twitter上的tweet有两种原创 2011-04-10 15:58:00 · 3320 阅读 · 0 评论 -
Skype的服务器架构
这篇文章 SKYPE's Roadmap and Architecture 简化地描述了Skype的架构。Skype的数据库团队leader Asko Oja 的幻灯, http://www.slideshare.net/highload/asko-oja-moskva-architecture-highload-presentation 则说Skype使用了PostgreSQL和Skype贡献的开源工具(plProxy, pgBouncer, PgQ...)做分布式数据库。终于具原创 2011-01-25 23:36:00 · 3051 阅读 · 2 评论 -
Flickr的服务器架构
前Flickr的架构师 Cal Henderson,在 Flickr: Web Services 这个PPT中,有对其架构比较全面的阐述。Flickr运维团队的John Allspaw,有两个讲LAMP的幻灯,Hardware Layouts for LAMP Installations 和 capacity planning for LAMP,但应该是Flickr架构演进和运维的一些经验总结,其中也透露一些服务器架构。John Allspaw也很强调测量(measurement)的重要原创 2010-12-31 00:55:00 · 1195 阅读 · 0 评论 -
Mixi的服务器架构
Mixi的CTO Batara Kesuma 在PPT mixi.jp scaling out with open source中讲他们怎么使用开源工具做向外扩展伸缩的。主要是怎么对MySQL数据库做切分(partitioning)。Mixi还被MySQL官方收为案例之一:mixi Delivers Massive Scale-out with MySQL这篇文章memcached全面剖析–5. memcached的应用和兼容程序(翻译自日文文章 http://gihyo.j原创 2010-12-24 11:36:00 · 1210 阅读 · 0 评论 -
Redis的源代码分析
比较全面但不太详细的分析:Redis: under the hoodRedis的字符串实现:http://code.google.com/p/redis/wiki/HackingStringsRedis的事件库:http://code.google.com/p/redis/wiki/RedisEventLibraryRedis的虚拟内存实现:http://code.google.com/p/redis/wiki/VirtualMemorySpecification简单原创 2010-12-14 01:42:00 · 4843 阅读 · 0 评论 -
Redis Cluster预览
当前稳定版本的redis(2.0.4)只支持简单的master-slave replication:一个master写,多个slave读。只能通过客户端一致性哈希自己做sharding。Redis Cluster是下个版本开发的重点,会有集群的自动sharding,多节点容错等等。10月份,Redis的作者Salvatore antirez Sanfilippo在伦敦的Redis London Meetup会上做了演讲,介绍了Redis Cluster。Youtube已经上传原创 2010-12-12 13:02:00 · 2806 阅读 · 0 评论 -
遭遇多线程bug (1)
某些用户,机器重启后,到第三方服务器的连接起不来,而到我们自己服务器的连接就没事。如果连接由于网络或其他原因fail掉,过一定时间后应该会重新尝试建立连接的。测试组做初步调查,他们能在本地环境复现,只是不是稳定复现,时而有时而没有。(嗯,race condition的问题就常常比较飘忽不定,并且往往在系统繁忙负载高的时候爆发)。我开始参与。原创 2013-12-13 08:12:43 · 2183 阅读 · 2 评论