??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品成人观看视频免费,国产精品女主播,国产精品无码永久免费888http://www.shnenglu.com/converse/category/14085.html感兴领?高性能服务器编E?存储,法,Linux内核zh-cnSun, 20 Jun 2010 08:32:50 GMTSun, 20 Jun 2010 08:32:50 GMT60集成libevent,google protobuf的RPC框架http://www.shnenglu.com/converse/archive/2010/06/20/118310.html那谁那谁Sun, 20 Jun 2010 08:30:00 GMThttp://www.shnenglu.com/converse/archive/2010/06/20/118310.htmlhttp://www.shnenglu.com/converse/comments/118310.htmlhttp://www.shnenglu.com/converse/archive/2010/06/20/118310.html#Feedback0http://www.shnenglu.com/converse/comments/commentRss/118310.htmlhttp://www.shnenglu.com/converse/services/trackbacks/118310.htmlRemote Procedure Call),中文译是远E过E调?其实从原理来说这q不是一个新的概?我的理解? 不同的机器之间定义了一些接? 也有客户端和服务器端,客户端可以通过协商好的接口调用服务器端已经注册好的服务.说白?q是|络通信的那一套机?既然q是|络通信,那么Z么需要用RPC而不是自己去完成q样的一套工作呢?假如是自己做q样的事?需要考虑~解?|络?其很多l节需要去x:协议有哪?如何定义格式?涉及到整数的q要考虑|络和主机字节序{?如果逻辑E序员还需要关注这些细?昄太繁琐了.q有是,国内的公司开发很有文,假如查找问题时还需要通过M码才能知道协议中各个字段的含?q样寚w目的可维护性会有很大的影响.假如使用了RPC,通过RPC工具定义的格式来定义协议,可以一目了?而且,|络层就应该只关注网l层的工?逻辑层架构在|络层之上再完成逻辑的操?把网l和逻辑分开,也是清晰的架构设?
google protobuf 是google公开的一套用于网l通信时用于协议编解码的工具库,使用它定义的格式,你可以定义协议的字段,由它自带的编译器生成责编解码的代码文?可生成许多不同的语言文g).同时,它还包括了基本的RPC接口定义.但是,q个工具用在RPC上比较大的问题是它只负责生成代码文g,而如果要真正使用h做ؓ一个RPC框架,q需要对它进行网l层上的装,但是在它自己的官Ҏ上q没有给Z个demo告诉读者如何一步一步的来完成这样一个工?thrift是与google protobuf同样定位的一个工具库,除了具备google protobuf相同的功能外,如支持多语言,跨^?高效的编解码,q集成了|络通信?可以使用它完成所有RPC所需要完成的工作.?a >q个面?google protobufl出了一些已知的使用不同语言对它q行装的项?
chenshuo?a >evproto同样也是集成libevent与google protobuf的RPC框架,不过在对libevent的用上,q里的做法与他不相? 1) 他用了libevent自带的RPC功能, 而这里只使用到libevent对网lI/Oq行的封装的最基本的功? 2) 之所以有1)的考虑,是因为我认ؓ一个工h好应该是"do one thing, do it better"?也许从这点可以解释ؓ什么google protobuf没有像thrift那样自带|络?而是把这个工作留l了用户),libevent已经来大,除了对I/O,信号,定时器等的封装之?现在q有RPC,异步DNS,http协议的支持等{?说真?如果只是x到网lI/O的多路复用机?那么几乎M一个熟l的E序员都可以很快的自己做L一套东西来,使用libevent无非是Z后可能的跨^台做准备|了.随着我对libevent发展方向的不认同,q曾l想q用libev替代libevent,不过现在暂时不想折腾q个事情?