你一定也深有同感,3,数据源广场( 三 )


文章图片
因为元数据中心SDK是去中心化的 , 接口的调用逻辑发生在业务应用本地 , SDK利用logback的appender扩展将日志异步发送到日志服务中 , 再用监控平台采集日志服务的日志 , 在监控平台中完成监控报警的搭建 。 元数据中心SDK还集成了调用链监控平台 , 不但可以在业务应用对应的调用链监控平台上看到接口调用情况 , 还利用了logback的ClassicConverter扩展 , 在日志中统一加入调用链唯一ID , 方便通过该ID查看全链路日志 , 以达到快速定位问题的目的 。
2、熔断降级
如果你的应用有外部依赖 , 那么保证稳定性 , 熔断是必不可缺的手段 。 想象一下 , 某个依赖的RT突然变高 , 如果没有及时熔断 , 那么你应用的线程池资源很快会被该依赖消耗完 , 且整个应用将无法响应 , 造成雪崩 , 所以熔断的重要性是不言而喻的 。 元数据中心目前支持三种熔断策略:RT、秒级异常比例、分钟异常数 。
实践提效
说了这么多 , 究竟能否为业务提效呢 。 实践是检验真理的唯一标准 , 接下来让我们一起来看下元数据中心如何与业务结合 , 为业务提效 。
1、与内容分发框架集成
【你一定也深有同感,3,数据源广场】目前优酷主APP业务基本上是统一的内容分发框架的 , 那么与内容分发框架集成 , 是为业务提效最好的切入点 。 内容分发框架虽然具有强大的配置能力 , 但是它的数据源还是面临到处找接口 , 学习怎么调用 , 引入二方包 , hard code , 提测 , aone发布一系列漫长而重复的操作 。 另外一旦有接口需要切换或者业务需要增加字段等变更操作 , 还需要通过hard code方式改动 , 这样不但效率比较低 , 频繁的发布还增加了不稳定性 。 结合元数据中心的目标 , 内容分发框架集成元数据中心就可以完美解决它的痛点:
接口接入不再需要hardcode , 通过配置即可完成 。
接口需要切换或者业务需要增加字段时 , 不需要hard code , 在元数据中心做切换 , 做字段的增加 , 通过脚本语言动态的将字段读取出来 。
无需重复的打印监控日志 , 也不需要单独做熔断 , 由元数据中心统一处理 。
再来看看者的反馈情况 , 最近与业务同学了解到 , 目前新组件的需求中有涉及需要读取某些数据 , 通过元数据中心配置了相关接口和所需字段 , 且结合框架的配置能力 , 从到上线基本没有hard code , 通过配置快速的上线验证 。
2.与Faas集成
众所周知 , 互联网产品讲究的是快速迭代和试错 , 业务需要具备快速上线能力 , 与竞争对手PK 。 这就意味着背后的技术研发流程需要更加高效 , 元数据中心与Faas结合就可以实现快速上线的效果 。 因为业务通过元数据中心可以快速接入接口 , 再结合Faas的开箱即用特点 , 直接编写业务逻辑 , 保存之后自动完成构建、部署 , 整个流程简单、高效 。 足以达到快速上线验证的目的 。 前优酷小程序业务已经在元数据中心+Faas下上线了很多业务 。
总结与展望
元数据中心平台已经初步上线 , 并通过与内容分发框架集成已服务于优酷APP部分业务场景及与Faas集成服务于小程序部分业务场景 。 从业务反馈来看 , 目前已实现了业务在接入数据源这一层由hard code方式转变为配置方式 , 极大提高了效率 。
你一定也深有同感,3,数据源广场
文章图片
本文相关词条概念解析:
数据源
【你一定也深有同感,3,数据源广场】数据源(DataSource)顾名思义 , 数据的来源 , 是提供某种所需要数据的器件或原始媒体 。 在数据源中存储了所有建立数据库连接的信息 。 就像通过指定文件名称可以在文件系统中找到文件一样 , 通过提供正确的数据源名称 , 你可以找到相应的数据库连接 。 用户DSN允许单个用户在单个计算机上访问数据库 , 系统DSN允许在某个计算机上的多个用户访问数据库 。 C3P0是一个开放源代码的JDBC数据源实现项目 , 它在lib目录中与Hibernate一起发布 , 实现了JDBC3和JDBC2扩展规范说明的Connection和Statement池 。


推荐阅读