庖丁解牛:华为云微服务工具解放开发者微服务架构的优势 因素 单体架构 微服务架构 交付速度 较慢 较快 故障隔离范围 线程级 进程级 整体可用性 较低 更高 架构持续演进 困难 简单 沟通效率 低 高 技术栈选择 受限 灵活 可扩展性 受限 灵活 可重用性 低 高 实现业务复杂性分解难度 困难 容易 产品创新复杂度 困难 容易 一致性实现成本 低 高 时延 低 高 资源成本 低 高 关联查询复杂度 简单 复杂 远程调用 单体应用 单体数据库 微服务数据库 A库 B库 服务A 服务B 步骤1:通过SQL的关联程 度、使用次数等,识别出 相关性最高的表划分成一 个微服务 微服务数据库 A库 B库 服务A 服务B 步骤2:通过表结构调整, 将不同的数据库进行解耦, 防止一个微服务跨库访问 (反范式、服务重构等) 微服务数据库 A库 B库 服务A 服务B 步骤3:大表水平拆分,实 现水平扩展,提升访问速度 从左到右分别是拆分出来的商品库、模板库,最后一些离散表是系统为了关联外部系统而引入的表,独立成库 Huawei Confidential 11 案例2:存量系统2微服务拆分分析-图搜索拆分微服务 从左到右分别是拆分出扩展属性服务、模型/模型实例服务、目录服务以及离散表独立成的服务,其中离散表中标红部分概念上应该划分到模型/模型实例服 务中,但实际的sql,却并未体现其和模型/模型实例的关联关系,因此被自动划分到独立服务中0 码力 | 14 页 | 1.54 MB | 1 年前3
微服务架构及ServiceComb实践服务可以独立的部署。 • 更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache 返回当前天气 数据库 API 任务 内容 getWeatherTask 从OpenWeatherMap定期 查询天气数据 定时任务 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 – 微服务的基本组件 组件 • 1个服务(应用+数据库) • 服务注册中心 http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID)0 码力 | 14 页 | 2.04 MB | 1 年前3
使用微服务架构快速开发万级TPS高可用电商系统服务可以独立的部署。 • 更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache 管理楼盘的基本信息,楼盘 1-n 楼栋 1-n 房源。 管理开售活动,进行开售时 的抢购 用户查看自己的开售活动和 抢房资格,管理查看收藏的 房源,查看自己的抢房结果。 用户和管理员登录/修改密 码等功能。可扩展为多种登 录方式。 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 房资格的对应信息(验资,诚意金等) id, customer_id, sale_id, comments 1…..* 接口 内容 customers CRUD qualifications CRUD 数据库 API git clone https://github.com/apache/servciecomb-samples cd servicecomb-samples/houserush/script/docker0 码力 | 15 页 | 1.46 MB | 1 年前3
NTTDATA 汽车行业数字营销平台微服务化实践线索清洗评分智能化、智能分流 • 自动化个性精准营销 • 自动化投放追踪 • 营销内容自动分发 • 智能客服 智能化 • 移动端优先、用户体验优先 • 易使用、培训便利化 • 管理多级可视化 • 系统易维护、易扩展开发 便利化 数字营销平台 6 github.com/apache?q=servicecomb servicecomb.apache.org 功能架构 线上渠道 主机厂/经销商入口 业务 客户和线索 数据库 工单 数据库 系统管理 数据库 CCC + 客服 数据库 更多新业务 服务实例 #N (SpringBoot + 华 为云CSE) UAT和PROD使用CSE企业版; 本地开发和SIT使用本地轻量级CSE服务 服务中心 (>Eureka) 配置中心 (etcd增强) 治理中心 (Hystrix+Rib bon增强) 新业务 数据库 华为云CSE介绍 X-API_KEY HTTPS/HTTP 服务注册 数据库 API调用 (ACCESS_TO KEN) 9 github.com/apache?q=servicecomb servicecomb.apache.org 微服务化数据逻辑设计CRM接口库. 接口数据库 <营销活动工具> 营销活动工具 数据库 CRM ETL Server (kettle) CRM业务库 0 码力 | 11 页 | 2.25 MB | 1 年前3
华为企业级PaaS 微服务应用设计和开发 构建 测试 发布上线 监控运维 部署 流 水 线 ( 持 续 集 成 、 持 续 交 付 ) 扩展插件: Eclipse等 扩展插件: 静态检查等 扩展插件: 三方部署系 统 扩展插件: 客户测试系 统 扩展插件: 客户自有仓 库 扩展插件: 客户自有监 控 开发者生态 开源社区 案例 开发者 API 产品 生态 通用微服务工具市场 行业微服务组件市场 ARM CCI 虚机 CCE servicecomb.apache.org github.com/apache?q=servicecomb 围绕应用构建平台功能 • 操作的起点为应用 • 数据库,缓存服务,容器平台等围绕应用创建 应用 RDS DDM DMS DCS CCE ECS ELB 监控 软件中心 流水线 servicecomb.apache.org github github.com/apache?q=servicecomb 助力文思海辉PHP语言系统实现 全微服务化架构 基于RFID技术的楼宇设施管理 遇到的问题 性能瓶颈稳定 性差 复杂度高不易 扩展 • 单体应用,功能耦合 • 新增功能影响现有业务,升级业务中断 • 业务增长对性能要求高,增加机器不能解决问 题 • 一个业务问题影响整个系统,风险高 基于微服务引擎Mesher功能将PHP应用接入微服务治理0 码力 | 17 页 | 3.42 MB | 1 年前3
张波-虎牙直播在微服务改造中的实践应用层探活 数据库故障 恢复时间长 服务故障牵 引慢,流量 接入生效时 间长 DNS生效慢 内部服务无 就近接入能 力 服务性能下 降流量不摘 除 实 例 切 换 能 力 秒 级 流 量 牵 引 能 力 D N 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.mysql if M1 down and M1 is master: choose newest slave: S1 or S2, compare slave IO/SQL 分布式高可用最小集群数量 Config2+Admin3+Portal*2+Mysql =8 Nacos*3+MySql=4 配置格式校验 支持 支持 通信协议 HTTP HTTP 数据一致性 数据库模拟消息队列,Apollo定时 读消息 HTTP异步通知 单机读(tps) 9000 15000 单机写(tps) 1100 1800 技术选型 • Dubbo生态产品, Nacos源于阿里内部服务的开源实现;0 码力 | 27 页 | 1.03 MB | 1 年前3
微服务场景下的数据一致性解决方案 - 殷湘•断 方案选择建议 离 数据一致性的起因 单体应用 • 单体应用由于所有模块(A/B/C)使用同一个数据库 • 数据一致性通过数据库事务保证 A B C commit rollback 微服务场景 MySQL MongoDB Cassandra 数据一致性无法完全通过数据库保证 离 独立进程 独立部署 独立技术 独立团队 合 数据一致性的解决方案 T1 T2 T3 C2 car rental saga T T' time 断 一致性方案的选择建议 ? ??? ???? ? ?? ? ? ? ?? 一致性方案的选择建议 • 微服务内:聚合通过数据库事务保证强一致 内刚 • 微服务间:最终一致 外柔 微服务架构与领域驱动设计 • if our service boundaries align to the bounded contexts 聚合内:强一致 跨聚合:最终一致 聚合边界:强一致边界 一致性方案选择建议 • 微服务:限界上下文 • 聚合边界:强一致边界 • 限界上下文 -> 1 .. N 聚合 微服务内:聚合通过数据库事务保证强一致 微服务间:最终一致 如果需要分布式强一致,先考虑设计是否合理而非追求最新技术 合理的设计能大大减少技术复杂度和商业成本 总结 • 起因:离 • 方案:Saga 222 • 选择建议:内刚0 码力 | 31 页 | 4.28 MB | 1 年前3
华为云分布式事务DTM最佳实践DTM-Client (参与者) Service B DTM-Server 配置中心 运维中心 Database A DTM-Client (参与者) Database A 业务数据库A 业务数据库B 事务数据库 用户侧 系统侧 管理面 数据面 TCC实现 TCC实现 8 github.com/apache?q=servicecomb servicecomb.apache.org0 码力 | 15 页 | 3.10 MB | 1 年前3
Service Mesh在华为公
有云的实践和落地,Go语⾔言微服务框架被华为5G核⼼心⺴⽹网络采⽤用,Service Mesh服务商⽤用上 线公有云 • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • Service Mesh在华为内部的技术演进 我们在构建微服务,⽽而构建微服务是困难 的 微服务架构模式引⼊入的问题 路由规则 • 引流 • ⽀支持权重 • 根据消费者信息或请求特征进⾏行引流 开发出开的应⽤用既是云原⽣生的⼜又具有独⽴立性 没有银弹 • 新的故障点 • ⼀一定程度的性能降低 • 侵⼊入式框架有更强的定制和扩展能⼒力 • 部署复杂性 • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • Service Mesh在华为内部的技术演进 第⼀一代:基于Nginx的微服务代理 • 2013年,微服务开发平台中的组 ⽀支持多种部署⽅方式 • 占⽤用资源⼩小(闲置10多M,并发运⾏行时30多M) • 简介 • 实现⼀一个Service Mesh • 使⽤用Service Mesh快速构建微服务 • ⽣生态与扩展 • 与PaaS平台结合 • Service Mesh在华为内部的技术演进 整体架构 Mesher Service Mesher Service Mesher Service Mesher0 码力 | 52 页 | 4.37 MB | 1 年前3
《Saga分布式事务解决⽅案与实践》演讲者/姜宁微服务架构将⼀一个应⽤用分成多个相互独⽴立的服务。 • 好处是各个服务能够持续独⽴立的开发和部署。 • 难题是服务的数据需要采⽤用什什么样的⽅方式来进⾏行行存储? 多个微服务使⽤用同⼀一数据库 A B C commit rollback ⼀一个典型的微服务架构应⽤用 EdgeService Customer Service Order Service Inventory 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long0 码力 | 33 页 | 2.38 MB | 1 年前3
共 31 条
- 1
- 2
- 3
- 4













