NTTDATA 汽车行业数字营销平台微服务化实践库存物流数据 组织架构数据 活动渠道数据 …… 厂 营销中台 销售中台 内容管理 活动管理 …… 线索管理 客户管理 渠道管理 活动工具管理 公众号矩阵管理 标签管理 个性化推荐引擎 工单管理 线索管理 销售助手 权限管理 客服 中台 电话客服 在线客服 业务 分析 主数据管理 …… 用户行为分析 销售转化分析 活动分析 客服分析 …… 业务智能核心,C2B2C闭环持续优化 (SpringBoot + 华为 云CSE) 工单 服务实例#N (SpringBoot + 华 为云CSE) 系统管理 服务实例 #N (SpringBoot + 华 为云CSE) 阿里云集成 服务实例 #N (SpringBoot + 华 为云CSE) 客户和线索 数据库 工单 数据库 系统管理 数据库 CCC + 客服 数据库 更多新业务 服务实例 #N (SpringBoot (etcd增强) 治理中心 (Hystrix+Rib bon增强) 新业务 数据库 华为云CSE介绍 Apache ServiceComb 公有云对接能力 安全管理 分布式数据一致 性 REDIS 缓存 OBS存储 缓存 X-API_KEY HTTPS/HTTP 服务注册 数据库 API调用 (ACCESS_TO KEN) 9 github.com/apache0 码力 | 11 页 | 2.25 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) q=servicecomb 微服务的“强大”- 以电商“抢购”场景举例 背景:因为竞争的加剧,电商系统越来越复杂,无论电商系统的规模大小,微服务几乎是事实标准。 12306网站 15年 峰值 1032 单/s 11.7w PV 电商“抢购”“场景中企业中遇到的困难 1. 性能要求不断优化,和不能引入Bug之间的矛盾。 2. “变态”级别的高可用性要求。 3. 声誉和法律风险。 4. 抢购体验 商家的技术能力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
张波-虎牙直播在微服务改造中的实践应用层探活 数据库故障 恢复时间长 服务故障牵 引慢,流量 接入生效时 间长 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 务弹性能力的要求较高,在业务高峰如果不能快速扩容,容易出现全网故障 传统配置下发方式 负载均衡配置固话在配置文件中, 节点操作需要人工上系统操作增减 节点 配置中心监听方式 客户端主动监听配置更新,配置秒 级生效,新扩容服务主动拉取全量 配置,流量接入时长缩短3分钟+ 配置名字服务 配置IP方式 服务端下发文件更新配置,更新配 置生效时间长,由于需要预先知道 负责均衡集群的机器信息,扩缩容 需要等元信息同步以后才能接入流0 码力 | 27 页 | 1.03 MB | 1 年前3
庖丁解牛:华为云微服务工具解放开发者Confidential 8 微服务拆分工具 单体应用 单体数据库 微服务数据库 A库 B库 服务A 服务B 步骤1:通过SQL的关联程 度、使用次数等,识别出 相关性最高的表划分成一 个微服务 微服务数据库 A库 B库 服务A 服务B 步骤2:通过表结构调整, 将不同的数据库进行解耦, 防止一个微服务跨库访问 (反范式、服务重构等) 微服务数据库 A库 B库 服务A 服务B 步骤3:大表水平拆分,实 algorithm (greedy/clustering/…) output 数据拆分 建议文件 解析代码,搜集sql语句 开发时预处理:通过 Antlr4工具生成java可识 别的解析规则的对象, 埋入源码 生成sql语句集(Mysql 或其他DB的方言) mysql/oracle 的规则文件 生成表关联关系list 计算权重,生成图 输出权重图, 选择、调用 指定算法 贪婪/谱聚类算法0 码力 | 14 页 | 1.54 MB | 1 年前3
微服务的设计原则与⽣态系统 - 王磊康威定律律:组织产⽣生的设计成果等同于组织内的协作结构 微服务架构的设计原则 • 竞争能⼒力力平衡 • 围绕业务构建 • “去”中⼼心化 • ⾃自动化“⼀一切” 去“中⼼心化” - ⽤用合适的技术解决问题 数据库作为集成点 去“中⼼心化” - 业务持有数据 ⽤用户会话 Redis 会话服务 上下⽂文 购物⻋车 购物⻋车 产品数据 Mongo 产品服务 上下⽂文 上下⽂文 Redis 服务重启/升级后的IP地址变化 • ⽔水平伸缩后服务的实例例数量量变化 • 同⼀一个结点运⾏行行多个服务(端⼝口不不同) 集中配置管理理 配置信息的管理理 50 • 与服务在同⼀一个包中 • 使⽤用隔离的配置⽂文件 • 使⽤用环境变量量管理理 配置信息管理理的挑战 51 • 动态更更新配置信息 • 多实例例间的同步 • 配置信息的版本管理理 容错(Resilient) 52 • 降级 - 关闭⾮非核⼼心业务,保证核⼼心业务可⽤用 服务发现/熔断/负载均衡/跟踪 通信模型 - ⾼高效的序列列化机制/传输协议 华为ServiceComb 持续交付流⽔水线 端到端⼯工具链 ⼯工程化实践 测 部 运 发 开 •独⽴立代码库 •服务说明⽂文件 •易易于本地运⾏行行 •测试⾦金金字塔 •契约测试 •组件测试 •基础设施即代码 •⼀一键部署(环境/⽅方式) •特性开关 •蓝绿部署 •⾦金金丝雀发布 •监控 •告警 •⽇日志聚合0 码力 | 62 页 | 6.65 MB | 1 年前3
Service Mesh的思考及在华为云的实践app (OCR client) Tenant VPC JDBC Model/Services lifecycle management API 25 华为ServiceMesh 华为云数据库 作业 人员 系统维护 作业 人员 系统维护 楼宇内各空间位置信标及资产标签 楼宇内各空间位置信标及资产标 签 3G/4G 服务台 管理者 管理者 楼宇1 楼宇n 高级管理 系统维护 华为云存储 最佳实践 • 结合容器,容器网络,编排调度平台,监控平台使用 • 业务代码只需监听在127.0.0.1.使用mesher对外提供服务 • 使用SideCar部署模式 • 将服务提供者地址写在配置文件中,在本地里信息是http://x.x.x.x:port, 进行开发调试,上云后 需要与Mesher使用时,改为http://ServiceName • 服务调用层级不要超过3层 • 若调用层0 码力 | 29 页 | 1.55 MB | 1 年前3
Java Chassis通信处理详解 - 通信优化实践Consumer Highway client-原始单连接模型 Eventloop TcpClientConnecton 业务线程 …… 业务线程 Vertx Message Buffer Connection.send -> Socket.write(buf) Consumer Highway client-优化单连接模型 Eventloop TcpClientConnecton Buffer CAS Message Queue TPS Latency(ms) CPU Consumer Producer 原始单连接*10 543442 0.919 2305% 1766% CAS单连接*10 939117 0.532 1960% 1758% Eventloop TcpClientConnecton Vertx Message0 码力 | 17 页 | 2.22 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
康彬-基于微服务的混合云和同城双活实践data_proxy LB DNS app/browser nginx-Proxy nginx-Proxy data(r) 同城双活的探索 未来的担忧 单机房 如果发生机房级的灾难怎么办? 单集群 随着流量越来越大,集群规模 越来越大,怎么破? 单元化&多活的范围 boss 客服系统 销售系统 风控审核 催收系统 政策管理 prod devops 监控系统 调用链路 日志系统 web层 service层 data层 机房2 云机房 LB Nginx-Proxy Nginx-Proxy 外网 内网 DNS h5 LB 混合 云 同城 双活 单 元 中 心 云 单 元 native/wex 单元化&多活应用场景 蓝绿发布step1 LB 100 % service1_A SET_A service2_A service3_A service1_B0 码力 | 47 页 | 6.09 MB | 1 年前3
共 29 条
- 1
- 2
- 3













