自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sunnydogzhou的专栏

坏坏的阳光狗

  • 博客(12)
  • 收藏
  • 关注

原创 常用设计模式总结--生成器模式

Builder,生成器模式。Builder模式将一个对象的创建与表示分离,从而使得相同的创建过程可以创建出不同的表示对象。仍以汽车工厂举例,一个汽车集团下面有许多工厂,每个工厂生产出不同的车型。站在集团的层面,其实集团只需要知道工厂造轮子,造引擎,而并不关心轮子的具体尺寸,引擎的具体马力,它只需要知道工厂最终返回的给它的是一辆完整的汽车,就一切ok类图在这个类图中,省略了Wheel,Engine,Vehicle。DasAuto为新引入的一个类,包含着一个对具体builder父类的引用。而VehicleBui

2011-05-24 23:34:00 1056

原创 常用设计模式总结--抽象工厂

Abstract Factory,抽象工厂抽象工厂是一种创建型方法,所谓工厂,顾名思义就是一个车间,里面生产各种各样的组件,既然是抽象的,对应到代码里面,就是定义一些抽象的方法,然后在集体的工厂里面实现。用传统的制造业来举例比较恰当,比如汽车制造业,现在的汽车制造业都已经集团化了,每家汽车制造商都有好多工厂,每个工厂用来生产某几个具体型号的轿车。站在集团的角度,每个工厂都生产引擎,轮胎,然后拼装成整车。从软件的角度抽象,引擎、轮胎都有统一的父类element,而每个工厂也有着统一的父类VehicleFact

2011-05-22 21:43:00 899

原创 基于libevent2.0的ministored的http框架--client端

协议啥的都在上一篇日志《基于libevent2.0的ministored的http框架--server端》说啦,client短还是废话少说,直接上代码吧!包含了put和get的操作以及部分的测试代码,gcc下编译可以直接通过!#include #include #include #include #include #include #include #include "base64.h"struct request_context{    struct evhttp_ur

2011-05-22 18:49:00 3634 1

原创 基于libevent2.0的ministored的http框架--server端

将Ministored从libevent1.4升级到2.0以后,花了两天额外的时间来做调试这个http的框架。按照开发的设想,这个ministored支持四个基本的操作put、get、delete、status;在经过几个版本的改动以后,协议如下:1)数据通过post的方式提交2)各个基本操作通过一个自定义的Http的头method来区分。而client和server之间的传送的二进制数据通过base64编码以后的字符串发送。数据附加在post操作提交的字符缓冲区中。     2.1 put操作需要的数据k

2011-05-22 18:31:00 3714 2

原创 C split函数

<br />前两天写ministored的时候,发现需要用到字符串的分割,花了点时间写了一个,后来发现不需要了,放在这个,留着以后备用。<br /> <br /><br />int count(char * str,const char * delim){<br />    int num = 0;<br />    while( NULL != ( str = strstr(str,delim) ) ){<br />        str ++;    <br />        nu

2011-05-22 18:00:00 9869

原创 switch引发的错误 a label can only be part of a statement and a declaration is not a statement

<br />用switch的时候发现一个错误<br />a label can only be part of a statement and a declaration is not a statement<br /> <br />仔细观察以后发现是没有正确的加大括号引起的。<br /> <br />出错的代码如下<br />swtch (a)<br />case 'a':<br />    ... ...<br />    ... ...<br />    break;<br />case 'b':<b

2011-05-22 15:52:00 7196

原创 从libevent1.4到libevent2.0碰到的问题,struct evhttp_uri在头文件只有声明

<br />最近做ministored的时候用libevent来搭建基于http的框架,手头的库是去年从官网上下来的1.4 stable的版本,开发完服务器端程序以后,发现libevent 1.4对于客户端程序的支持不尽如人意,于是手动写了一个tcp的客户端来发送http的协议。一切ok!<br /> <br />后来无意中跑去官网上看了看,发现libevent 2.0有stable了,忍不住下了一个下来看看,make install之后开始了我的一天的悲剧之旅。安装完以后,发现Libeve

2011-05-21 12:05:00 5950 2

原创 在http协议中传输二进制的数据--base64实现

<br />做Ministored的时候发现一个问题,用http传输二进制的数据时,需要将二进制做一下转化,出现了以下的问题。<br />简单概括如下:<br />1) 不知道传输字节的具体长度,如传输的int类型,将int类型之间转为char以后,丢失掉了长度的信息,如数字1234567,本来只有4个字节,但是转化成文本的“1234567”是有7个字节。在int类型的时候固然好办,但是一个数组的时候,经过转化以后,在转化回来就很麻烦了。<br />2) 对于一些数字,二进制传输Server是没法处理的。如

2011-05-18 20:22:00 17265 1

原创 Ministored--基于libevent的简单网络内存存储

<br />Ministore做完以后,一直有个想法,给ministore添加一个网络的接口,这样ministore就可以可以提供网络服务,从而能够提供更多的使用场景。去年写了一个大概的框架之后,忙于手头的各种工作,就放在这里。今年在做代码整理的的时候,发现以前ministore实现的功能最好拆分出来做成一个单独的服务。于是把尘封的代码拿出来,在去年的工作上继续。<br /> <br />在网络协议上打算采用http协议,为啥子是http,因为http简单,可以支持多种语言,c、java、php都可以。服务

2011-05-18 20:05:00 1380

原创 Java的多线程编程模型 1

<br />发现对于Java的多线程编程模型需要深入了解,打算<br /><br />Java多线程的类库封装在java.util.concurrent.*中,java1.4到1.5的变化就是引入了这个支持并发编程的类库。首先得感谢下大名鼎鼎人类库作者Doug Lea,牛人总是让人膜拜的。<br /><br />1 什么是线程安全<br />A class is thread-safe if it behaves correctly when accessed from multiple thr

2011-05-16 23:14:00 1971 1

原创 Cassandra的互备配置

<br />我们在做存储的时候,很多时候在都需要考虑灾备,一般都采用主备的模式。我们自己在做主备的时候,需要考虑主备直接的同步,这是一个比较头疼的问题。而利用cassandra做存储,可以利用cassandr的一些特性,刚好满足互备的需求。在数据存储量比较小的时候,<br /> <br />利用cassandra配置副本,可以做到互备。具体这么实现,将cassandra的副本配置为2。具体在schema.xml中的ReplicationFactor选项。同时把cassandra的节点配置为2。这样,每个节点

2011-05-15 22:26:00 1058

原创 Cassandra的数据整理

Life is full of accidence, just enjoy it!人生总是时时充满意外,在你某个不注意的角落,会给你突然来一下。做为一个程序猿,很多时候,你的工作就是排雷兵,很多时候,你去排雷,且会引爆新的雷。或者哪天你抵挡敌人进攻的雷却会变成自己撤退的雷区!前两天上线一个新版本的时候,发现一个针对老版本的优化出了问题,感受良多,代码往往跟不上产品策略的变化。这些雷好解决,大不了就是版本回退!但是有些雷却是太难解决了。这两天提供线上服务存储的cassandra节点出了问题,不知道某一天数据归

2011-05-11 16:02:00 845

空空如也

空空如也

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

TA关注的人

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