首页 > 代码库 > 阿里中间件技术交流
阿里中间件技术交流
阿里中间件技术交流
发展历程
- {服务框架与业务程序隔离,直接与web容器集成}
- 淘宝使用的是自己优化过的tomcat,淘宝会进一步把所有主要的公用行组件都放进去,如:notify客户端,TDDL,etc,公用组件和业务发布是分离的
-
- 08年做过一次停止所有业务开发,梳理业务逻辑,梳理定义服务
- 硬件中转问题:所有请求都从F5走,F5价格高,作为单点性能有瓶颈
- 采用直连方式,服务发现:
- 所有机器ip列表放在公共机器上。
- 风险:name server对带宽、性能要求较高
- HSF(High Speed FrameWork)
- 人【调用者】.开()【调用】.灯【提供者】
- 调用使用的封装协议,序列化要自描述
- java
- hession【目前默认,认为效率也低】【版本不兼容,演进比较差】
- protocol【非自描述,需要增加配置定义,所以没有采用】
- 接口协议描述
- 使用java interface【淘宝使用】
- 没有采用wsdl等
- 问题:
- 网关类系统:如TOP平台,对外开放API,会遇到问题,需要提供更通用的接口框架,做了适配
- 淘宝将服务框架进行整合,整合Dubbo和HSF
- 13年qcon,淘宝分享了“鹰眼”,管理服务调用情况,包括自动生成依赖关系
- 靠消息实现的分布式事务情况下,可能会有用到event driven
- 服务框架:
- 流控:单节点,如果超过直接拒绝,{fail over由客户端负责}
- 负载均衡
- 在客户端做一般用算法实现,进行随机访问
- 也支持根据资源情况分配,但是不建议,带来了复杂性
- 支持3种调用方式
- 同步
- future
- 异步回调
- 关注:
- rpc是基础
- 协议的兼容性和标准化
- 跨语言支持
- 软负载和服务管理是核心
- 路由
- 权重
- 归组
- 本机房和流控
- 服务治理中心
- 无缝集成是关键
- {隔离}
- Dubbo没有做到
- 升级
- {隔离}
- rpc是基础
- HSF2.0
- 兼容了HSF1.0,Dubbo的不同版本,使用方式和功能适配
- 实现互联互通
- 客户端如何知道服务端支持何种协议,config server上声明
- 服务端如何知道客户端发来何种协议,消息头
- 现状
- 大部分时间在答疑
- 其次推动升级
- 最后是开发测试
- 面向运营,服务治理
- 权重规则
- {引入线上流量压测:B2B应用在线上压测时导入流量}
- 动态归组
- 同套代码提供不同的服务,实现集群的隔离,保障关键应用
- 这里也表明了,客户端需要自表明自己
- 全局规则
- 调整日志采样:双11可以关闭
- HSF日志:双11可以改下级别至warn之类的,本地日志
- 权重规则
与淘宝服务框架架构师交流
- HSF建的是长连接,定期会清理
- 服务发布时会配置默认分组,动态修改分组的时候会写文件
- 服务节点的监控,提供者会通过流量来看【某台服务器上没有流量】,然后通知config server下掉该节点
- 版本号和组件(模块)关系的,服务框架不关心,可能业务团队会关注,也就没进一步问版本号依赖管理的内容(参照osgi的依赖管理)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。