密码保护:新浪:关于开放API平台的思考
无法提供任何摘要。这是一篇受保护的文章。
无法提供任何摘要。这是一篇受保护的文章。
代码地址: 通用排序服务器:http://code.google.com/p/fulin/source/browse/C++/cntsvr/sdp/?r=13 更新: 1. protocol 层增加缓冲区,以减少 pipeline 的次数。频繁的 pipeline 会因为锁争用的缘故导致性能严重下降。 2. 增加了一层 udp 转发的 so ,在进程之间也可以配置形成新的 pipeline 3. 增加了增量排序的实现:在 mcdb (memcachedb) 里保存快照,排序的 value 为总值减去快照值 4. 增量的时间单位是天,其他的增量,如周,月等,为日增量的合并排序的结果。当前使用 bash 脚本实现,脚本中使用 od ,awk ,sort 等工具。当前的实现由逻辑错误,各相同 id 的日增量没有合并 。(已合并) 5. mcdb 安装,配置,rotate 脚本等此处暂时省略。 PS: Linux 2.6.9 内核的 syslog 真的很烂。 PS2:mcdb 在主库崩溃的时候,重启辅库,似乎会导致辅库也僵死。计划今天晚些时候重现一次。
原文链接:http://varnish.projects.linpro.no/wiki/ArchitectNotes 译者序:工作中用到了 varnish ,网上却鲜有中文资料。前任一篇《使用Varnish代替Squid做网站缓存加速器的详细解决方案[原创]》,侧重于应用,而原理甚少。故试译此文,存投石引玉之念。 (未完成)
Nginx 概述 HTTP基础功能: 处理静态文件,索引文件以及自动索引; 反向代理加速(无缓存),简单的负载均衡和容错; FastCGI,简单的负载均衡和容错; 模块化的结构。过滤器包括gzipping, byte ranges, chunked responses, 以及 SSI-filter 。在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理; SSL 和 TLS SNI 支持;
Tagged nginx conf从上个月的最后一天,也就是上周一开始,转部门的事情从意愿变成了行动。 新浪支付(http://sinapay.sina.com.cn)上线完成,但离步入正轨还差十万八千里——掉单还需要人工干预,对账还需要人工统计,给客服用的系统,给财务用的系统,等等等等,都还在 ToDoList 上,更不用说二期的给其他部门提供付费接口,二期在电信部署一套机器,二期换用更稳定的数据库集群,二期,更遥远的目标。 播客这边本来是希望做系统开发,却又因种种原因,需要先做一段系统管理员。播客的系统已经运行了一年了,该有的东西都有,文档也比较齐全,接手起来还算顺利。但角色的转变还是需要一个熟悉的过程——太多的机器(140+),复杂的拓扑(squid(varnish)->apache(ngix)->memcachedb->mysql(r+w)),新颖的程序(cacti,cmdb,f5 tmui),以及纷杂的人际关系。 在指定的时间内完成了 MandManager 图和接口机改造草案表,虽然完成的并不完美;安心的过了一个清明假——虽然千辛万苦去一趟植物园,还差点回不来;好好的看了一本《计算机体系结构》,虽然还有更多的书,堆在书架上好久了,还没有来得及翻。 生活还在继续。过去的,过去了;未来的,还未来。
3月12号,植树节,孙氏中山君忌辰。 昨天,2008年3月11号,下午18时整,新浪支付(http://sinapay.sina.com.cn/)在一片匆忙中,终于上线了。大约2分钟后,迎来了第一个非内部人员的注册用户,4分钟后,迎来了第一笔充值。15分钟后,迎来了第一笔掉单:充值游戏接口返回超时。30分钟后,迎来了第一笔帐务错误:为不登录而直接充值的用户准备的默认帐户内,余额不足了——也就是说,某个幸运儿可能从银行或者用卡,打算往游戏帐户里充值10块钱,而我们的系统为他充了20块,甚至更多。 手忙脚乱的时候,更容易出错。应该在后台跑的一个进程,死活跑不起来。因为部署在正式机上,又没法调试——操作的直接是真实帐户!一点一点的 echo, dump,最后发现是正则匹配的时候,少匹配了一项服务器 env 变量,真是无语了。不管它为什么少匹配了,直接将其写在程序里,先跑起来再说。 上线之后,终于可以不用操心 jira 里的 bug 了,但还是没有空闲的可能:需要时刻监控这所有服务器上的 error log。开着一堆的服务器连接,不停的 tail -f ,不停的到处救火,这就是上线的日子里的生活。 等好不容易稍稍平静一点,心情也稍微的可以宽慰些许了。于是回家,一觉睡到大天亮,到起床时还临时决定去文慧园的中国银行,将助学贷款给全部结清了。 于是,无债一身轻,无“上线”压力一身更轻。
3月8号,妇女节。 承蒙mango邀请,我来到腾讯位于北京的办公室面试。 因为昨晚加班将代码上线及线上微调(http://sinapay.sina.com.cn),一直弄到12点才回家,凌晨2点才睡觉,所以今天早上起来都还是晕晕的。一看时间,不好,9点20了。约的是 10 点,所以赶紧打车。 腾讯北京的办公室位于银科大厦(silver tech),16F – 21F。打车过去一会就到了。上到17层,居然让在门外等着。门口的椅子上坐满了来面试的人,年轻的,年老的都有。旁边两个人聊天,听了一会,原来他们是应届生,来面试体育编辑及奥运频道编辑。感慨一下时光流逝,似乎不久前自己还是应届生,转眼间,就成“跳跳”族了。 也许是因为来的人比较多,需要排队等待面试官的面试。坐在门口很无聊,想着腾讯这么大一个公司,怎么也不稍微人性化一点,安排一个会议室什么的让大家等,或者在门口摆点报纸杂志什么的给大家看看也好啊——有保安在门口,也不用担心谁将报纸带走了。 大约10点20,终于叫到我了。进门左拐,在一个呈圆弧形凸出的房间里见到了面试官——房间外围都是落地玻璃,往外看去,中关村西区的繁华尽收眼底。互相报了姓名才知道,他就是在qq上聊过的mango ——跟想象中的相差比较大的说。聊了聊自己的工作经历,熟悉的技术,以及对一些技术问题的探讨,例如 memcache,网通电信同步等等。 接下来是笔试——因为上次网上笔试做的不够理想,mango另外给了我一份试题,让我现场再做一下。这套题比起上一次做的来,稍微简单了一些,但还是有大量的需要手写代码的题目,没有时间写具体代码,只好使用伪代码进行主要算法的描述。看的出来,这套题侧重于测试应聘者的真实“写”代码能力,而不是理论知识:PHP获得用户真实ip(考虑代理服务器),获得用户上传的文件的真实类型,检查用户提交的email是否符合格式要求,无一不是写过很多代码的人才写的出来的。还有,使用 php5,mysqli 写无限子菜单(标明使用 php5 大概是希望用类实现吧),strtolower 中文乱码(要求使用3种不同的办法解决)等,也是需要写过一些代码才知道怎么回事。一般写 PHP 的团队是不太注重设计模式的,但自从 PHP5 出来之后,也有的项目开始使用一些简单的设计模式了,比如单例 (Singleton) 模式。对数据库技巧的考察也有:2个表的数据合并显示,不允许使用联合查询——一般大网站都不允许使用复杂的SQL的,前面的应用服务器想方设法降低数据库的压力,复杂的SQL要求尽量在前端进行简化后才被送到真正的SQL服务器执行。题目很简单,因为前几天自己正好做了一个更复杂的:多个表的数据合并显示,而且还要有翻页功能。做了大约 2 天,而且只能做到翻 下一页 和 上一页,无法给出所有的页码链接——因为在不允许一次取得所有记录的前提下,翻到第 n 页的时候,只能取得 n+1 页和 n-1 页的位置指针,其他的页码中的数据分布情况无法获得。笔试中最遗憾的是关于 xml 和 html 的“实体” 以及区别。我愣了半天,硬是没有想起来什么是 “实体”。笔试完了跟 mango 聊起试题的时候才知道,所谓的实体,就是那些单引号,双引号,&,<,> 等需要编码的字符。 笔试结束,已经是 12 点过了。mango 拿着试卷,边看边再次跟我聊。这一次聊的时候更多是关于腾讯那边工作的内容了。包括工作地点,待遇以及福利什么的。只是那边要求的时间太紧,而这边新浪支付即将上线,户口,违约金等等又困绕着,左右权衡,还真不好选择。 PS. 面试中问到了一个问题,关于程序运行过程中获得程序的输入输出,其实是 strace 命令的用法,当时不会,记录在次以备查: strace命令用法 调用: [...]
腾讯的笔试原预计周日进行,临时调到昨天晚上。 在进行了一整天的 SetErrorCode 后,来不及做任何准备,就开始了答题。 家里小蔡的电脑很不习惯,没有 Cygwin,没有 PHP 手册,没有 SSH,用 PuTTY 连上公司的测试机还慢的像断了腿的蜗牛。自己以前留存下来的经典代码也无法参考。用 QQ 而不是更干净整洁的 TM,用 IE 而不是自己熟悉的 FF。一个小时的中文测试,居然到了快 20 分钟的时候才做完第一题。 腾讯招 PHP 的是QZone空间的部门,可是打开空间看了看,并没有发现 PHP 的丝毫痕迹。QZone 使用大量的 Js,对搜索引擎极其不友好,只支持 IE 等做法恰恰跟自己喜欢的方式相左。本来还希望往服务器配置,优化,管理的方向转,但仔细一看QZone的服务器,Server: WS CDN Server,这是啥?Server我知道,CDN我知道,可是WS是什么? 腾讯的笔试题比较重视正则表达式,短短的7道题,居然有2道与正则有关。关于 PHP 的安全模式,命令行模式,魔术函数,以及网络调用都有涉及。令我感到意外的是,居然有一道算法题,使用 PHP 实现双向队列。这本来应该是我的强项,只是最后却因为时间关系而来不及细写。 英文的测试题相对简单多了,大约腾讯并不要求很高的英文能力吧,以至于像我这样只过了六级,又好久没有折腾英语的人,都非常轻松的完成了答题,而且时间上居然还有一点富余。 其实说起来,还是要非常感谢腾讯的 lin,为了这次笔试陪我加班到那么晚。即使这次没有成功,腾讯还是以后可能优先考虑的一个选择。
腾讯的笔试原预计周日进行,临时调到昨天晚上。 在进行了一整天的 SetErrorCode 后,来不及做任何准备,就开始了答题。 家里小蔡的电脑很不习惯,没有 Cygwin,没有 PHP 手册,没有 SSH,用 PuTTY 连上公司的测试机还慢的像断了腿的蜗牛。自己以前留存下来的经典代码也无法参考。用 QQ 而不是更干净整洁的 TM,用 IE 而不是自己熟悉的 FF。一个小时的中文测试,居然到了快 20 分钟的时候才做完第一题。 腾讯招 PHP 的是QZone空间的部门,可是打开空间看了看,并没有发现 PHP 的丝毫痕迹。QZone 使用大量的 Js,对搜索引擎极其不友好,只支持 IE 等做法恰恰跟自己喜欢的方式相左。本来还希望往服务器配置,优化,管理的方向转,但仔细一看QZone的服务器,Server: WS CDN Server,这是啥?Server我知道,CDN我知道,可是WS是什么? 腾讯的笔试题比较重视正则表达式,短短的7道题,居然有2道与正则有关。关于 PHP 的安全模式,命令行模式,魔术函数,以及网络调用都有涉及。令我感到意外的是,居然有一道算法题,使用 PHP 实现双向队列。这本来应该是我的强项,只是最后却因为时间关系而来不及细写。 英文的测试题相对简单多了,大约腾讯并不要求很高的英文能力吧,以至于像我这样只过了六级,又好久没有折腾英语的人,都非常轻松的完成了答题,而且时间上居然还有一点富余。 其实说起来,还是要非常感谢腾讯的 lin,为了这次笔试陪我加班到那么晚。即使这次没有成功,腾讯还是以后可能优先考虑的一个选择。
公历的年初,农历的年底。 公司选择在这样的一个时候在这样一个地点来开这样一个年会:没有其它公司员工都有的年终,没有年底双薪,有的只是中奖面不到 1% 的抽奖。 本来以为所谓的年会,应该是一个“会”,也就是领导们讲讲话,大家鼓鼓掌,然后一些员工代表什么也发发言,大家继续鼓鼓掌。哪知道一开始,就吓了一跳:艳舞,惊艳全场。音响,灯光,烟雾,口哨,尖叫,看架势,整个一娱乐晚会。 带了相机,却没有拍到什么好的照片——虽然坐在所谓的 VIP 区域,却是vip的最后一排。想要看拍的好的照片,点击 这里 吧:(http://photo.sina.com.cn/list/photo_s.php?uid=1400314314&ctg_id=99798) http://photo.sina.com.cn/list/photo_s.php?uid=1400314314&ctg_id=99798 http://photo.sina.com.cn/list/photo_s.php?uid=1151840394&ctg_id=100380 http://photo.sina.com.cn/list/photo_s.php?uid=1495295187&ctg_id=99867 http://photo.sina.com.cn/list/photo_s.php?uid=1400042283&ctg_id=100257 http://photo.sina.com.cn/list/photo_s.php?uid=1402618337&ctg_id=101469