
架构设计
文章平均质量分 78
xiaofei_chain
手游方案提供者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
搭建一个流媒体服务器--引子
在家休息一段时间了,中间有小公司老板邀请,也有企鹅的几个事业部的邀请,说实话要是放在以前应该都挺有兴趣,不过现在看的淡了。 和企鹅几个HR聊过,人家总是自我感觉良好,以为薪水高一点就可以搞定原则了,其实在南山住的人有哪个不知道那个半夜12点还开着灯的公司,那个号称不夜城的公司。签企鹅说不定就是在出卖健康,出卖生命,只是过程看起来比较华丽。 现在互联网公司都有一个迹象,加班都朝着无底线的方向走。原创 2013-06-08 15:18:17 · 4026 阅读 · 4 评论 -
实时游戏对战引擎MatchVS,我的对战旅程
MatchVS对战引擎终于面世了,其对战效果简直屌爆了,有视频为证! 2016年是中国电竞元年,所以让我们继续加油!原创 2016-01-28 12:13:13 · 3846 阅读 · 0 评论 -
P2P之我见,关于打洞的学问-------开篇
P2P全称是 peer to peer,国内有被翻译成点对点协议,顾名思议,即客户端与客户端直连。 但是,问题是只有极少数情况下,客户端之间才能直连。 为什么呢,现在大家的PC大部分是“躲”在路由后面,路由设备保护大家,免受黑客的攻击。 试想一下,如果别人可以任意直连你的电脑,经常上传重口味艳照的你岂不是整天生活在恐惧之中。原创 2013-11-17 22:21:26 · 3704 阅读 · 3 评论 -
高并发服务器的设计--内存池的设计
不同的业务,设计也不尽相同,但至少都一些共同的追求,比如性能。 做服务器开发很多年了,有时候被人问到,服务器性能是什么呢?各种服务器间拼得是什么呢? 简单的回答就是QPS,并发数,但有时候想想也许也不对。 QPS与并发数是针对同样的业务而言的,业务不同,相同的服务器能承受的压力也会不同。 性能,也许可以打个俗点的比方: 服务器就是一艘船,性能就是船的容量,开的速度,行得是否稳当。 该用原创 2013-05-26 13:05:15 · 21869 阅读 · 14 评论 -
hashmap 设计
先来看看泛型的数据队列。 自然界中的数据关系多分为两种,拿人类来看,一类是靠人与人之间的关系来互相关联,我称为关系型,另一种是靠屁股相互关联,我称为位置型。 对于关系型,一个富豪家族,女屌丝想成为其中成员很简单,与其中一个老头建立夫妻关系就加入了这个家族,被虐待了后想脱离它也很简单,解除夫妻关系就完事了。 再看看位置型,比如厕所里有20个坑,上面都贴上数字,有人报告第17个坑堵了,找起来会很原创 2013-06-03 13:54:24 · 4080 阅读 · 8 评论 -
高并发服务器的设计--fastcgi的设计
服务器开发中不何或缺的要使用fastcgi,其使用方法如下: while( FCGI_Accept() >= 0 ){ printf( "Content-type: text/plain \r\n" "Content-Length: %d\r\n" "Connection: close\r\n\r原创 2013-05-23 10:17:51 · 5936 阅读 · 0 评论 -
高并发服务器的设计--连接池的设计
高并发服务器需要有一些池的设计,如内存池,连接池,数据库连接池。 池(pool)的设计主要考虑到一些资源的频繁申请和释放,尤其是在高并发的服务器中,几万甚至几十万并发每秒,设计人员不得不去考虑这些。 比如数据库连接池(sql pool),是通过TCP来通信的,属于IO类,有一定的延时,在高并发系统中频繁的创建会严重影响系统性能。 内存( mem )的分配是要涉及锁( mutex )的,有锁就原创 2013-05-24 11:44:04 · 7696 阅读 · 12 评论 -
高并发服务器的设计--架构与瓶颈的设计
做架构设计,难免有时候被人问及系统的瓶颈在哪,那首先来了解下什么是瓶颈? 打个形象的比方,人的嘴巴可以吞下一整个面包,但是却咽不下去,因为食管不给力,它比较细,所以嘴巴能吞下的食物大小要受到食管的粗细限制。 城市内部每天会产生几十万件跨城快递,可是跨城的交通不给力,只允许走小型卡车,一卡车一次就能装几千件,一天下来也不一定能投送的完。 人在一定时间内能咽下多少食物,货运公司在一天运送多少货物原创 2013-05-27 20:48:57 · 10798 阅读 · 8 评论 -
高并发服务器的设计--缓存的设计
为什么需要缓存呢? 很简单的道理,拿QQ做个比方,每天有几亿用户登录、查询个人信息,且这些信息基本不会变化,如果你是架构师,你会选择全部从数据库中查询么,估计会被笑的。 一些业务要求大量且高速查询的,数据库必然会成为瓶颈,虽然可以通过横向扩容的方式优化,但这不是最优方案,其实服务器优化没有一个放之四海而皆准的最优方案,业务不同,最优方案也不同。 举个例子,腾讯有十几亿用户,就光登录就是个头疼原创 2013-05-30 11:52:52 · 9890 阅读 · 13 评论 -
rbtree 设计
什么是树? 大街上到处都是,大伙别说没看过,除非你在沙漠中。 树大致可以分为根,茎,枝,叶。 大树枝会套小树枝,树枝上都有叶子。 西方人有个圣诞节,圣诞来了,圣庭老人在树上的每个枝丫上都挂了礼物,礼物上都写上一个小朋友的名字,让小朋友去树上摘。 问题来了,现在有两颗树, A原创 2013-06-02 22:22:01 · 3358 阅读 · 3 评论 -
浅谈服务器的两种架构
今天和人电话聊了很长的技术问题,人家是成都卧龙工作室的,技术应该是很行的,但是在几个问题上我们的见解不一。 一个单线程能不能形成几万的并发。 这个问题首先就是个错误的提法,换个说法:nginx是不是就可以达到几万的并发。 两个问题犯的是相同的错误。 所有的并发都是针对业务处理的,业务简单点,像对于一些静态网页的处理,或者是无IO的事务,单线程和nginx都是可以达到几万的并发的。 可是这原创 2013-06-09 19:16:00 · 3819 阅读 · 6 评论 -
nginx 反向代理-负载均衡
nginx 反向代理-负载均衡前一篇文章讲了反向代理的中转作用 实现了把一个复杂的网络地址用简单的地址替换。 实现了fastcgi, php的前端代理功能。 其实,反向代理作用远不止这些,下面我们仍以nginx为例: 按照之前的配置: location /music/{ proxy_pass http://music.baidu.com/; } 结果: 浏览原创 2016-08-21 10:42:43 · 1141 阅读 · 0 评论