如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
淘宝服务框架(HSF)介绍淘宝服务框架(HSF)介绍毕玄2010-03-08HSF介绍HSF介绍起源做了些什么以及怎么做的目前的使用状况将来还会做什么和eBaySOA平台的比较起源07年的淘宝依靠Denali这座唯一的大山支撑着;仅仅靠堆积机器已经无法支撑了;于是祭起了“拆分”这个互联网常用招数;应用拆开后,如何通讯?性能如何保证?如何保证不管是什么应用都用同样的方式交互?于是,HSF(High-speedServiceFramework)诞生了!做了些什么以及怎么做的标准Service方式的RPC?应用之间以Service的方式进行交互这就是一个Service了?交互方式支持同步、异步、可靠异步以及回调<beanclass="com.taobao.hsf.app.spring.util.HSFSpringProviderBean“>?协议支持tcp/ip、webservice<propertyname="serviceInterface"><value>com.taobao.hsf.test.provider.WebHSFService</value>?序列化支持java、hessian</property><propertyname=“serviceVersion”><value>1.0.0</value></property><propertyname="target"><refbean="ProviderBean"/></property></bean>做了些什么以及怎么做的标准Service方式的RPC---怎么做的?Service定义,参考了OSGi?协议TCP/IP(这个部分的实现也就是TBRemoting了)?NIO,基于Mina?每目标地址一个连接、长连接?实现同步、异步发送对象;回调;按连接组发送对象等;?server端限定大小的线程池,正在尝试coroutine方式…Webservice?基于Axis,支付宝做了一定的优化集成的hessian3.0.13?序列化做了些什么以及怎么做的完善的软件负载体系?软件负载均衡随机权重?com.taobao.tc.*=172.23.12.*:80;172.23.13.*:20Failover应用层路由(支持按服务的接口、方法、参数路由)?已应用于淘宝的店铺读写服务分离、商品中心的服务分级(按接口)以及交易中心的功能分离(按方法)?最大的特色:不增加中间点(F5、Netsclar、LVS都需要增加中间点),保障了稳定性和高度可伸缩做了些什么以及怎么做的完善的负载均衡体系---怎么做的?增加了ConfigServer实现服务地址信息的注册、服务消费者信息的注册和服务地址信息的推送,从而做到无需中间点,调用时直接调用;实现了感应服务提供者的状态,当服务提供者断开时重新推送目标地址,从而做到failover;?选址权重为推送一个地址的权重规则;?应用层路由通过推送路由规则(groovy代码)到调用端,调用端根据此路由规则计算调用服务的方法时可选择的地址列表。做了些什么以及怎么做的模块化、动态化?支持HSF的动态部署?隔离了HSF和应用的包,避免包冲突做了些什么以及怎么做的模块化、动态化---怎么做的?基于OSGi?遵循Equinox的实现更好的设计系统,以降低动态化实现的成本接口和domain对象放入一个独立bundle所依赖的lib也放入独立的bundle接口的实现分离为多个bundle,这些bundle都保持不export-package,交互基于OSGiService的方式进行做了些什么以及怎么做的服务治理?服务信息管理服务提供者或调用者信息的查询?服务依赖关系分析?服务运行状况?服务可用性保障服务路由调整服务流量分配服务端降级调用端降级做了些什么以及怎么做的服务治理---怎么做的?基于注册到ConfigServer的服务信息?基于埋点到哈勃的运行状况信息?基于故障的定义(例如响应时间超过某个阀值、可调用的服务的机器数小于约定值等)?基于应用层路由做了些什么以及怎么做的以上做的这些事情经历了很多个版本的发展V1.1?2008年5月?流量:100万+?基本RPC功能,基于JBossRemoting,一个简单的服务注册中心V1.4.3V1.3.3V1.2.5?2008年9月?流量:4亿+?软负载?2009年1月?流