锁定老帖子 主题:分布式通信框架
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-09-20
javatracker 写道 mercyblitz 写道 javatracker 写道 kimmking 写道 javatracker 写道 kimmking 写道 javatracker 写道 仿照Activemq的模式? 感觉还是服务器端做一个loadbalance合适,统一控制dispatch策略,heartbeat检测,和failover。 没,参照了JBossRemoting和淘宝的,在客户端做的loadbalance。 在服务端做loadbalance的话,做loadbalance的这个服务端本身就是个单点。 LVS,TCP的四层交换技术? 这是一个实现方式,但不想在太底层实现,用LVS的话没办法和上层集群做统一协调,另外做LVS分发那台机器还是个单点,又要引入解决LVS单点的问题,所以还是客户端实现方便。 哦,明白了,不过这样客户又很多选择的服务器,难道采用轮询? 估计是failover~ 恩,但是又感觉像DNS轮询,一般DNS服务器把一串IP发给浏览器,浏览器会获取其中一个(实现不同,行为不同),不过楼主可以说一下怎么来实现的。 目前和轮询也差不多,采用随机的方式,在一个IP列表中随机选在一个发送请求。 |
|
返回顶楼 | |
发表时间:2010-09-20
ray_linn 写道
kimmking 写道
ray_linn 写道
Hessian架构在Http协议之上,效率低不说,不能脱离web容器
--- 这是个伪命题把? http协议最强的地方,就是几乎所有的firewall都打开了80口
一般来说, http效率不算低。
长连接,异步servlet,SEDA,线程池。 串起来,是一个很高效的系统。
效率的高低是相对,说HTTP低是相对于TCP/IP的,分布式系统可能是多层依赖,每层依赖都需要消耗传输时间,HTTP协议是TCP/IP之上的协议,架构在HTTP协议之上就多了一次再编码和解码的过程,而且传输的数据也比直接用TCP/IP大。假设A依赖B,B依赖C,C又依赖D,这样在每一次的传输过程中多消耗一点的时间,对用户来说就多几倍的等待,对提高页面响应来说是个问题,作为底层框架应尽可能的减少这种消耗。 |
|
返回顶楼 | |
发表时间:2010-09-20
ray_linn 写道
kimmking 写道
ray_linn 写道
Hessian架构在Http协议之上,效率低不说,不能脱离web容器
--- 这是个伪命题把? http协议最强的地方,就是几乎所有的firewall都打开了80口
一般来说, http效率不算低。
长连接,异步servlet,SEDA,线程池。 串起来,是一个很高效的系统。
http真的不快。我们做同样的事情,用socket长连接比开源的rcp包基于http实现的,快15倍左右。
我们测试:在内网环境下,http方式1秒不过几百次查询,socket可以达到上万次,而且对机器连接文件数占用还少很多。http://www.iteye.com/topic/696261 的”性能如何“是测试数据。
|
|
返回顶楼 | |
发表时间:2010-09-20
javatracker 写道 myreligion 写道 你是在做一个基于socket的RPC框架吗?我最近也有这方面的打算,普通rpc的http实在太低效了,我们需要一个更快的。如果您已经完成了,是不是开源的哪?能否分享一下?呵呵。
后面会分享一下设计方面的东西,开源要过一段时间征求老大的意见。 太遗憾了,看来只有自己弄了。不过我会公开出来的,呵呵,希望多指点~~ |
|
返回顶楼 | |
发表时间:2010-09-20
myreligion 写道 javatracker 写道 myreligion 写道 你是在做一个基于socket的RPC框架吗?我最近也有这方面的打算,普通rpc的http实在太低效了,我们需要一个更快的。如果您已经完成了,是不是开源的哪?能否分享一下?呵呵。
后面会分享一下设计方面的东西,开源要过一段时间征求老大的意见。 太遗憾了,看来只有自己弄了。不过我会公开出来的,呵呵,希望多指点~~ 呵呵,一起交流,这个最终会开源的,不过现在还不太稳定,还有功能没加上,也没得到老大的批准呢。 |
|
返回顶楼 | |
发表时间:2010-09-20
无码无真相
mar k |
|
返回顶楼 | |
发表时间:2010-09-21
myreligion 写道
ray_linn 写道
kimmking 写道
ray_linn 写道
Hessian架构在Http协议之上,效率低不说,不能脱离web容器
--- 这是个伪命题把? http协议最强的地方,就是几乎所有的firewall都打开了80口
一般来说, http效率不算低。
长连接,异步servlet,SEDA,线程池。 串起来,是一个很高效的系统。
http真的不快。我们做同样的事情,用socket长连接比开源的rcp包基于http实现的,快15倍左右。
我们测试:在内网环境下,http方式1秒不过几百次查询,socket可以达到上万次,而且对机器连接文件数占用还少很多。http://www.iteye.com/topic/696261 的”性能如何“是测试数据。
笼统说http低效是不合适的,通常http是短连接的,每次都要进行连接,用完后又断开,效率主要损耗在连接建立/拆除上,至于数据传输,都是一样走TCP/IP,没有更低效之说。 |
|
返回顶楼 | |
发表时间:2010-09-21
简单的自定义协议比http协议高效是毋庸置疑的,你看看有什么内部通讯协议采用http的,采用http无非就是客户端资源丰富。
|
|
返回顶楼 | |
发表时间:2010-09-21
rain2005 写道 简单的自定义协议比http协议高效是毋庸置疑的,你看看有什么内部通讯协议采用http的,采用http无非就是客户端资源丰富。 内部的通讯协议,这个定义的范围太广。 银行的前置系统,ESB中都有高效的http处理。 |
|
返回顶楼 | |
发表时间:2010-09-21
可以看看基于scala的分布式框架akka,另外我觉得ICE最大的好处是目前有对移动设备的支持,包括iphone,android.
|
|
返回顶楼 | |