关于HSF(高性能服务框架)方案的疑问

来源:互联网 发布:对网络直播的看法论文 编辑:程序博客网 时间:2024/05/21 10:11

小弟刚开始接触HSF,老大让我调研一下,但是我最近遇到一个非常大的疑问,想请各位讨论一下,希望大家踊跃啊:

对于我们公司(非大型IT公司)来讲,想要实现一个高性能的服务框架。

我们目前其实没有太实际的需求,主要就是想在HSF高性能服务框架方面有所成就,或者说有所进展,一步步慢慢发展嘛,未来可以结合分布式存储,推出属于自己的一套高性能服务调用以及存储的解决方案。

 

我的疑问主要是觉得下面两种方案都可以叫做HSF框架吧,那么对于我们来讲大家觉得应该采用哪种方案比较好呢?

1、Hessian等成熟的RPC框架 + Apache + Tomcat负载均衡

2、自己实现RPC框架:在Mina等TCP通信框架 + Hessian、ProtocolBuffer等序列化组件上面进行封装。服务动态注册,客户端随机选择来实现负载均衡

 

对于方案1来说,其实蛮简单的,估计一天不到就能搞定。但是我觉得肯定有很多不好的地方,不然早就流行,比如不能二次开发等。。。具体我也说不上来。

对于方案2来说就非常难了,类似阿里公司的Dubbo吧,我估计需要好几个人搞几个月。现在好像很多大的公司都有自己的分布式服务框架,优点就不得而知了。

 

希望大家能够结合自己的实际发表意见,谈谈对这两种方案的看法,谢谢了!

==========================================================================================================================


疑问1: 为什么不使用现有的成熟的RPC框架,如Hessian,ICE等,而是要自己开发基于NIO的RPC框架?

(1)跨语言的RPC如ICE需要开发人员了解中间语言;

(2)Hessian,ICE,Thrift等RPC框架都是短连接的,性能不高。而NIO框架(Mina,Netty)是TCP通信框架,可以在上面封装长连接,由于是NIO的I/O方式,不是一个请求就对应一个线程,而是在数据真正到来的时候才开启一个线程去处理数据,NIO在并发量增长时对比BIO而言会有明显的性能提升。具体NIO知识参见这里。

(3)很难在已有的RPC框架上进行拓展,比如换一种传输方式,或者换一种数据序列化方式,甚至换一种传输协议(TCPHTTP)。


疑问2:为什么不使用现有的成熟的RPC框架如Hessian + Apache + Tomcat来做负载均衡?

(1)负载均衡器在系统规模增大时会成为瓶颈,而这并不能通过增加负载均衡器来解决;

(2)无法实现动态发布和注册服务,流量监控和预警,容错,服务之间依赖分析等服务治理相关的功能;


另外,如果你的系统规模不是特别大,可以不关注服务治理这块,如果你的访问量也不是特别大(100W以下),那就没有要重新开发RPC,总之,没有特别的需求,那么使用现有的成熟的RPC框架如Hessian + Apache + Tomcat就完全足够了,无需开发自己的高性能服务框架。


疑问2:基于现有的成熟的RPC框架如Hessian ,自己来做负载均衡和服务治理?

感觉这样上下不接。。。 要是系统和访问量不是非常大,就用“Hessian+Apache+Tomcat”就行了,要是太大了非得研究高性能分布式服务框架,自己的RPC框架我觉得是必须的。。。 试试吧


0 0