岚天逸见

2012年7月24日 #

Dash与Bash的语法区别

摘要: 本文系转载,原文URL为:http://www.igigo.net/archives/169如今Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交互,它速度更快,但功能相比bash... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(345) 评论(0) 推荐(0) 编辑

MOOON-server新消息处理接口

摘要: MOOON-server提供了一个通用的TCP框架,并对包的解析抽象出了IPacketHandler接口,这个接口提供了无限制的宽容度,支持任何协议,但是增加了使用复杂。 由于大多数协议,都会定义一个消息包大小字段,基于这个前提,MOOON-server... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(76) 评论(0) 推荐(0) 编辑

不再担心日志文件过大:通用日志滚动脚本

摘要: #!/bin/sh# https://github.com/eyjian/mooon/blob/master/mooon/shell/log_rotater.sh# Writed by yijian on 2012/7/22## Linux自带的工具logrotate... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(441) 评论(1) 推荐(0) 编辑

改进后的日志类CLogger

摘要: 在原有的基础上增加了module_name,表示模块名,当一个系统由多模块组成时,输出的日志将更加清晰,使用方法,以MOOON-agent中的为例:点击(此处)折叠或打开#define AGENT_MODULE_NAME "AGENT"#define AGENT_LO... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(307) 评论(0) 推荐(0) 编辑

开发理念和用户体验

摘要: 开发理念:要有追求美的意识,简就是美。要形成自己的思想,设计需要灵魂。模式模式有时是恶魔,它容易让你走上抄袭模仿之路。把职责单一作为第一原则,并努力遵守,将让你柳暗花明又一村。一切源于生活,多和生活类比,能让理解更为深刻透彻。始终抱严谨心态,用心思考,细节决定品质。用... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(165) 评论(0) 推荐(0) 编辑

怎么做自动化

摘要: 在做系统时,不应当盲目地去做自动化,原因有两点:1.有些自动化的代价非常高,反不如人工简单实在2.有些自动化不能保证系统的正确性,它需要人工确认不过,这些也并不应当成为推进自动化的理由,自动化它可以带来两方面巨大的好处:1.大大降低运维工作量2.快速的进行故障恢复所以... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(209) 评论(0) 推荐(0) 编辑

来自mooon的最简单的日志类CSimpleLogger

摘要: /** * 单个头文件,可即时独立使用,只要定义了宏NOT_WITH_MOOON,即不依赖于mooon * 简单的写日志类,非线程安全,提供按大小滚动功能 * 不追求功能,也不追求性能,只求简单,若要功能强、性能高,可以使用CLogger * * 使用方法: * 1)... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(149) 评论(0) 推荐(0) 编辑

优雅的让一个类在线程安全和线程非安全间切换

摘要: 一个良好的多线程库,不应当一刀切的全加锁。因为有些时候,虽然是多线程环境,但可能依照设计一个类只会被一个线程操作,这个时候加锁是多余的,纯浪费性能,但另一些场景又需要它是线程安全的。假设有一个类X:class X{public: void xoo();};这里总... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(157) 评论(0) 推荐(0) 编辑

简单的主备切换方案

摘要: 主备切换是很多高可用性系统都必须解决的问题,方法有很多,象基于ZooKeeper的主备切换就是一个很好的选择。在这里提供一种更简单但不完美的主备切换方法:1) 假设A和B是集群中的主控(Master)节点2) 1~7是工作节点(如HDFS中的DataNode)... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(911) 评论(0) 推荐(0) 编辑

内网软件设计要领

摘要: 内网软件指的是只为一个企业内部提供服务的软件,它和外网软件有个很大不同 —— 即节点数是相对稳定的而且是非常有限的,在设计时可以充分利用这一特点进行简化。比如设计一款在各IDC间传输数据(文件或消息)的软件时,完全可以建立一对一的连接(为支持重连,可以为会话Sessi... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(136) 评论(0) 推荐(0) 编辑

Linux与网卡相关的几个命名

摘要: ifup - start a preconfigured net interface.ifdown - stop a (preconfigured) net interface.ifstatus - show the state of a (preconfigured... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(124) 评论(0) 推荐(0) 编辑

细节决定品质:不良的if/else使用习惯

摘要: 代码重构无处不在,重点滴做起。经常见到一些下面这样的代码:1、不要拿bool和false直接比if (false == IsXXX()){}这是画蛇添足,费力不会讨好,直接了当即可:if (!IsXXX())2、太多的if/else嵌套,导致过多缩进,造成眼花缭乱,阅... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(209) 评论(0) 推荐(0) 编辑

源于生活的设计之一:职责问题

摘要: 我相信大家在工作时,都厌烦手上同时有多个项目,特别是运维多个项目,那么我们在做软件设计时,也应当如此,我们不能给一个对象赋予太多责任,并尽量将主要的剥离出来单独实现(比如mooon中将异步收发数据的状态机剥离出来成了单独可复用的类CRecvMachine和CSendM... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(97) 评论(0) 推荐(0) 编辑

Linux下显示目录树的源代码包

摘要: 作者:Steve Baker (ice@mama.indstate.edu) tree-1.5.1.rar tree-1.5.1.zip 解压后,执行make即可编译成功,并生成可执行文件tree。 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(149) 评论(0) 推荐(0) 编辑

Linux下select使用陷阱

摘要: Select函数使用简单,其工作原理大家通常也知道,但是在实际的使用过程中可能并没有严格遵守,而且确实也比较难以完全遵守,除非不使用它。Select采用一个bit表,每个fd对应表中的一个bit位,宏FD_SETSIZE为表的大小,添加到fd_set中的fd值必须小于... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(783) 评论(0) 推荐(0) 编辑

MOOON-scheduler设计图更新

摘要: 初稿设计:http://blog.chinaunix.net/uid-20682147-id-3252602.html在上一版本的基础上,进行了细化和关系调整,并考虑了Service在线升级,升级过程中,会同时存在两个不同版本的Service,这可以从CService... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(73) 评论(0) 推荐(0) 编辑

基于/proc统计网络流量的脚本

摘要: #!/bin/sh# 下载:https://github.com/eyjian/libmooon/tree/master/shell# 流量统计工具# 可带一个两个:# 参数1:网卡名,如eth0或eth1等# 参数2:统计次数# 参数3:统计间隔(秒)# 输出格式:... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(127) 评论(0) 推荐(0) 编辑

简单的统计指定进程ID(或进程名)CPU、内存脚本

摘要: 仅一行脚本,复制粘贴即可使用。按进程名:while true; do ps h -o pcpu,vsize,rss -C 进程名; sleep 2; done按进程ID:while true; do ps h -o pcpu,vsize,rss -p 进程ID; sl... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(180) 评论(0) 推荐(0) 编辑

linux下测试磁盘的读写IO速度

摘要: 有时候我们在做维护的时候,总会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数设置不当导致热盘的问题.这时候通常希望能知道磁盘的读写速度,来进行下一步的决策.下面是两种测试方法:(1)使用hdparm命令这是一个是用来获取ATA/IDE硬盘的参数的命令,... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(132) 评论(0) 推荐(0) 编辑

Linux的Proc文件系统详解

摘要: Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系 统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(528) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示