使用微服务架构快速开发万级TPS高可用电商系统[社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 使用微服务架构快速开发万级TPS高可用电商系统 git clone https://github.com/alec-z/servicecomb-samples cd servicecomb-samples/houserush/script/docker https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID) 2. 关注对性能的要求 举例:客户维护和订单是2个微服务 乎是事实标准。 12306网站 15年 峰值 1032 单/s 11.7w PV 电商“抢购”“场景中企业中遇到的困难 1. 性能要求不断优化,和不能引入Bug之间的矛盾。 2. “变态”级别的高可用性要求。 3. 声誉和法律风险。 4. 抢购体验 à 商家的技术能力 à 产品质量。 [社区网站] http://servicecomb.apache.org [Github ] https://github0 码力 | 15 页 | 1.46 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) • 隔离性 ( Isolation) http://microservices.io/microservices/general/2018/03/22/microxchg-sagas.html 如何应对隔离性问题 • 隔离的本质是控制并发,防⽌止并发事务操作相同资源⽽而引起结果错乱 • 在应⽤用层⾯面加⼊入逻辑锁的逻辑。 • Session层⾯面隔离来保证串串⾏行行化操作。 • 业务层⾯面采⽤用预先冻结资⾦金金的⽅方式隔离此部分资⾦金金。 Compensation Transaction 集中式Saga实现过程中问题 • 好处 • 集中式的服务调⽤用易易于监控和协调 • 坏处 • 通过JSon描述Saga事务执⾏行行灵活性不不⾼高 • 业务描述与代码相分离,需要依赖UI⼯工具的帮助 • 如何解决⾃自动获取Saga事务定义的问题? ⾃自动构造事务调⽤用信息 A B E C D Service Provider0 码力 | 33 页 | 2.38 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁commit() OK • 提供强⼀一致保障 • 准备阶段完成资源操作 • 如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) • 隔离性 ( Isolation) http://microservices.io/microservices/general/2018/03/22/microxchg-sagas.html 如何应对隔离性问题 • 隔离的本质是控制并发,防⽌止并发事务操作相同资源⽽而引起结果错乱 • 在应⽤用层⾯面加⼊入逻辑锁的逻辑。 • Session层⾯面隔离来保证串串⾏行行化操作。 • 业务层⾯面采⽤用预先冻结资⾦金金的⽅方式隔离此部分资⾦金金。 Compensation Transaction 集中式Saga实现过程中问题 • 好处 • 集中式的服务调⽤用易易于监控和协调 • 坏处 • 通过JSon描述Saga事务执⾏行行灵活性不不⾼高 • 业务描述与代码相分离,需要依赖UI⼯工具的帮助 • 如何解决⾃自动获取Saga事务定义的问题? ⾃自动构造事务调⽤用信息 A B E C D Service Provider0 码力 | 39 页 | 2.78 MB | 1 年前3
支持10万TPS的高性能服务间通信解读0 码力 | 7 页 | 1.58 MB | 1 年前3
Service Mesh在华为公
有云的实践与微服务部署在⼀一个Pod • 占⽤用资源很⾼高 Mesher • Service Mesh的⼀一种实现 • 基于⾃自研的Go语⾔言微服务框架(即将开源)开发 • 使⽤用CSE注册中⼼心与配置中⼼心 • 以Sidecar的⽅方式部署在微服务所运⾏行的环境中,也可以 PerHost模式运⾏行 • ⽀支持多种部署⽅方式 • 占⽤用资源⼩小(闲置10多M,并发运⾏行时30多M) • 简介 • Linkerd1.1.3 Latency(ms) 17.2 465 34.7 TPS 8264 388 4235 CPU 300% 170% 310% Memory 35M 20M 196M 并发 20 20 20 4U8G 与ServiceComb侵⼊入式框架对⽐比 Mesher与普通应⽤用性能对⽐比 为何性能下降依然要使⽤用 ServiceMesh? 为什么要开发Mesher0 码力 | 52 页 | 4.37 MB | 1 年前3
微服务环境下的系统治理与容错《架构修炼之道》作者,《决战618:探秘京东技术取胜之道》联合作者; • 对分布式、微服务系统有多年实战经验,所设计和研发的系统经历了多次百亿流量的验证; • 热爱分享,维护技术公众号 [程序架道],对高并发、高可用系统有持续不懈的追求; 个人微信号 技术公众号 • 微服务架构 • 容错 • 总结 • 治理 微服务架构 架构 架构 架构是为应用程序服务的 软件系统应用程序的需求 软件系统的价值维度0 码力 | 45 页 | 16.09 MB | 1 年前3
庖丁解牛:华为云微服务工具解放开发者简单 沟通效率 低 高 技术栈选择 受限 灵活 可扩展性 受限 灵活 可重用性 低 高 实现业务复杂性分解难度 困难 容易 产品创新复杂度 困难 容易 一致性实现成本 低 高 时延 低 高 资源成本 低 高 关联查询复杂度 简单 复杂 远程调用 不涉及 涉及 服务治理 不涉及 涉及 对开发人员的要求 低 高 对工具的依赖 较低 较高 运维复杂度 低 高 Huawei Confidential Step2:逐条根据SQL创建语法树 Step3:在每棵语法树上分析表的关联关系并汇集 成表关联关系加权图 Step6:采用图切割算法并配合启发式规则将表分 割到不同库中 原则:低耦合,高内聚 耦合度:微服务划分后,微服务与微服务连接的边的权重之和 内聚度:微服务划分后,微服务内部表与表之间的边权重之和 采用图搜索算法划分微服务的启发式规则(规则可自定义): 规则1:贪婪原则0 码力 | 14 页 | 1.54 MB | 1 年前3
华为云分布式事务DTM最佳实践2PC 传统事务 可靠事件 TCC 柔性事务 SAGA 补偿事务 数据一致性 强一致 最终一致 最终一致 最终一致 总体性能 低 高 取决于实现 取决于实现 业务侵入性 较低侵入 高侵入 高侵入 高侵入 适用广泛性 一般 一般 高 低 产品成熟度 高 高 一般 低 方案对比 6 github.com/apache?q=servicecomb servicecomb.apache.org0 码力 | 15 页 | 3.10 MB | 1 年前3
华为企业级PaaS 微服务应用助力文思海辉PHP语言系统实现 全微服务化架构 基于RFID技术的楼宇设施管理 遇到的问题 性能瓶颈稳定 性差 复杂度高不易 扩展 • 单体应用,功能耦合 • 新增功能影响现有业务,升级业务中断 • 业务增长对性能要求高,增加机器不能解决问 题 • 一个业务问题影响整个系统,风险高 基于微服务引擎Mesher功能将PHP应用接入微服务治理 Mesher 工作流服务 Mesher 故障处理服务 音乐播放控制 订单 用户行为 用户社交 华为音乐传统单体架构拆解成15+个微服务,基于CSE开发和治理 • 传统单体架构升级、维护、扩容成本高 • 架构不统一,有使用SpringCloud、Dubbo、Servlet等各 种架构,维护成本非常高 大系统小做缩短上线周期 • 快速、小批量交付价值需求 • 上线周期: 月 -> 周/天 动态自治降运维成本 • 弹性伸缩、故障自动迁移、 应用全微服务化,接口标准由财政厅统一管控, ISV只需聚焦微服务交付,降低依赖性 统一业务模型和数据集成标准,系统无缝对接, 财政数据统一呈现,业务全盘管控 基于先进研发理念,标准化研发环境和工 具,开发效率高,财政需求上线快 解除ISV绑定 降低业务监管难度 新需求上线快 servicecomb.apache.org github.com/apache?q=servicecomb 同济大学,教学管理信息微服务化上云0 码力 | 17 页 | 3.42 MB | 1 年前3
ServiceComb 介绍0 • 支持通过@Span注释的方式定义事务 • 统一了Http请求处理,支持对Rest调用进行定制处理 • Saga 0.1.0 • 提供了初步的Saga调用服务,支持顺序以及并发的调用处理 社区贡献 01/ 提交BUG 02/ 完善文档 03/ 参与邮件列表 04/ 提交Patch • 线上: – 关注微信公众获取信息 – 加入微信群进行交流0 码力 | 16 页 | 1.26 MB | 1 年前3
共 34 条
- 1
- 2
- 3
- 4













