HSF全称为High-Speed Service Framework,旨在为淘宝的应用提供一个分布式的服务框架,HSF从分布式应用层面以及统一的发布/调用方式层面为大家提供支持,从而可以很容易的开发分布式的应用以及提供或使用公用功能模块,而不用考虑分布式领域中的各种细节技术,例如远程通讯、性能损耗、调用的透明化、同步/异步调用方式的实现等等问题。
适用场景:
对于这种需求场景,HSF将提供帮助,基于HSF可以非常容易的将集中部署的应用转换为分布式应用,而不用去过多的考虑分布式应用需要掌握的技术,也不需要对现有应用进行过多的改动,这一切HSF都会提供支持。
对于这种需求场景,HSF将提供帮助,基于HSF所有分布式部署的功能模块都可以以一种简单而标准的方式进行通讯,而无需关注所使用的公用功能模块部署在什么地方以及怎么远程调用它等问题,可做到的效果就像是本地调用library的API一样。
对于这种需求场景,HSF提供了分布式领域问题解决的支持,HSF屏蔽了分布式应用带来的一些问题,例如:如何与远程的功能通讯、异步/同步调用等问题,使用HSF,只需要简单配置就可以做到就像本地调用一样的效果。
总结来说就是,只要应用涉及到分布式,那么HSF就可以提供支持和帮助。
为何使用HSF?
07年时,淘宝是一个单一的应用Denali。随着业务的发展,暴露了两个问题:
1、业务功能累积,单一应用不堪重负
2、牵一发而动全身,代码难以维护
因此在07年下半年,将Denali进行了拆分。面临问题:拆分后系统跑在不同的虚拟机中,如何互相调用?因此开发了HSF。
HSF远程调用流程
基本调用流程:
1、连接服务器
2、把接口名,方法名,参数传给服务器
3、等待服务器返回结果即可
HSF框架结构
应用层:HSFSpringProviderBean/ HSFSpringConsumerBean
协议层:RPC协议(TCP/IP协议,Webservice协议,Google protocol buffers协议)/序列化协议(java,Hessian)
核心服务层:RPC服务/路由规则服务/地址服务/配置服务/notify消息服务/OSGI容器及jar依赖管理。
QOS(Quality of Service,服务质量):监控 日志(哈勃,logstat)
容器接入层:Tomcat,Jboss