关于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框架上进行拓展,比如换一种传输方式,或者换一种数据序列化方式,甚至换一种传输协议(TCP、HTTP等)。
疑问2:为什么不使用现有的成熟的RPC框架如Hessian + Apache + Tomcat来做负载均衡?
(1)负载均衡器在系统规模增大时会成为瓶颈,而这并不能通过增加负载均衡器来解决;
(2)无法实现动态发布和注册服务,流量监控和预警,容错,服务之间依赖分析等服务治理相关的功能;
另外,如果你的系统规模不是特别大,可以不关注服务治理这块,如果你的访问量也不是特别大(100W以下),那就没有要重新开发RPC,总之,没有特别的需求,那么使用现有的成熟的RPC框架如Hessian + Apache + Tomcat就完全足够了,无需开发自己的高性能服务框架。
疑问2:基于现有的成熟的RPC框架如Hessian ,自己来做负载均衡和服务治理?
感觉这样上下不接。。。 要是系统和访问量不是非常大,就用“Hessian+Apache+Tomcat”就行了,要是太大了非得研究高性能分布式服务框架,自己的RPC框架我觉得是必须的。。。 试试吧
- 关于HSF(高性能服务框架)方案的疑问
- 分布式服务框架HSF
- 分布式服务框架HSF学习
- 式服务框架HSF学习
- 分布式服务框架HSF学习 Dubbo VS HSF
- hsf服务的调用过程
- HSF 淘宝框架的使用
- Thrift可扩展高性能的通信服务框架
- 关于高斯滤波器的一些疑问
- 淘宝可伸缩高性能互联网架构HSF
- 淘宝可伸缩高性能互联网架构HSF
- 淘宝可伸缩高性能互联网架构HSF
- 通用高性能服务框架解析
- 通用高性能服务框架解析
- 容器内执行hsf服务(仅限当前容器对外提供的服务)
- 服务框架HSF分析之三Consumer启动和处理
- HSF 入门-发布和调用hsf服务
- C++高性能服务框架revolver:同时支持100万个的定时事件的定时器
- Java_Collection Framework集合类详解
- java修改properties文件中的键值对的值
- sudo: no tty present and no askpass program specified
- setTimeout和setInterval区别和用法
- libraw库网址及图像相关库集合
- 关于HSF(高性能服务框架)方案的疑问
- HTTP 断点续传协议头部分析
- UML类图
- java打包后的路径问题
- 38. Count and Say
- [LeetCode] Sudoku Solver
- VC++ TCP/UDP通信程序
- Device tree
- SVD与PCA