庖丁解牛:华为云微服务工具解放开发者表关联分析 图切割+启 发式规则 Step1:提取系统所有SQL Step2:逐条根据SQL创建语法树 Step3:在每棵语法树上分析表的关联关系并汇集 成表关联关系加权图 Step6:采用图切割算法并配合启发式规则将表分 割到不同库中 原则:低耦合,高内聚 耦合度:微服务划分后,微服务与微服务连接的边的权重之和 内聚度:微服务划分后,微服务内部表与表之间的边权重之和 采用图搜索算法 计算权重,生成图 输出权重图, 选择、调用 指定算法 贪婪/谱聚类算法 内容格式化 拿规则类解析sql语句 返回计算结果 1 2 3 4 5 6 7 8 9 sqlrule (mysql/oracle/…) 选择规则,透 传sql语句集 传入表关联关系list Huawei Confidential 10 案例1:存量系统1微服务拆分分析-图搜索拆分微服务 2 2 4 从左到右分别是拆分出来的商品库、模板库,最后一些离散表是系统为了关联外部系统而引入的表,独立成库 Huawei Confidential 11 案例2:存量系统2微服务拆分分析-图搜索拆分微服务 从左到右分别是拆分出扩展属性服务、模型/模型实例服务、目录服务以及离散表独立成的服务,其中离散表中标红部分概念上应该划分到模型/模型实例服 务中,但实际的sql,却并未体现其和模型/0 码力 | 14 页 | 1.54 MB | 1 年前3
ServiceComb在华为消费者云的亿级用户微服务实践API,或者RPC Highway API,统一使用Swagger YAML定义API 微服务代码生成:服务端和客户端都基于API定义,通过 ServiceComb提供的工具生成不同语言的类库,客户端可以不导入服务 端的类库定义,双方互相解耦 微服务接口测试:测试基于流水线的API定义生成自动化测试用例, 防止开发本地随意修改API 微服务API依赖关系:通过微服务流水线编译、打包和系统集成 Gitter: https://gitter.im/ServiceCombUsers/Lobby 业务按需配置ServiceComb的类库依赖,基于standalone轻量级部署 开发态:按照业务实际需要配置ServiceComb的 maven 依赖,只加载需要的类库: 如果需要使用ServiceComb的流控再配置 如果需要使用私有RPC协议时才需要配置依赖 JVM Vert.X ServiceComb0 码力 | 15 页 | 1.15 MB | 1 年前3
解读Apache务实 免费⽤于商业和⾮商业⽤途 兼容其他开源协议 协议 协议 A 类 - 可以依赖并包括在发布中 MIT, 2 和 3 条款 BSD B 类 - 可以依赖并且可能包括 通⽤开发和发布协议 (CDDL), Eclipse公共协议 (EPL), Mozilla公共协议 (MPL), 知识共享许可协议 (CC-A) X 类 - 不可以依赖或者包括在发⾏版中 GPL, LGPL, ⾮商业许可证0 码力 | 43 页 | 4.89 MB | 1 年前3
消费者云CSE微服务实践微服务框架技术选型-灵活和轻量级架构 当前业务服务端都是非Web应用,所以丌需要运行在Web容器中, 需要类似Main函数可以直接拉起来的Standalone模式 服务框架要足够轻量级,可以按需加载类库,防止不当前业务的 三方库发生冲突 启停速度要快(秒级弹性伸缩)、资源占用要合理 微服务框架技术选型-微服务安全 有些业务场景对微服务调用安全要求较高,需要微服务框架支持 SSL传输、API鉴权和认证等 无论Rest API,戒者RPC Highway API,统一使用Swagger YAML定义API 服务端和客户端都基于API定义,通过CSE提供的工具生成丌同语言的类库, 客户端可以丌导入服务端的类库定义,双方互相解耦 始终以在线的API定义为准,防止服务端私自修改接口代码(例如增减字段、 修改字段类型) 每日微服务流水线构建,及时发现接口丌兼容问题 CSE0 码力 | 22 页 | 1.39 MB | 1 年前3
ServiceComb java SDK详解MetricsInitializer中的getOrder规划执行顺序, order数字越小,越先执行。 • Metrics-core实现3类MetricsInitializer: – DefaultRegistryInitializer: 实例化并注册 spectator-reg-servo,设置较小的order,保 证比下面2类MetricsInitializer先执行 – Meters Initializer: 实现TPS、时延、线程0 码力 | 21 页 | 1.15 MB | 1 年前3
ServiceComb设计揭秘:标准与开发微服务实例:一个独立的拥有自IP端口的微服务实例(通常为进程), 不service id的关系为n:1,即Service ID可以拥有多个微服务实例; 系 统 模 块 图 框架的启劢不停止 框架运行时请求发送不处理过程 业务调用 构造请求元数据 消费端handlers 编码传输 请求解码 生产端handlers 业务代码映射 业务代码处理0 码力 | 9 页 | 831.77 KB | 1 年前3
微服务场景下的数据一致性解决方案 - 殷湘yes/no yes/no yes/no Saga - 222 • 2种恢复策略 • 向前恢复 • 向后恢复 2 • 2个特点 • 和平 • 统一 2 • 2种运行模式 • 图遍历 • Akka Actor 2 恢复策略 - 向前恢复 • 重试N次直到成功或采取回退措施 (人工干预) B C A Saga transact transact transact0 码力 | 31 页 | 4.28 MB | 1 年前3
微服务创新新品发布Spring cloud微服务 pack Mesher ServiceComb UX .Net 服务 PHP服务 NodeJS服务 其他语言编写 服务 Java 编写服务 ServiceComb全景图 9 github.com/apache?q=servicecomb servicecomb.apache.org ServiceMesh 服务通信规范 配置 流行微服务框架 可视化监控0 码力 | 12 页 | 2.96 MB | 1 年前3
微服务环境下的系统治理与容错微服务架构定义“三步法” 微服务拆分方法 微服务拆分-指导原则 拆服务-单体重构的节奏 服务分解的四大障碍 1、网络延迟 2、同步通信降低了可用性 3、跨服务的数据一致性 4、上帝类 微服务的忠告 n 第一,要记住微服务不是解决所有问题的万能 “银弹”。 n 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础。 n 第三,关注微服务的本质,即服务的分0 码力 | 45 页 | 16.09 MB | 1 年前3
反应式微服务框架ServiceComb设计思想&mdash为什么微服务框架需要Reactive? • 微服务架构调用次数更多 • 更高的性能,规模效应 • 更好的用户体验 业界趋势 n Java 9中把反应式流规范以 java.util.concurrent.Flow 类的方式添加到了标准库中 n Spring 5对反应式编程模型提供了内置支持,并增加了新的 WebFlux 模块来支持反应 式 Web 应用的开发 ServiceComb Apache孵化的第一个微服务框架。0 码力 | 33 页 | 5.68 MB | 1 年前3
共 15 条
- 1
- 2













