Java Chassis通信处理详解 - 通信优化实践
Java Chassis通信处理详解 通信优化实践 议题 问题不挑战 整体线程模型 Consumer Producer 问题不挑战 消费者 编程 模型 透明 RPC Spring MVC Transport Highway Vertx REST Servlet REST 生产者 编程 模型 透明 业务线程 Vertx Message Buffer Connection.send -> Socket.write(buf) Consumer Highway client-优化单连接模型 Eventloop TcpClientConnecton 业务线程 …… 业务线程 Vertx Message Buffer CAS Message Queue Socket.write(composite buffer) TPS Latency(ms) CPU Consumer Producer 优化前 81986 1.22 290% 290% 优化后 145369 0.688 270% 270% Connection.send Consumer Highway client-多连接模型 Eventloop0 码力 | 17 页 | 2.22 MB | 1 年前3微服务架构及ServiceComb实践
更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github pressure… 1…..* 接口 内容 currentWeather 返回当前天气 数据库 API 任务 内容 getWeatherTask 从OpenWeatherMap定期 查询天气数据 定时任务 [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 背景:因为竞争的加剧,电商系统越来越复杂,无论电商系统的规模大小,微服务几乎是事实标准。 12306网站 15年 峰值 1032 单/s 11.7w PV 电商“抢购”“场景中企业中遇到的困难 1. 性能要求不断优化,和不能引入Bug之间的矛盾。 2. “变态”级别的高可用性要求。 3. 声誉和法律风险。 4. 抢购体验 商家的技术能力 产品质量。 [社区网站] http://servicecomb.apache0 码力 | 14 页 | 2.04 MB | 1 年前3华为微服务框架ServiceComb
response 2018 Building Microservice NO.1 深圳站: Cloud Native 架构下的 K8S 和微服务实践 跨服务事务追踪 • 通过一个全局事务将这些子事务关联在一起 • 服务提供方通过Omega注入全局事务ID • 服务的消费方通过Omega获取全局事务ID Request Interceptor Inject tx id Service ServiceComb 1.0.0-m1新特性 • Java Chassis • 异步调用接口支持 • 监控指标模块优化,支持不prometheus, OverWatch • 支持通过携程Apollo劢态配置实例 • Service Center • 优化Service Center性能,修复Bug • Saga 0.1.0 • 支持通过Annotation在用户代码定义事务0 码力 | 28 页 | 1.53 MB | 1 年前3ServiceComb在华为消费者云的亿级用户微服务实践
充值服务 APP付费下载服务 APP评论服务 业务线程池 手机客户端 WAP客户端 图书门户 单点故障 故障扩散 故障扩散 无线程池隔离仓: 充值服务 开户服务 客户资料查询服务 其它非关键服务 隔离仓-1 隔离仓-3 手机客户端 WAP客户端 图书门户 单点故障 正常 正常 隔离仓-2 配置隔离仓: 通过配置线程池隔离仓,实现快 慢接口、读写接口、核心和非核 极大的提升了消费者云业务研发效率 需求的研发和交付周期缩短,业务更敏捷应对变化 可独立交付和升级的服务越来越多,业务之间逐步解耦,可独立演进 服务之间的接口契约可视化、可度量和管控,架构看护和优化更有章可循 服务无状态,微服务数据自治,天生的弹性伸缩架构,高效支撑业务快速发展 提供微服务维度的监控大盘和细粒度的治理措施,运维更得心应手 个人级、微服务团队级、项目级三级微服务流水线体系,基础设施自动化0 码力 | 15 页 | 1.15 MB | 1 年前3微服务架构与领域驱动设计 - 王磊
领域驱动设计的理理论基础 Strategic-战略略建模 Ubiquitous Language - 统⼀一语⾔言 • 使⽤用⼀一致的业务描述语⾔言 Domain&Subdomains - 领域&⼦子域 • Core Domain • Supporting Domain • Generic Domain Bounded Contexts - 业务上下⽂文 • 定义领域模型的应⽤用范围和其上下⽂文 让⼈人们可以互相讨论 彩⾊色即时贴:使⽤用不不同颜⾊色标识 Alberto Brandolini 如何使⽤用Event Storming 业务流梳理理 寻找事件 寻找命令 寻找聚合 划分⼦子域&界限上下⽂文 理理解业务 发⽣生了了什什么? 通过什什么产⽣生? 谁引起的? 分解系统(划分微服务) 统⼀一语⾔言 顺畅的沟通 ① ② ③ ④ ⑤ ⑥ 统⼀一语⾔言 设计中的技术⽅方⾯面 但不不出现在设计 中的业务术语 统⼀一语⾔言 业务流梳理理 寻找事件 寻找命令 寻找聚合 划分⼦子域&界限上下⽂文 统⼀一语⾔言 ① ② ③ ④ ⑤ ⑥ 业务流梳理理 领域专家介绍业务,参与者可以任意提问,⼤大家在理理解业务的基础上梳理理出业务流。 业务流梳理理 寻找事件 寻找命令 寻找聚合 划分⼦子域&界限上下⽂文 统⼀一语⾔言 ① ② ③ ④ ⑤ ⑥ 寻找事件 注意要点:0 码力 | 28 页 | 1.84 MB | 1 年前3杨钦民-唯品会微服务架构演进之路v0.2
���� �� ����� ������� ������� �*�������� �*�������� �*������ �*�������� 订单服务化P取消订单相关服务ba 查询订单 查询商品u息 取消校验 取消订单 释放库存 返还l惠 退款 � � � �� � � � �� �� ����� � � � �� ����� ����� ü 请求失败率(4NN/5NN/osH faADed ü 异常发生率 ü 43L性能指标 ü 拓扑s赖关系和性能指标 ü 调用链检索Q通过W务关键字) ü 慢调用查询 ü 失败调用查询Q4NNT5NN) ü 调用链详情展示 监控告警 全链路监控/eIcLIO核心jv 应用开发c员 I5运维T监控中心c员 应用管理c员 • 快速故障告警和问题定o0 码力 | 43 页 | 3.89 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) • 隔离性 ( Isolation) • 持久性 (Durability) • BASE • 基本可⽤用(Basically rental saga T T' time ACID 与 Saga • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) • 隔离性 ( Isolation) • 持久性 (Durability) • Saga只提供ACD保证 • 原⼦子性(通过Saga协调器器实现) • ⼀一致性 (本地事务 + Saga log) •0 码力 | 33 页 | 2.38 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
如果准备过程中出现问题,可以回滚 • 提交阶段不不允许出错 • 资源层⾯面提供保障业务侵⼊入性低 • 协议成本⾼高,并且存在全局锁的问题 ACID 与 BASE • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) • 隔离性 ( Isolation) • 持久性 (Durability) • BASE • 基本可⽤用(Basically rental saga T T' time ACID 与 Saga • ACID • 原⼦子性 (Atomicity) • ⼀一致性 (Consistency) • 隔离性 ( Isolation) • 持久性 (Durability) • Saga只提供ACD保证 • 原⼦子性(通过Saga协调器器实现) • ⼀一致性 (本地事务 + Saga log) •0 码力 | 39 页 | 2.78 MB | 1 年前3使用微服务架构快速开发万级TPS高可用电商系统
更适合小团队(个人)开发管理 • 更容易实验和采纳新的技术。 强大: • 使大型的复杂应用程序可以持续的交付和持续的部署。 • 更容易测试 • 更容易对已有大型系统进行修改和扩展 • 容易进行的性能优化 • 更高的可用性 • 更容易的进行性能伸缩性 适合同学们学习 Demo也可以作为生产系统的一部分 [社区网站] http://servicecomb.apache.org [Github 背景:因为竞争的加剧,电商系统越来越复杂,无论电商系统的规模大小,微服务几乎是事实标准。 12306网站 15年 峰值 1032 单/s 11.7w PV 电商“抢购”“场景中企业中遇到的困难 1. 性能要求不断优化,和不能引入Bug之间的矛盾。 2. “变态”级别的高可用性要求。 3. 声誉和法律风险。 4. 抢购体验 à 商家的技术能力 à 产品质量。 [社区网站] http://servicecomb.apache [社区网站] http://servicecomb.apache.org [Github ] https://github.com/apache?q=servicecomb 步骤2 优化 先关注数据层的优化 1. 锁资格 - (锁库存-下订单) CP MySQL-MGR 高带宽 NvmeSSD-持久化配置 索引-加 锁 update-where 2. 库存缓存 AP Codis 30 码力 | 15 页 | 1.46 MB | 1 年前3庖丁解牛:华为云微服务工具解放开发者
技术栈选择 受限 灵活 可扩展性 受限 灵活 可重用性 低 高 实现业务复杂性分解难度 困难 容易 产品创新复杂度 困难 容易 一致性实现成本 低 高 时延 低 高 资源成本 低 高 关联查询复杂度 简单 复杂 远程调用 不涉及 涉及 服务治理 不涉及 涉及 对开发人员的要求 低 高 对工具的依赖 较低 较高 运维复杂度 低 高 Huawei Confidential 4 >服务数量太少,不够灵活 >一个user story影响众多服务 >接口频繁变更 >大量关联查询 >系统架构复杂度提升 Huawei Confidential 6 通过微服务拆分工具解放开发者 支撑活动 方法论 • ThoughtWorks五步十一阶 • DDD聚合 • 事件源Event Sourcing • 命令查询责任分离CQRS 现有做法 业务改造 投入大 + 应用上云 + IaaS0 码力 | 14 页 | 1.54 MB | 1 年前3
共 22 条
- 1
- 2
- 3