张波-虎牙直播在微服务改造中的实践S 就 近 接 入 能 力 异 常 摘 除 能 力 dmx dns-f app nacos M S write read DNS-F在数据库场景的落地 背景 在数据库服务切换时效率低,依赖 业务方修改配置,时效不确定,通 常需要10分钟以上; 目标 数据库切换秒级生效; 技术特点-DNS-F M S S S M1.mysql S1.mysql S2.mysql S3 近接入能力,内部服务调用无法实现就近访问。 目标 DNS解析成功率 100% 公共DNS分钟级生效 内部DNS秒级生效 基于IP+CMDB实现就近访问能力 11 dns当前现状 1、依赖公共localDNS,解析不稳定,延迟大 落地效果 12 平均解析时间 之前200ms+ 现在1ms以下 缓存命中率 之前92% 现在99.8%+ 解析失败率 之前0.1% 现在0% 应用探活场景下的落地 1、web专区的nginx有健康检查的功能, 客户端更新服务信息 使用注册+DNS-f+健康检查模式。 DNS-F客户 端使用监听模式push/pull拉取更新信息 客户端定时轮询服务端获取其他服务ip信息并对 比,相比之下服务端压力较大、延迟较大 伸缩性 使用Raft选举算法性能、可用性、容错性均比较 好,新加入节点无需与所有节点互相广播同步信 息 由于使用广播同步信息,集群超过1000台机器 后对eureka集群压力很大 健康检查模式/方式0 码力 | 27 页 | 1.03 MB | 1 年前3
庖丁解牛:华为云微服务工具解放开发者简单 沟通效率 低 高 技术栈选择 受限 灵活 可扩展性 受限 灵活 可重用性 低 高 实现业务复杂性分解难度 困难 容易 产品创新复杂度 困难 容易 一致性实现成本 低 高 时延 低 高 资源成本 低 高 关联查询复杂度 简单 复杂 远程调用 不涉及 涉及 服务治理 不涉及 涉及 对开发人员的要求 低 高 对工具的依赖 较低 较高 运维复杂度 低 高 Huawei Step1:提取系统所有SQL Step2:逐条根据SQL创建语法树 Step3:在每棵语法树上分析表的关联关系并汇集 成表关联关系加权图 Step6:采用图切割算法并配合启发式规则将表分 割到不同库中 原则:低耦合,高内聚 耦合度:微服务划分后,微服务与微服务连接的边的权重之和 内聚度:微服务划分后,微服务内部表与表之间的边权重之和 采用图搜索算法划分微服务的启发式规则(规则可自定义): 规则1:贪婪原则0 码力 | 14 页 | 1.54 MB | 1 年前3
2-4-禚娴静-微服务你玩得起吗6 services 8 * 4 services 1 环境⼿手⼯工维护,频频出错 2014年问题倍出 部署成功率很低,部署时经常 有⼀一堆环境修改需求,运维⼈人 员出错机会增加,运维效率极 低。 2 缺乏有效监控 ⽆无法快速有效定位问题,⽆无法 快速有效知晓服务运⾏行状态, 服务资源浪费。 3 服务过⼤大,堵塞交付 快速增⻓长的结果导致服务过⼤大 或者服务过⼩小。⽽而过⼤大的服务 导致整个提交流⽔水线堵塞,测 冲突越来越严重,为了快速上 线质量遭到牺牲。架构⽆无⼈人守 护,各种不⼀一致性,服务内部 接⼝口⼀一⽚片混乱,核⼼心⼈人员离 职。 部署成功率很低,部署时经常 有⼀一堆环境修改需求,运维⼈人 员出错机会增加,运维效率极 低。 ⽆无法快速有效定位问题,⽆无法 快速有效知晓服务运⾏行状态, 服务资源浪费。 回到问题 1.运维⾃自动化 1 基础设施⾃自动化 实施了新的部署流程,成功率 ⼤大⼤大提⾼高,部署时间缩短到 冲突越来越严重,为了快速上 线质量遭到牺牲。架构⽆无⼈人守 护,各种不⼀一致性,服务内部 接⼝口⼀一⽚片混乱,核⼼心⼈人员离 职。 部署成功率很低,部署时经常 有⼀一堆环境修改需求,运维⼈人 员出错机会增加,运维效率极 低。 ⽆无法快速有效定位问题,⽆无法 快速有效知晓服务运⾏行状态, 服务资源浪费。 回到问题 3.服务拆分 微服务的附加成本 3.服务⾃自演进 2 1 2 3 划分合适的业务边界 进⾏行合适模块化0 码力 | 51 页 | 8.18 MB | 1 年前3
华为云分布式事务DTM最佳实践2PC 传统事务 可靠事件 TCC 柔性事务 SAGA 补偿事务 数据一致性 强一致 最终一致 最终一致 最终一致 总体性能 低 高 取决于实现 取决于实现 业务侵入性 较低侵入 高侵入 高侵入 高侵入 适用广泛性 一般 一般 高 低 产品成熟度 高 高 一般 低 方案对比 6 github.com/apache?q=servicecomb servicecomb.apache.org0 码力 | 15 页 | 3.10 MB | 1 年前3
Metrics in ServiceComb 1.0.0-m1Ratio(理想的比例):理想结果可预见,可以立即用于比较。 最常见的Metrics • 衡量Metrics实现 优劣的标准: • 关键指标覆盖 全 • 计量准确 • 高性能低资源 占用 • 无侵入或低侵 入 Metrics的分类 • Metrics有很多种分类方式,在技术实现上我们偏向以取值方式区 分为两种: • 1. 直接取值 • 任何时候都能够立刻0 码力 | 18 页 | 938.89 KB | 1 年前3
微服务架构及ServiceComb实践https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:商品维护和下订单是2个微服务,下订 MySQL-MGR 微服务层的优化 1. SeviceComb优异的异步通讯模型,REST over Vertx。 2. 透明RPC模式+CompletableFuture。把异步继续进行。 3. 低超时+重试策略配置。“ 高可用”的定义?A跟a 的区别 客户端无异常。 4. Zuul VS edge-service(更优)。 5. 生产环境需从最外层开始设置限流策略,并设置降级机制。 [社区网站]0 码力 | 14 页 | 2.04 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:客户维护和订单是2个微服务,订单系 MySQL-MGR 微服务层的优化 1. SeviceComb优异的异步通讯模型,REST over Vertx。 2. 透明RPC模式+CompletableFuture。把异步继续进行。 3. 低超时+重试策略配置。“ 高可用”的定义?A跟a 的区别 à 客户端无异常。 4. Zuul VS edge-service(完胜)。 100并发 vs 20000 并发。 5. 生产环境需从最外层开始设置限流策略,并设置降级机制。0 码力 | 15 页 | 1.46 MB | 1 年前3
微服务环境下的系统治理与容错微服务是大型系统的唯一选择。 解耦合 独立开发部署 架构、组织、流程 微服务架构定义“三步法” 微服务拆分方法 微服务拆分-指导原则 拆服务-单体重构的节奏 服务分解的四大障碍 1、网络延迟 2、同步通信降低了可用性 3、跨服务的数据一致性 4、上帝类 微服务的忠告 n 第一,要记住微服务不是解决所有问题的万能 “银弹”。 n 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础。0 码力 | 45 页 | 16.09 MB | 1 年前3
ServiceComb在Service Mesh的
探索与思考Huawei Confidential 6 Mesher - Service Mesh理论的实现 - 基于go语言开发 - 接入ServiceComb等开源生态 - 高性能,11mb常驻内存,1毫秒延迟 Huawei Confidential Mesher架构总览 7 关键组件 - Control panel - Registry - Protocol - 监控 - 安全 拥抱生态 - ServiceComb0 码力 | 21 页 | 8.48 MB | 1 年前3
Service Mesh的思考及在华为云的实践obby Mesher • 根据Service mesh理论进行实现 • 基于自研的Go语言微服务框架 开发 • 接入华为云和Istio生态 • 高性能,轻量:11mb RES, 1ms延迟 Website: http://servicecomb.incubator.apache.org/ Gitter: https://gitter.im/ServiceCombUsers/Lobby0 码力 | 29 页 | 1.55 MB | 1 年前3
共 18 条
- 1
- 2













