自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(190)
  • 收藏
  • 关注

转载 Web 通信 之 长连接、长轮询(long polling)

基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。一、什么是长连接、长轮询?用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息。这里的“不停”其实是有停止的,只是我们人眼无法分辨是否停止,它只是一种快速的停下然后又立即开始连接而已。

2016-03-09 20:00:35 592

转载 windows 下安装 nessus

转载地址:http://my.oschina.net/u/1585857/blog/477035Nessus漏洞扫描教程之安装Nessus工具Nessus基础知识Nessus号称是世界上最流行的漏洞扫描程序,全世界有超过75000个组织在使用它。该工具提供完整的电脑漏洞扫描服务,并随时更新其漏洞数据库。Nessus不同于传统的漏洞扫描软件,Nessus可

2015-12-28 17:11:47 2547

原创 sequoiadb 数据库引擎处理查询语句流程

最近国内的一个类mongodb的nosql数据库--SequoiaDB开源了,做为一个开源爱好者,抱着玩玩的心态,从他们官网上下载了个最新的安装包和源代码,自行研究了下。下面的内容是我在试玩过程中,记录下的一些笔记,大概是结合它的源码来解析如何执行一条query语句的过程。          按照它官网上的技术文档,在pc机上安装并成功部署一个集群,文档还算详细,也没遇到什么问题。接着尝试

2014-12-31 14:30:24 848

转载 Linux监控命令全覆盖

1.1 top1.1.1 命令说明Top 命令能够实时监控系统的运行状态,并且可以按照cpu、内存和执行时间进行排序 1.1.2 参数说明命令行启动参数:用法: top -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...]-b : 批次模式运行。通常用作来将to

2014-12-18 10:14:06 411

转载 http 头信息详解

HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码

2014-12-10 23:16:56 456

转载 【问底】徐汉彬:大规模网站架构的缓存机制和几何分形学

在过去的工作中,徐汉彬从事各类缓存建设和优化,遇到问题无数,从各种各样的问题中,逐渐总结出它们之间的“共性”,而这个“共性”又优雅地遵循“几何分形学”。从几何分形的角度去看待缓存机制,能够更容易和更清晰地表述出它的深层原理和部署思想。帮助技术人员去解决在缓存上遇到的技术问题。PS:在《问底》之后的系列里,徐汉彬将带大家探讨跨机房热备份疑难与解析、缓存命中率提高等实践经验。缓存机

2014-12-03 13:15:15 963

转载 【问底】徐汉彬:亿级Web系统搭建——单机到分布式集群

大规模流量的网站架构,从来都是慢慢“成长”而来。而这个过程中,会遇到很多问题,在不断解决问题的过程中,Web系统变得越来越大。并且,新的挑战又往往出现在旧的解决方案之上。希望这篇文章能够为技术人员提供一定的参考和帮助。 以下为原文当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这

2014-12-03 11:36:21 622

转载 【问底】李平:大型网站的灵魂——性能

在前一篇随笔 大型网站系统架构的演化中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。所以我打算写一个系列,从理论到实践讲述大型网站的点滴,这也是一个共同学习的过程,希望自己能坚持下去。系列大概会分为两部分,理论和实践,理论部分尽量通俗易懂,也要讲一些细节。实践部分会抽取一些技术做实践,将方

2014-12-03 11:13:23 1147

转载 【问底】徐汉彬:Web系统大规模并发——电商秒杀与抢购

电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化,同时,从技术层面揭开,为什么我们总是不容易抢到火车票的原因? 一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,

2014-12-03 10:34:53 628

转载 离线安装CDH 5

关于CDH和Cloudera ManagerCDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务

2014-10-30 17:40:01 781

转载 友元函数与友元类

友元函数和友元类        采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检

2014-09-18 09:49:16 328

转载 gdb 带参数调试

一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要 把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如: > cc -g hello.c -o hello > g++ -g hello.cpp -o hello 如果没有-g,你将看不见程序的函数名、变量名,所代替的全是 运行时的

2014-09-10 14:17:13 385

原创 将博客搬至51CTO

现在我的博客都是工作

2014-09-05 21:45:34 351

转载 堆的建立与堆排序

http://ahalei.blog.51cto.com/4767671/1425314http://ahalei.blog.51cto.com/4767671/1427156

2014-09-05 13:34:07 366

转载 linux 安装并配置github

安装apt-get install git方法/步骤注册好账号后我们需要建立一个仓库.(注:选把私有仓库是会提示付费的,价格详见网站内说明)配置本的SSH KEY 才可以使远程跟本地连接(1,检查本地SSH KEY生成情况;(如果出现““No such file or directory”或类似的语句,说明缺少ss

2014-09-05 00:51:57 450

转载 github 常用的命令

1 Git简介 Git是用C语言开发的分布版本控制系统。版本控制系统可以保留一个文件集合的历史记录,并能回滚到另外一个状态(历史记录状态)。对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改 (modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已

2014-09-04 22:23:14 263

原创 linux 共享库问题

很多时候,我们新安装的共享库不是安装

2014-09-04 15:47:23 313

原创 使用boost库

./booststrap.sh --prefix=././bjam link=static threadind=multi variant=release address-model=64 toolset=gcc runtime-link=static#include  #include  #include    int main()  {  

2014-09-03 14:35:54 384

转载 nginx 配置

#运行用户user nobody;#启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误日志及PID文件#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pi

2014-09-02 13:51:41 297

转载 nagios安装与配置

一、Nagios简介  Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。  Nagios原名为NetSaint,由Ethan Galstad开发并维护至今。NAGIOS是一个缩写形

2014-09-02 13:51:30 353

转载 php-fpm 安装

nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。nginx一般是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx本文以php-fpm为例介绍如何使nginx支持PHP一、编译安装php-fpm什么是PHP-FPMPHP-F

2014-09-02 13:51:05 420

转载 nginx 安装

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。ububtu平台编译环境可以使用以下指令apt-get install build-essentialapt-get install libtoolcentos平台编译环境使用如下指令安

2014-09-02 13:50:03 309

转载 Linux c++ 测试框架 gtest使用简介

(0)gtest是什么gtest是一个跨平台的C++测试框架,google作品。它支持自动发现测试,断言集,用户定义的断言,death测试,致命与非致命的失败,类型参数化测试,各类运行测试的选项和XML的测试报告。(1)下载gtest地址:http://code.google.com/p/googletest/downloads/list笔者下载的版本是1.6.0h

2014-09-01 16:16:51 590

转载 ssh建立信任关系

为了方便管理,特别是在机器众多的时候,免密码登录系统就显得很需要了。建立信任关系其实很简单……模拟情况,A机器想要免密码用ssh登录B机器:1、生成A机器的公私钥匙对,英文原文是这样的:Generating public/private rsa key pair.用这条命令生成:ssh-keygen -b 1024 -

2014-08-20 11:09:04 486

转载 NoSQL数据库的分布式算法

NoSQL数据库的分布式算法作者:nosqlfan on 星期四, 十一月 22, 2012 · 评论本文 【阅读:13,245 次】本文英文原文发表于知名技术博客《Highly Scalable Blog》,对NoSQL数据库中的分布式算法和思想进行了详细的讲解。文章很长,由@juliashine 进行翻译投稿。感谢译者的共享精神!译者介绍:Julia

2014-08-07 11:57:49 806 1

转载 各种hash 函数

常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到碰撞。         常用字符串哈希函数有 BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash等等。对于以

2014-08-06 13:46:06 482

转载 研发会议。

研发队伍大了,难免要开会。开得频繁了,一周好几次,甚至一天几次(不考虑敏捷开发的每日站会);不太频繁的,也可能一周一次。    会,我们经常开,但怎样开才有效呢?    有一次去电信,电信的会议室墙壁上非常醒目地悬挂了一副相框,内嵌了一张高效率会议的警文,可以拿来借鉴一下:您知道本次会议要解决的问题吗?您知道本次会议中的角色吗?本次会议谁做出会议决定?您在会议中承担

2014-08-01 15:37:22 330

转载 可以做为程序员的优点。

本人做研发管理,以我有限的经验,谈谈主管喜欢什么样的程序员。可能会遭人吐槽,木关系,评论栏开着呢。     我们常说一个词,自我激励。对得起这个词的程序员最受领导欢迎。有工作任务,能尽职尽责完成,要求100分,做到120,而且还不用在后面盯着。没工作任务,能结合既有工作范畴工作经验以点带面进行自我学习、改善、提升,做各种各样的技能储备,不把有限的时间浪费在无所事事中。    好吧,

2014-08-01 15:36:28 439

转载 一个百度员工的辞职后感

2014年7月4日,我从百度离职了。  这是第一次,我不是因为和老板闹翻而离职;  这是第一次,我带着晋升的喜悦而离职;  这是第一次,我带着满满的收获而离职。  我曾经认为,我永远不会成为一个好员工,因为我太独、太挑剔、不喜欢听话的好孩子、而且讨厌一切想要改变我的人。但是三年过去,我改变了不少,我必须承认,所谓“进步”的过程,就是被认可的过程,也是被“驯化”的过程

2014-07-31 15:49:31 515

转载 open与fopen区别

最近进行socket编程,发现很多时候都是wopen和fopen的区别:1.缓冲文件系统缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”, 装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。由此可以看出,内存

2014-07-22 20:27:52 375

转载 Linux 分析死锁的方法

简介死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊

2014-07-22 10:37:51 504

转载 解决服务器出现大量time_wait 的方法

今天早上一上班,有同事就反映公司好几个网站都打不开,登陆数据库服务器(windows),发现很卡,于是重启了下服务器,进入系统后,没过一会问题依旧,查看了下系统进程,发现mysql占用率达到99%,可以肯定的是mysql连接出现问题:netstat -an192.168.12.13:3306      192.168.12.12:30443      TIME_WAIT192.16

2014-07-19 14:40:32 1234

转载 TCP timewait 原理

TCP/IP TIME_WAIT状态原理博客分类:网络协议-TCP/HTTP TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进

2014-07-19 14:38:19 415

转载 TCP close_wait 与 time_wait

这个问题之前没有怎么留意过,是最近在面试过程中遇到的一个问题,面了两家公司,两家公司竟然都面到到了这个问题,不得不使我开始关注这个问题。说起CLOSE_WAIT状态,如果不知道的话,还是先瞧一下TCP的状态转移图吧。关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机检测

2014-07-18 21:34:52 311

转载 Linux 虚拟内存,用户空间,内核空间

Linux虚拟内存的大小为2^32(在32位的x86机器上),内核将这4G字节的空间分为两部分。最高的1G字节(从虚地址0xC0000000到0xFFFFFFFF)供内核使用,称为“内核空间”。而较低的3G字节(从虚地址0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间”。因为每个进程可以通过系统调用进入内核,因此,Linux内核空间由系统内的所有进程共享。于是,从具体进

2014-07-18 14:00:46 742 1

转载 TCP 中的EAGAIN错误

在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。    从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作而没有数据可读。此时程序不会阻塞

2014-07-17 23:13:15 1711

转载 TCP 协议疑难解析

说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看起来是要比代码更轻松的3).针对对象:对TCP已经有了全面了解的人。因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,

2014-07-17 23:01:58 741

转载 Linux网络编程三:非阻塞epoll

Epoll引入Epoll在linux 2.6内核中引入,替代了以前的select/poll模型,能够充分支持linux下的大规模并发网络程序。Epoll和其他linux下并发网络程序对比PPC典型的Apache模型,Process Per Connection,为每一个新的连接创建一个进程进行相关的处理。TPCThread Per Connection,为每一个新的连接创建

2014-07-17 22:44:36 1038

转载 Linux 网络编程二:非阻塞select

函数声明select函数int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);说明:int maxfdp是一个整数值,是指集合中所有文件描述符的范围,即所有文件描述符的最大值加1。fd_set *readfds是指向fd_set结构的

2014-07-17 22:43:38 385

转载 Linux 网络编程一:基本阻塞通信

基本流程服务器端声明句柄fd和网络地址sockaddr_in赋值sockaddr_in为服务器的端口和INADDR_ANY表明监听任意连接调用socket函数创建一个socket并赋值句柄为fd调用bind函数将句柄fd和网络地址sockaddr_in进行绑定调用listen函数开始监听客户端的连接调用accept函数获得连接的客户端调用send recv函数进行数据发

2014-07-17 22:39:40 296

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除