Category Archives: 架构研究
QCon2011讲师经验总结及QCon2011的ppt下载
第一次作为讲师参加这样大规模的会议,经验不足,特总结一下: 1.虚心接受批评建议,诚心提高演讲技巧。 2.会前准备过份考虑切合当天大会主旋律。 3.铺垫过多,观众需要速食。 4.要讲的东西一定要放到ppt上,会场很大,由于音响回声,前半场需要讲师,后半场只需要幻灯播放员。 5.三段式的ppt最能快速切入主题:1)解决什么问题 2)用什么关键代码解决 3)在哪里下载 6.不谈构架,潜心解决实际问题。 7.10月份杭州QCon如果时间允许,再去分享更好的主题:米聊团队背后的技术,届时一定不忘记上面的6点。 如果您当天听了我的讲座有任何建议,欢迎以评论方式提出。 下面是ppt: Qcon2011-54chen-互联网分步式构架分享 View more presentations from zhen chen. QCon 2011 beijing官方下载地址 http://www.qconbeijing.com
分布式日志系统scribe使用手记
scribe 是facebook 开源的分布式日志系统 。其使用了thrift传输log,由于使用thrift,所以不论是什么语言的项目都可以实现日志收集,可达到远程或者是本地同步远程的分布式日志收集效果,在其示例配置中,并发量可达到max_msg_per_second=2000000,对普通的应用来说,每秒上百万的访问量可能性很小,因此基本上即使最简单的配置,远程收集所有项目的log也是可靠的,如果压力大的话,可以采取主从的配置,将日志打到本地后由scribe的主从配置来自动同步。下面讲述如何安装和使用scribe。 下载boost、thrift、scribe boost_1_45_0.tar.gz thrift-0.5.0.tar.gz facebook-scribe-2ee14d3.zip 通过yum安装需要的依赖 yum install libevent libevent-devel python-devel yum install gcc-c++ yum install automake yum install byacc flex 安装boost tar -zxvf boost_1_45_0.tar.gz cd boost_1_45_0 ./bootstrap.sh ./bjam install --prefix=/opt/soft/bootstrap 安装thrift-0.5.0 tar zxvf thrift-0.5.0.tar.gz ./configure --with-php-config=/opt/soft/php/bin/php-config &hel
ubuntu10.04 下通过usb在G7(desire)上真机调试android程序的设置
本文为android开发入门系列,以下是各节传送门: android 开发入门 http://www.54chen.com/_linux_/androiddev.html android开发入门2:概念建立 http://www.54chen.com/_linux_/androiddev2.html 一、工具介绍 android-sdk-linux_x86/tools下有一堆工具,今天要用的是:Android Debug Bridge,在android开发过程中,这个工具是使用得最多的。(缩写adb,有点像gcc的gdb似的) adb start-server - 实际上它会启动一个 adb fork-server server adb kill-server - kill掉 adb devices - 列出所有的设备 二、设置usb权限 因为ubuntu这样的系统都是默认以非root身份在运行的,要使用usb调试,需要sudo支持。 $ lsusb Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub …
Posted in java, 架构研究
Leave a comment
把手机当无线网卡-andriod usb0 ssh tunnle
小公司人员增长快,随着台式机日益加多,网速越来越慢,而wifi使用者却还不慢。于是就有了本文。 android手机通过usb共享网络很简单,只需要连上usb线后在手机设置里找到共享手机网络,打开即可。但是本文并非教如何连接usb线的。 图1 usb绑定设置pc共享android手机上网 ubuntu共享上网后,会发现连接不了线上的ssh,会等半天,报出no ruote。猜测是因为andriod手机的安全设置所致。其实本文重点讲如何ssh的。 先用android下载一个支持ssh的工具:connectbot。 打开软件,同时打开ubuntu,执行下面的语句安装sshd服务: apt-get install openSSL 然后启动sshd服务。 在connectbot中填写ubuntu机器ip,输入密码,ssh到ubuntu机器。 图2 用connectBot登录pc 这时按下菜单键,选择端口转发。选远端端口,填写2222,转发到192.168.1.1:22,确定以后,这个转发就建立了。 图3 connectBot端口转发 然后到ubuntu上执行ssh 127.0.0.1 -p2222 图4 我建立的端口转发 回车,输入192.168.1.1的密码,大功告成,成功利用端口转发打通了andriod手机共享usb0共享上网时的ssh。 关于ssh tunnel,详细见:http://www.54chen.com/_linux_/the-temporary-break-with-the-ssh-tunnel-restriction-cross-room.html
企业服务器监控及报警配置打造(ganglia and nagios)-part 1
系统简介: Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得 Ganglia 可以实现良好的扩展。gmond 带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。 我(54chen)的服务器操作系统:centos 5.5 x86_64 (六十四位centOS 5.5) 第一步,修改yum源 # cd /etc/yum.repos.d/ #vim dag.repo 写出如下信息: [dag] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt enabled=1 第二步,通过yum安装所有依赖 yum -y install …
squid缓存失效之谜:一步步提高squid缓存命中率办法记录
手里有个前端自己做cdn的服务器,结果发现进出流量相等,这是个诡异的事情,因为一般来说,做前端缓存的机器,流量基本上很长时间里都是出多进少的。 一开始的时候,是nginx做的nginx_cache,发现进出流量相等后,换上了squid 3.0,使用命令: squidclient -p 8088 mgr:info (启在8088) 发现如图所示的几个命中率,相当低下,一般的WEB服务器缓存30-60%是正常的,而CDN作用的应该说80%以上才是正常的。 刚启动squid的时候,个人认为是因为缓存文件还没有拖动到前端来,所以是正常的,但结果过了一天后,还是没有看到进流量松动。 第二天来,硬盘已经过了10G了,还是不行。通过cat access.log来看,cat access.log|gawk '{print $4}'|sort|uniq -c|sort -nr 发现TCP_MISS/200相当的多,再看流量图,进出还是没有变化。杯具。 于是乎,想到了直接tail -f access.log,看看究竟都有什么东西在访问。 一条接一条的xxx.jpg?unid=1111触动了我(公司用来做用户行为分析的参数),就这样白花花的浪费了缓存。 解决方案: 幸好,squid前面,还有一层nginx,于是考虑在nginx上做转发,将所有的xxx.jpg?xx=xx全部转到 xxx.jpg去,过滤掉url中的参数。尝试了几个不行,内置的参数$url $request_url都不可行。 只有一招利用403来跳转的可行。 location ~* (.jpg$)|(.png$)|(.gif$
创业公司技术选型参考
java推荐框架 web项目来说,spring、struts是必选,当然有更加好用的,推荐来自疱丁分词作者王志亮在人人网的rose框架,使用上手快,配置少,是创业公司java必备。 php框架推荐 zend framework,或者直接写个简单的框架,php的框架更加倾向去规范代码,让所有项目在新人加入时快速上手。 代码版本控制 subversion是必选工具,简单易学,git也开始流行,也是可选方案。 jar包依赖管理 这是针对java项目,还在使用ant的朋友,可以考虑换换了,特别的,如果你的公司在很快扩张的时候,这个选择能让未来避开依赖混乱,遇事集体更新困难的困境。 公共代码建立 长期可遇见的公共部分,比如用户信息获取,memcache管理,毋庸置疑地需要提供公共的方法,越早越好。 代码可扩展 这就考量上面选择框架的气候是不是合理了,这里可扩展是指,在负载越来越大的时候,要能很轻易配置读写分离,rose在这方面做得很优雅,只需要简单配置就梦把看的代码用上新的数据源。 code review 有许多好用的系统,比如Review Board等,让参与者都知道修改,并且在最早期发现问题。 bug系统 jira、Bugfree等等,用系统控制流程。 培训体系 技术需要交流才会有进步,团体的进步才是真的进步。所以尽早建立起内部的培训体系非常有必要,同时也是活跃团体气氛的很好方法,其频度控制在两周一次最好。 知识管理 php+mysql的mediawiki是首选,每个优秀的工程师,都必须首先是一个完全熟悉wiki语法擅长写wiki的工程师。早年搞了一个把mysql换成postgr
海纳百川——人人网海量存储系统Nuclear开发手记
此文为《程序员》杂志约稿,发表在2010年9月刊。怀念过去美好的时光和所有的UGC兄弟真挚友谊,谨以此文为个人职业发展阶段作一个美好的终结。以下是全文原稿。 2009年8月左右,由于业务扩展的需要,我们的团队开始了一个新项目的研发,其中需要完成一个存储系统,把评论数据聚合到一起同时还要提供线上的读写服务。这些评论来自不同的业务产品,数据量非常之巨大;同时对稳定性的要求非常高,因为如果出现宕机,将影响到大量的业务线。于是,我们开始了对此类系统的探索。 Nuclear 的由来 经过需求分析阶段,摆在我们面前的是五点要求:高可用、高可扩展、高性能、Key-Value存储、支持关系化查询。经过一段痛苦的系统选型分析,我们最终决定开发属于人人网的海量存储系统。Nuclear,正如其名,nuclear的未来将要肩负起整个评论系统存储的核反应般的压力爆发的重任。由于当时并没有这方面的经验,一切都是摸着石头过河,我们设计了好几期的雏形,一开始明显就是有问题的构架设计,慢慢地在学习和进步的过程中,团队的成员也在慢慢地成长,离我们的目标也越来越近。又因为业务模型的需要和方便分布到集群,这个系统慢慢演变,最后成为了一个可靠的分布式key- value存储系统。以下特将在研发过程中遇到的问题做一个总结。 Key-Value系统的优缺点 NoSQL系统在过去的一两年里,饱受了争议和技术界的目光。从原理上讲,基本上这类系统都会有一些相同的优点和缺点: 优点: 1. 只有高效的查询可用,性能是可想像的。 2. 容易分布到集群。 3. 可以很容易增加缓存层用来加
国内互联网公司数据库访问层调查
在WEB开发中,数据库的数据读写和传输一向是瓶颈,在此基础上的解决方案基本都是数据库连接层的设计,一个公司数据库连接层的牛B与否可以标识这个公司的全局规划的“工艺水平”到达一个什么样了。下面的内容来自明查暗访,决无BS之意,旨在提供给需要统一规划整体架构的架构师一个帮助。 54chen声明:本文所有内容本着技术分享的原则,收集资料皆来自网络,绝不透露不该透露的内容,绝不隐藏不该隐藏的内容(阿弥托佛,资本家万岁)。 1.人人网 参考:http://ugc.renren.com/2009/12/28/renren-ice-problem/ 关键词:ice中间层,统一配置数据源,开发者不关心分库分表 与很多大型的网站一样,人人网的系统全部是由开源软件构建的。使用Nginx做前端接入,resin做容器,Memcached做通用 cache,MySQL做数据库,使用Linux操作系统。 除了上述的部分外,人人网还有一个与众不同的中间层。中间层以服务的形式存在,位于MySQL和resin中间,提供高并发低成本的数据访问层。 2.百度 参考:http://wenku.baidu.com/view/9daa2b8102d276a200292e9c.html 关键词:dbproxy,服务器都是flash卡,DBA与开发者都不关心分裤分表(半自动) 百度的dbproxy利器,将mysql的管理半自动化,HA等功能一应俱全,再加上SSD等硬件支持,性能相当不一般。 3.盛大-技术保障中心 参考:网友 关键词:无中间件,每个系统一个数据库,开发者严重关心分库分表 4.新浪 参考:网友 关键词:无
大型网站登录项目的重要性
中国互联网最不缺少的就是复制,为什么美国一个行业的网站都是一家独大?有人说是因为他们上网的人少,先入为主的效果比较大,后面进入市场的网站基本都存活不久。 而在国内,大家都在把皮毛抄来抄去,真正的核心却是抄不去的,比如说登录。 登录,垃圾广告的第一关 网站大了,自然被一堆的spam盯上,少量的spam不会怎么样,但是到处是牛皮蘚一样的广告,给网站的正常用户的感觉可想而知。 大多数网站针对这些spam有着以下的一堆策略: 1.anti Spam项目针对各种各样的关键词一概禁止发 坏处:关键词越来越多性能越来越差。 2.举报项目让自觉的用户去举报 坏处:往往还没有举报用户就走掉了。 3.对发送次数过多的用户判断发送次数,次数过多的出验证码 坏处:正常用户也可能会被影响。 看国内网站的登录 1)豆瓣:登录强度指数1 无https,无验证码,无加密,用代码模拟登录http://www.douban.com/login轻而易举,不知为何在豆瓣似乎看不到诸如淘宝商城之类的广告,看来另有人肉在?求验证。 2)人人网:登录强度指数1 薄弱原因,未统一入口,无加密,http://3g.renren.com/login.do?fx=0&autoLogin=true无https,无验证码,用代码模拟登录非常简单,淘宝小广告、陌生人加好友现象普遍存在(也可能是我经常用的缘故)。 3)百度:登录强度指数2 采用两次取票,https传送,比前两位稍强,但对于执意要模拟登录来说,丝毫没有增加难度,只是多发几次请求而已。 4)腾讯:登录强度指数4 这个最强,统一前后端,统一入口,虽未启用http
SEARCH
Update
- 54chen Twitter memo 2012-02-12
- 人肉解析riak_admin join
- go语言安装手记
- 54chen Twitter memo 2012-02-05
- Riak Core说明
- maven库nexus拖不到jar包小记
- 服务接入层小结
- 54chen Twitter memo 2012-01-15
- nginx防hashdos模块使用帮助
- 54chen Twitter memo 2012-01-08
- nginx防hashdos模块释出
- 54chen Twitter memo 2012-01-01
- 水煮鱼杯2011年度不得不总结的十件事
- 年终攻击hashDos-哈希表多碰撞实现拒绝服务-破解办法
- 54chen Twitter memo 2011-12-25
