其他
干货 | 携程多语言平台-Shark系统的高可用演进之路
作者简介
Fenlon,携程资深后端开发工程师,负责国际业务多语言中台部分客户端和服务端研发。
一、引言
二、背景
三、演进
3.2.1 前期调研
3.2.2 缓存方案
3.2.3 优化效果
缓存命中率为90%+ db高峰流量从300M降到40M左右 底层数据库访问层请求量QPS从近2000下降到500左右 系统平均响应时间从20ms降到3ms左右
3.3.1 3.0存在的问题
1)服务端问题
2)客户端问题
在点火阶段通过SOA进行全量数据的加载 ;
将加载的数据缓存到内存中 ;
通过定时任务周期性的进行增量和全量更新。
强依赖服务端稳定性 缺少降级方案(无保底能力) 频繁且无意义的全量同步流程
3.3.2 方案设计
1)冗余设计
2)资源文件冗余
3.3.3 服务端冗余
1)文件系统
2)压缩方案
3)服务端资源文件生成流程
3.3.4 客户端冗余
1)编译打包阶段初始化
Shark-maven-plugin
具体流程
减少不必要的资源打包
packaging类型过滤
绑定prepare-package阶段
排除MacOS和WindowsOS环境
业务方插件引用
java
<plugin>
<groupId>com.ctrip.xxxx</groupId>
<artifactId>shark-maven-plugin</artifactId>
<version>x.x.x</version>
<executions>
<execution>
<goals>pack-download</goals>
</execution>
</executions>
</plugin>
2)运行阶段异步更新
四、结语
【推荐阅读】
“携程技术”公众号
分享,交流,成长