高可用与一致性:构建强一致性分布式数据库 TiDB-沈泰宁构建强⼀一致性分布式数据库 TiDB 沈泰宁 R & D Engineer @ PingCAP ⾃自我介绍 ⾃自我介绍 • 沈泰宁 • R&D Engineer @ PingCAP • Maintainer • rust-prometheus • grpc-rs • … ⽬目录 • What is TiDB? • How to test? What is TiDB? Single0 码力 | 45 页 | 4.63 MB | 1 年前3
苏宁易购小程序架构实践 苏宁 禹立彬二维码预生成服务 • 图片合成———素材+二维码朋友圈分享 小程序服务-服务通知 • 微信——收集formid • 业务系统消耗formid发送模板消息 小程序服务-数据推荐 • 百度推荐———用户冷启动服务 • 基于商品库推荐 2 小程序前端框架 CONTENTS 小程序的前端构成 小程序的业务主要分为,核心购物流 程,活动玩法,辅助页面三类 复用购物流程———同步器 3 小程序业务组件 CONTENTS • 使用原生的方式开发,没有使用wepy等框架 • 分包加载,主包原则只放购物主流程 • 尽量压缩业务代码,减少文件大小 • 控制基础库版本,减少对用户的影响 request,登录与302 request,登录与302 在网页状态下运行良好的登录机制,在小程 序下,无法兼容。 loginRequest组件 请求专用接口,并保存登录状态0 码力 | 36 页 | 833.39 KB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造回调 商城库存 已编辑 编辑库 存 商城库存 已扣减 扣减库 存 商城库 存 增加库存 订单 已发货 发货 订单 已签收 订单已 确认收货 收货 物流系 统 仓库库存 已占⽤用 仓库库存 已扣减 占⽤用库存 扣减库 存 创建 投诉单 订单已 退货 退货 处理理投 诉单 仓库库 存 增加库 存 退货单 已 退货单 已 明确服务包含的数据表 可视化的拆解遗留留系统 微服务架构、绞杀模式、代码依赖分析、数据库依赖分析、 遗留留系统拆解评分表、降⻰龙⼋八步 庖丁解⽜牛拆解的最⾼高境界 了了解⽜牛的⽣生理理构造 避开筋腱⻣骨节交错的组织 从⻣骨节的缝隙下⼿手 ⼗十九年年⼑刀依然锋利利 再看⼀一眼微服务架构 我们要做应⽤用代码拆分 我们要做数据库拆分 绞杀者模式 ‣“绞杀者模式”在既有系统资产的基础上实现数字IT创 数据库依赖模式 模块A Data Mapper /ORM 相关联但不不属于 模块A的表 模块A Data Mapper /ORM 属于模块A的表 以模块(java包)为基本单位,从数据库依赖的⻆角度看,有两种模式: 属于模块A 的表 扫描数据库依赖 UserMapper.java UserMapper.xml JAVA定义 XML实现 扫描数据库依赖0 码力 | 54 页 | 3.85 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践设计要点四:服务拆分与服务发现 www.163yun.com 设计要点亓:数据库横向扩展 www.163yun.com 设计要点六:缓存的设计 APP缓存 CDN 接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 APM (应用运行期监控) 运行时 拓扑 性能 监控 服务 筛选 调用 链 调用 栈 JVM 监控 数据库 监控 性能 告警 自定义 数据 服务 告警 监控 大屏 账户 审计 CICD (开发流程管理) 代 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 服务 告警 监控 大屏 账户 审计 注册,发现,调用都提供鉴权 认证鉴权 接口文档统一维护 文档与运行时一致 减少调用沟通成本 知识库 根据平台、租户、项目三个层次区分权限作用域 操作记录,审计日志,事件查询 账户审计 微服务框架负责服务之间的调用——企业级特性0 码力 | 39 页 | 3.06 MB | 1 年前3
领域驱动设计&中台/物联网平台的反应式设计为什什么需要反应式架构 设备影⼦子业务说明 1. 设备上报状态 2. 将上报状态持久化到数据库 3. 应⽤用查询上报的状态 4. 应⽤用设置期望的状态 6. 期望状态和上报状态的 差异 (delta) 同步⾄至设备 7. 设备上报新的状态 8. 将新的上报状态持久化到数据库 5. 将期望状态持久化到数据库 { “state”: { “desired”: { 10 } 设备影⼦子业务说明 1. 设备上报状态 2. 将上报状态持久化到数据库 3. 应⽤用查询上报的状态 4. 应⽤用设置期望的状态 6. 期望状态和上报状态的 差异 (delta) 同步⾄至设备 7. 设备上报新的状态 8. 将新的上报状态持久化到数据库 5. 将期望状态持久化到数据库 { “state”: { “desired”: { 11 } 设备影⼦子业务说明 1. 设备上报状态 2. 将上报状态持久化到数据库 3. 应⽤用查询上报的状态 4. 应⽤用设置期望的状态 6. 期望状态和上报状态的 差异 (delta) 同步⾄至设备 7. 设备上报新的状态 8. 将新的上报状态持久化到数据库 5. 将期望状态持久化到数据库 { “state”: { “desired”: {0 码力 | 18 页 | 1.81 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践Oracle Nginx keepalived 数据库双机 网络分发层 业务处理 渠道适配器 交易预处理 交易预检查 交易风控 交易路由 通知 响应 查询 通道 交易拆分 业务2.0痛点 BUSINESS 2.0 PAIN POINTS 业务野蛮发展 交易量高速增加 并发请求增加 交易响应速度过慢 数据库单表 数据量剧增 模块耦合度高 开发效率低下 … 务 任务队列 基于消息的分布式架构 MESSAGE - BASED DISTRIBUTED ARCHITECTURE 管理区 LVS-master C1 RabbitMq-1 数 据 库 服 务 器 区 LVS-slave Nginx-1 Nginx-2 C2 C3 C4 实时 oltp2 SSS-1 C5 C6 非实时 oltp4 SSS-2 00_Group 线上环境突发事故,第一时间如何决策减少事故影响范围? 开发人员排查问题速度过慢? 随着业务的增长,问题越来越多,第一优先级需要解决什么? 系统突然CPU、内存利用率暴增,如何定位代码? 数据库连接数被耗尽,怎么办? 各种OOM如何预防? 随着系统交易量的增加,高可用系统的设计点很多,如何快速抓住建设要点? 有哪些困惑 WHAT IS THE CONFUSION 需求设计阶段- 首次拦截0 码力 | 35 页 | 6.05 MB | 1 年前3
领域驱动设计&中台/演进式架构的平台化落地module database API layer client requests client requests client requests 向以“领域”为中⼼心的架构迁移 演进数据库 (like code) — Tested — Versioned — Incremental scripting all db changes incrementally db refactoring 微服务架构设计 服务地图 设计 API设计 部署架构设计 微服务⼯工程创建 开发 框架 架构 ⻛风格 资源 配置 … 架构演进 服务 关系 分析 代码 质量量 分析 数据 库分 析 领域 模型 分析 运⾏行行资 源管理理 PaaS、 容器云资 源管理理 公共 部分 产品、⼈人 员维护 定义通⽤用 约束条件 定义服务 约束条件 可视化设计 服务地图 关联变更更到需求 部署架构设计 测试环境 部署架构设计 绘制部署架构,组合服务和 部署元素 部署架构变更更历史 推荐部署架构(远期规划) 微服务开发框架定制 代码架构⻛风格选择 资源配置 数据库版本管理理 是否⾃自动⽣生成API/ Dockerfile/流⽔水线 ⽣生成 代码 到GIT 仓库 架构分析- 从契约反向识别实现与模型差异 架构分析- 架构Fitness Function检查0 码力 | 42 页 | 2.95 MB | 1 年前3
高性能高可用机票实时搜索系统搜索引擎核⼼心 • 规则库 => 索引库 • 规则库写⼊入量量⼤大,集群峰值达20K TPS • 要求同步延迟很低,不不超过60s • 保持顺序⼀一致性,如果先删后插变成 先插后删,数据会不不⼀一致 • 数据最终⼀一致 • 系统⾼高可⽤用 报价引擎 — 组织索引 北北 京 | 上 海海 成 都 | 杭 州 ⼴广 州 | 郑 州 南 宁 | 天 津 … 索引库 DB Sync Sync 规则库 供应商 A 供应商 B 供应商 M … 报价引擎 — 数据同步 Pipeline Canal 解析 拆分 分配 ⼊入队 CAN-NNG … … … PEK-SHA DataSync Diff ZK 按 供 应 商 分 表 按 航 线 分 表 报价引擎 — 同步系统⾼高可⽤用 DB主 DB备 Canal 主 Canal 备 DataSync 数据交换采⽤用protobuf + gzip处理理 • jit、预热 回顾 • ⽔水平分层,纵向分渠道,良好的扩展性 • 实时计算 + 阶梯式缓存,成本与报价新鲜度的权衡 • 闭环系统 • 索引库数据同步 • 本地缓存的设计,更更新策略略 • 缩减对象内存 • ⼀一致性哈希负载均衡 ⼼心得 • 不不同的业务场景,不不同的特征 • 结合特征去进⾏行行设计和优化 • 通⽤用0 码力 | 26 页 | 1.94 MB | 1 年前3
全球架构师峰会2019北京/量子计算/量子计算及其潜在应用&mdash华为HiQ 2.0重点布局量子化学+量子调控:助力“专用”量子计算机研发 专用 vs 通用 “专用”量子计算机 “通用”量子计算机 主要应用 量子系统仿真 量子化学 组合优化 机器学习 大数分解 数据库搜 索 量子动力学 量子人工智 能 影响领域 学术界 制药、能源、材料、物流、网络等 电信、网络安全、大数据、金融、医药等 核心算法 Analog Sim VQE 量子退火/QAOA QNN Shor Framework 升级 HiQ Simulator 提供丰富 Ansatzes 选项 兼容多种常用化学 软件 Drivers 实现 VQE 业界最 大规模分子模拟 包含丰富的控制脉 冲库 兼容业界多款优化 控制软件 运行速度数倍加速 合作高校实验平台 演示 全新设计IDE界面 上线Block UI编 程模式 推出 mapper功 能 开放 HiQ 源码到 公开平台 提供噪声模拟选项 顿量、并将之转化为量子-经典混合架构可以实现的量子态制备、演化 和测量、以及优化参数更新等全套工具。HiQ Fermion 可以在华为云 上提供一站式量子化学模拟解决方案。 1.全面的初态 Ansatz 函数库,包括 UCC、Hardware Efficient, Qubit CC 等 2.兼容多种常见的经典量子化学软件如 Gaussian,NWChem,PySCF 和 Psi4的 Drivers 模块0 码力 | 34 页 | 5.57 MB | 1 年前3
数字货币交易系统架构 Python实现 黄毅设计简单,运维方便 交易系统架构设计-关键点 • 内存撮合服务的状态持久化和高可用 • 消息处理顺序的保证 • 异步服务之间消息传送的可靠性 • K线:实时的分组聚合操作 • 高效利用关系数据库 交易系统架构设计-架构图 撮合 资金清算 行情推送 K线计算 历史成交 订单状态 PG Redis 下单 交易系统架构设计-撮合服务 • C++实现的Redis Module results) pg.execute(‘update task_offset set offset=%s’, [offset]) 交易系统架构设计-关系数据库批量操作 insert into trades values (1, …) (2, …) … psycopg2.extras.execute_values( cur, ‘insert data ) stream = io.StringIO() # 往stream写csv格式的数据 cur.copy_from(stream, ‘trades’) 交易系统架构设计-关系数据库批量操作 with tmp(id, amount) as ( values (1, …), (2, …), (3, …)) update orders set0 码力 | 24 页 | 799.65 KB | 1 年前3
共 23 条
- 1
- 2
- 3













