IT技术博客大学习 共学习 共进步

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

采集自各技术站点的近期文章。

IT 系统架构/ 2014-03-20 23:08:58 / 累计浏览 6,647

微信二维码登录的原理

在电脑上使用微信时,你可能已经发现微信不提供传统的账号密码登陆,取而代之的是通过扫描二维码进行登陆。今天就要研究下次登陆方式微信时如何实现的?

IT 系统运维/ 2014-03-20 23:06:07 / 累计浏览 4,153

web业务尽快升级到centos 6.4的理由

最近看到centos 6.4网络底层变化了不少的东西,建议做web业务的,尤其是做CDN业务系统建议都升级到centos 6.4的版本,下面我说说升级的理由。

IT 系统运维/ 2014-03-20 23:05:36 / 累计浏览 4,207

linux单机根据ip查看流量

我们有些机房是双线机房,一般的机器上面只有2个网卡,而我们搭建网络,一般有外网,内网,由于是双线,就存在电信跟网通2个ip,再加一个内网ip,就存在3个ip,这样的话,在同一个网卡上面就同时存在电信的ip以及网通的ip就不可避免,这个时候,我们想知道这个机器电信跑了多少的流量,网通跑了多少的流量,系统也没有提供相关的查看方法,在互联网上面找了一圈,也没有找到相关的工具,最后没有办法,只能自动动手,丰衣足食.花了一点点时间,学习一下systemtap,下面就贴一下我写的一个简单的脚本程序。

IT 系统运维/ 2014-03-20 23:04:14 / 累计浏览 7,829

python实现一个P2P文件发布

考虑到我手上的服务器逐渐的增多,有时候需要大规模的部署同一个文件,例如因为方便使用systemtap这个工具定位问题,需要把手上几百台服务器同时安装kernel-debuginfo这个包,原有的方式采用一个源服务器,采用rsync或者scp之类的文件传输方式只能做到一个点往下分发这个文件,这个时候下发的速度就会比较的慢,基于以上原因,我写了一个基于bt协议传输文件的小工具,实际测试,传输到10个机房,70多台机器传输一个240M的这个内核文件,到所有的机器,源采用限速2m/s的上传速度,测试的结果大概只要140s,就可以全部传输完毕,这个效率是非常之高,如果不限速的情况下速度会更快,下面把这个程序开源出来。

IT 系统运维/ 2014-03-20 23:03:09 / 累计浏览 4,087

SSH日常用法小例

现代社会,熟练使用ssh是一项必不可少的技能,下面是我日常使用ssh的一些小总结。 注意:测试全部是在linux系统上进行,如果你使用windows系统,可以好好研究putty和xshell的各类选项,一定会找到实现的办法!

IT 系统运维/ 2014-03-20 23:02:05 / 累计浏览 2,844

底层通讯协议问题排查案例

最近每天抽调一点时间充当客服工作,解决用户的技术问题,在充当客服工作当中,遇到各种形形色色的问题,才知道以前自认为不是问题的问题现在都成为了问题,在问题的分析,解决过程中相当的困惑人,有时候同一个问题分析好几天,尝试各种方式,最后到问题的解决,解决问题后,那种兴奋是无法用语言来形容,感谢用户容忍我们这么不停的折腾,在这个过程当中,让我了解到一些更底层的东西,对于自身也是一个很大的提高。下面说说遇到几个问题的案例吧。

IT 系统运维/ 2014-03-20 23:00:07 / 累计浏览 2,386

大量小包的CPU密集型系统调优案例一则

我的blog前面有一篇文章描述了软终端导致单cpu消耗100%,导致机器丢包跟延迟高的问题,文中我只是简单的说明了一下升级内核进行解决的,这个问题我并没有进行一个问题解决的说明,经历了一系列的调整后,单机的并发从单机单网卡承受100M流量到160M流量,到现在的最高的230M流量,在程序没有大规模修改的情况下效果还是十分的明显,这次这篇文章将完整的说一下我的一个解决方法。

IT 网络系统/ 2014-03-20 22:58:48 / 累计浏览 2,004

分地区访问解决方案

现有的服务有很多的情况对不同的地区对同一个域名,显示不同的内容。例如广告系统,针对一个不同的地域显示不同的广告内容。可以通过动态页面根据来源IP显示不同的内容,毕竟动态页面消耗的资源还是比较的高,另外一个做法根据来源IP作一个301跳转。这两种方式做法消耗资源还是有点大,另外的一种做法是从local dns方面进行的一个dns view的方式进行的地区访问限制,这种方式的好处就是不需要在应用程序和服务器端做任何的修改,只需要配置一个dns的view就可以了,缺点是误判太多。

IT 编程语言/ 2014-03-20 22:56:50 / 累计浏览 2,625

Python修饰器的函数式编程

Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。虽然好像,他们要干的事都很相似——都是想要对一个已有的模块做一些“修饰工作”,所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能)侵入到原有的模块中的代码里去。但是OO的Decorator简直就是一场恶梦,不信你就去看看wikipedia上的词条(Decorator Pattern)里的UML图和那些代码,这就是我在《 从面向对象的设计模式看软件设计》“餐后甜点”一节中说的,OO鼓励了——“厚重地胶合和复杂层次”,也是《 如此理解面向对象编程》中所说的“OO的狂热者们非常害怕处理数据”,Decorator Pattern搞出来的代码简直就是OO的反面教程。

IT 系统运维/ 2014-03-19 23:21:27 / 累计浏览 2,949

在tomcat应用中获得原始IP

Apache/Nginx 通常被放在tomcat前作为http代理:browser -> apache -> tomcat。但是缺点是丢失了很多原有的网络信息:ip、hostname、protocol(用的是http还是 https),比如,当java程序想生成http重定向请求的时候会遇到麻烦。因为HTTP头部的Location字段的值必须是绝对URL。重定向的问题勉强可以交给前面的proxy来解决(让apache重写header),但是藏在http body中的各种链接问题就棘手多了。比如当从一个html页面载入一个外部资源时,资源的链接到底是写http的还是https的呢?

IT Linux/ 2014-03-19 23:04:03 / 累计浏览 3,733

linux下cp,mv进行动态库覆盖问题分析

问题的起因在来源于周会上钟老板提出的一个问题,cp新的so文件替换老的so,会导致程序core掉。这个问题引起了大家的热烈讨论,其中提及了的名词有inode,dentry,buserror等,比较混乱,由于功力浅薄,当时也没有十分清楚引起core掉的原因。于是乎趁着10.1的休息时间,闲里偷忙,理一理当时的问题,有不对之处,还请大家多多指出。

IT 网络系统/ 2014-03-19 23:03:04 / 累计浏览 12,949

自建DNS以防止GFW干扰

国内用户无法访问youtube的主要原因是当浏览器进行DNS查询时GFW 会拦截此请求并返回错误的结果。那么一个解决办法就是采用更安全的传输方式。DNS请求默认是采用UDP协议,它是无连接的,所以UDP协议头部的IP地址非常容易被伪造,拦截的成本很低。但是DNS也支持tcp协议,经众多网友测试,GFW 不会处理TCP形式的DNS请求。

IT 系统架构/ 2014-03-19 23:01:03 / 累计浏览 2,844

IO不再神秘

随着所有的在高可用服务器设计上的炒作,以及nodejs背后的风行,我想关注一些IO的设计模式,却一起没有足够的时间。现在正在完成的一些研究,我想最好记下这些资料以备查。让我们跳上IO bus兜风去。

IT Oracle/ 2014-03-19 22:47:55 / 累计浏览 4,525

undo异常总结和恢复思路

UNDO异常报错千奇百怪,针对本人遇到的比较常见的undo异常报错进行汇总,仅供参考,数据库恢复过程是千奇百怪的,不能照搬硬套.

IT 源码分析/ 2014-03-19 22:44:47 / 累计浏览 3,890

怎样用core文件调试你的linux程序?

core dump 文件对于诊断linux中程序的问题非常有用。当程序异常退出的时候,可能会生成core文件。如,程序写一个不属于他的内存,操作系统出于保护,会发信号给程序,程序可能会因此而退出,退出的时候可能会生成core文件。我们可以通过分析core文件,找出程序中那里有内存问题。这篇文章主要是阐述生成core文件需要做的一些设置。

IT JavaScript/ 2014-03-19 22:42:44 / 累计浏览 3,686

Beforeunload打点丢失原因分析及解决方案

当点击浏览器的当前页面某个元素后,当前页面创建image对象,并把这个image对象的src设为指向打点服务器的url,发送打点请求。接着,当前页又向页面服务器发送页面跳转请求。假设页面服务器很快就返回了请求的html, 则浏览器窗口接收到页面服务器的响应后,开始卸载保存在用户内存中的跟当前页面的有关的所有元素,包括刚才创建的用来向打点服务器发送打点的image对象。

IT CSS/HTML/ 2014-03-19 22:39:44 / 累计浏览 3,443

让前端工作更快、更智能:利用StaticPage自动化工作流

对于前端的工作,经常会有专题页或者静态页的需求,这段时间做了几个静态页面的需求,自己摸索出了一些门道,在这里分享一下自己对此类开发工作的一些经验和流程,以及自己的一些思考,希望能对大家有所帮助。

IT CSS/HTML/ 2014-03-19 22:33:31 / 累计浏览 6,508

使用CSS3开启GPU硬件加速提升网站动画渲染性能

通过开启GPU硬件加速虽然可以提升动画渲染性能或解决一些棘手问题,但使用仍需谨慎,使用前一定要进行严谨的测试,否则它反而会大量占用浏览网页用户的系统资源,尤其是在移动端,肆无忌惮的开启GPU硬件加速会导致大量消耗设备电量,降低电池寿命等问题。

IT JavaScript/ 2014-03-19 22:31:40 / 累计浏览 1,684

人人网首页拖拽上传详解(HTML5 Drag&Drop、FileReader API、formdata)

关于这个拖拽上传,其实国外有很多网站已经有这样的应用,最早推出拖拽上传应用的是Gmail,它支持标准浏览器下拖拽本地文件到浏览器中作为邮件的附件发送。人人网的这个拖拽上传也是同理,可以让使用标准浏览器的用户通过简单的拖拽行为,将本地文件夹中的照片直接上传到人人网,用户体验能得到提升。