NTTDATA 汽车行业数字营销平台微服务化实践客户和线索 数据库 工单 数据库 系统管理 数据库 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
微服务场景下的数据一致性解决方案 - 殷湘•断 方案选择建议 离 数据一致性的起因 单体应用 • 单体应用由于所有模块(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
庖丁解牛:华为云微服务工具解放开发者Confidential 8 微服务拆分工具 单体应用 单体数据库 微服务数据库 A库 B库 服务A 服务B 步骤1:通过SQL的关联程 度、使用次数等,识别出 相关性最高的表划分成一 个微服务 微服务数据库 A库 B库 服务A 服务B 步骤2:通过表结构调整, 将不同的数据库进行解耦, 防止一个微服务跨库访问 (反范式、服务重构等) 微服务数据库 A库 B库 服务A 服务B 步骤3:大表水平拆分,实0 码力 | 14 页 | 1.54 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
华为云分布式事务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
微服务架构及ServiceComb实践返回当前天气 数据库 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高可用电商系统房资格的对应信息(验资,诚意金等) 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/docker http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 最简单的微服务 组件 • 1个服务(应用+数据库) • 服务注册中心 a) https://github.com/apache/servicecomb-center 服务注册中心 b) 核心服务注册表 |---服务名---|---服务实例UI http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 服务间的通信 背景:为什么服务间通信重要? • 每个微服务有自己的数据库(层) • 服务架构应用的质量很大程度取决于服务的拆分的高内聚,低耦合,不了解服务间通信,无法做出高质量的拆分。 不同的业务,涉及的不同的服务间通信有不同的要求 1. 关注事务性要求(ACID)0 码力 | 15 页 | 1.46 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
《Saga分布式事务解决⽅案与实践》演讲者/姜宁微服务架构将⼀一个应⽤用分成多个相互独⽴立的服务。 • 好处是各个服务能够持续独⽴立的开发和部署。 • 难题是服务的数据需要采⽤用什什么样的⽅方式来进⾏行行存储? 多个微服务使⽤用同⼀一数据库 A B C commit rollback ⼀一个典型的微服务架构应⽤用 EdgeService Customer Service Order Service Inventory 真正执⾏行行业务,不不做业务检查 • Cancel:取消执⾏行行业务 • 释放Try阶段预留留的业务资源 业务服务 try confirm cancel 通过领域建模来解决 • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long0 码力 | 39 页 | 2.78 MB | 1 年前3
反应式微服务框架ServiceComb设计思想&mdash的通信模型演进—Reactor 黄金法则:不要阻塞Event Loop 什么才叫阻塞? n Thead.sleep() n 等待一个锁 n 等待一个互斥信号或监视器(例如同步的代码块) n 执行一个长时间数据库操作并等待其结果 n 执行一个复杂的计算,占用了可感知的时长 n 在循环语句中长时间逗留 10000TPS=0.1ms处理一个请求 如果利⽤多核? ServiceComb 采⽤Vert.x的背景0 码力 | 33 页 | 5.68 MB | 1 年前3
共 17 条
- 1
- 2













