京东微服务实践
-杰夫服务框架
云平台 系统技术部
李鑫 lixininfo@jd.com
为何要服务化
• 系统规模随着业务的发展⽽而增⻓长,原有系统架构模式,逻辑过于
耦合不再适应;
• 拆分后的⼦子系统逻辑内聚,易于局部扩展;
• ⼦子系统之间通过接⼝口来进⾏行交互,接⼝口契约不变的情况下可独⽴立
变化;
APP1
APP2
APP3
App1
App2
App3
DB
Data
Store
Data
Store
Data
Store
交互通过DB来进⾏行
交互通过同步/异步接⼝口来进⾏行
为什么要打造服务平台
服务⻔门户
配置查看/推送
存活监控
调⽤用分析图表
降级
限流
服务性能数据收集
负载均衡
服务调⽤用
服务寻址
服务发布
3
第⼀一代服务框架
•
•
•
2012年初开始研发;
zookeeper集群作为注册中⼼心;
base on开源的服务框架;
4
zookeeper
Web管理端
2.服务消费者进⾏行订阅
1.服务提供者进⾏行注册
服务消费者1
服务消费者2
服务消费者3
3.直接服务调⽤用
服务提供者1
服务提供者2
服务提供者3
地址举例:WebService://172.17.3.18:20880/?
interface=com.jd.arch.HelloService&group=pop&version=0.1
5
运营中暴露出的不⾜足
1.客户端
• 许多逻辑放到客户端,推出新版本;有版本升级问题;
• watch时效问题;
2.注册中⼼心
•
zookeeper作为注册中⼼心,功能定制扩展受限;
3.服务治理
• 缺乏流控⼿手段,⼤大流量打爆线程池;
• 更改配置需重启,对运营不够友好;
• 缺乏调⽤用监控,没有调⽤用分析图表;
6
重装上阵!
7
新服务平台JSF
14年初开始研发;
•
• ⾃自主研发以获得彻底的掌控⼒力;
• ⽼老版本运营经验⽀支撑功能特性设计;
• 中⽂文名:杰夫
8