淘宝分布式服务框架.docx
淘宝分布式服务框架
Alibaba
玄宵technologyASsociation
玄宵
引子Alibaba
引子
technologyAssociation
·分布式服务框架基础数据
参数
值
每天调用量
300+亿
提供的服务数量
3k+
机器数量
8k+
机房分布
6,7个机房
应用
1000+
使用者
整个阿里系
大纲Alibaba
大纲
technologyAssociation
·淘宝分布式服务框架(HSF)演进过程·软负载体系
·服务治理
·分布式跟踪系统(Eagleeye)
AlibabatechnologyAssociationHSF演进过程
Alibaba
technologyAssociation
·初始版本
一服务发布,订阅以xml文件形式配置一Xml文件与应用分离
一通讯层基于JbossRemoting一负载通过硬件设备负载
Alibabatechnology
Alibaba
technologyAssociation
·使用起来非常复杂,部署维护成本高
·JbossRemoting量大,不稳定,而且不可控·硬件负载设备成本高,易出问题。
AlibabatechnologyAssociationHSF演进过程
Alibaba
technologyAssociation
·配置使用方式的改进
一使用示例
beanid=“helloWorld”class=“com.taobao.hsf.test.HelloWorldlmpl”/
AAlibabatechnologyAssociationHSF演进过程
A
Alibaba
technologyAssociation
·发布服务
beanclass=com.taobao.hsf.app.spring.u
beanclass=com.taobao.hsf.app.spring.util.HSFSpringProviderBean“propertyname=servicelnterface
valuecom.taobao.hsf.test.HelloWorld/value
/property
propertyname=target
refbean=“helloWorld”/
/property/bean
·
·消费服务
beanid=“hello”
class=com.taobao.hsf.app.spring.util.HSFSpringConsumerBean“propertyname=“interfaceName”
valuecom.taobao.hsf.test.HelloWorld/value/property
/bean
AlibabatechnologyAssociationHSF演进过程
Alibaba
technologyAssociation
·部署及隔离方式改进
一与应用分开部署,运行期依赖
一外部采用与应用独立的classloader隔离,内部采
用OSGI隔离·优点vs缺点?
AlibabatechnologyAssociationHSF演进过程
Alibaba
technologyAssociation
·网络通讯改进
-基于mina封装TB-Remoting
一分阶段序列化(java,hessian)一连接采用长连接
AlibabatechnologyAssociationHSF演进过程
Alibaba
technologyAssociation
·负载均衡改进
一采用基于配置中心(configserver)订阅推送
一客户端软负载
一容灾,失效恢复一路由等规则支持
AlibabatechnologyAssociationHSF演进过程
Alibaba
technologyAssociation
·Configserver
·
一面向动态数据推送·Diamond
一面向静态数据推送
HSF演进过程Alibaba
HSF演进过程
technologyAssociation
·跨语言改进
—Webservice
—Protocolbuffer—Hessian
AlibabatechnologyAssociation+A
Alibaba
technologyAssociation
+A
·演进过程中的一些小功能
一客户端线程池控制(稳定性开关)一日志放置的目录
一日志刷屏
一服务本机优先调用
一服务调用及执行统计(logstat)一服务端线程池隔离(防止雪崩)
-线程池满,自动执行jstack,jmap
一服务端及客户端配置交互(超时,序列化类型)
-Core+plugin模式
AAlibab