高可用分布式流数据存储设计-李玥⾼高可⽤用分布式流数据存储设计 李玥 京东集团 技术架构部 架构师 ⾃自我介绍 ⾃自我介绍 李李玥 京东集团 技术架构部 架构师 负责主导设计新⼀一代京东消息中间件系统,专注于流数据的⼀一致性分发和可靠存储、分布式实时计算和⾼高可⽤用分 布式系统架构等技术领域。 从事互联⽹网研发、架构10余年年,曾在浪潮集团、当当⽹网等公司从事架构相关⼯工作。2017年年加⼊入京东,期间提升京 如何定位?如何融入生态系统? How 如何实现?如何优化? WHY 为什什么需要流数据存储? 单体应⽤用 烟筒式 SOA 微服务 那些年年的服务 MySQL ES HDFS KV HBase Hive 这些年年的数据 Services Data MySQL ES HDFS KV HBase Hive 统⼀一的流数据存储平台 我们的愿景 Services Streaming Storage PLRU淘汰策略略 ⾼高并发 ≠ ⾼高性能 减少等待 异步: Future, Callback, React框架 流程拆分 减少锁:CAS原语 减少锁等待: 读写锁, 细粒度锁 写⼊入数据流程 IOThreads 接收请求 Requests Queue WriteThread 处理理 FlushThread 刷盘 ReplicationThread 发送复制请求 IOThreads0 码力 | 36 页 | 6.02 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践业务模型 BUSINESS MODEL BUSINESS MODEL 业务模型 BUSINESS MODEL 服务/方案 基础产品 基础支撑 金融云服务 聚合支付 乐享理财 帮你贷 八方数据 … 资金管理 供应链 分期支付 扫码分销 … 基础支付1 SDK支付 扫码支付 分期支付 比特币 银行卡 开户 监控 报表 … 基础支付2 单笔代收 单笔代付 语音支付 余额查询 批量代付 快捷 … 账务 开户 记账 对账 账户托管 … 现金罗盘 代付工资 对外付款 企业理财 企业报销 资金划拨 供应链 … 其他 贷款 理财 供应链 征信 … 数据分析 … 运营后台 用户系统 商户后台 官网 企业网银 个人网银 解决方案 实时监控 业务属性 BUSINESS ATTRIBUTES 实时性、一致性 安全性、中间账户 聚合的复杂性、第三方依赖性 Oracle Nginx keepalived 数据库双机 网络分发层 业务处理 渠道适配器 交易预处理 交易预检查 交易风控 交易路由 通知 响应 查询 通道 交易拆分 业务2.0痛点 BUSINESS 2.0 PAIN POINTS 业务野蛮发展 交易量高速增加 并发请求增加 交易响应速度过慢 数据库单表 数据量剧增 模块耦合度高 开发效率低下 … 思考0 码力 | 35 页 | 6.05 MB | 1 年前3
数字货币交易系统架构 Python实现 黄毅交易系统架构设计-设计目标 • 吞吐量5w TPS, 延迟10ms • 能睡个好觉(数据持久化,数据最终一致性,容错) • 设计简单,运维方便 交易系统架构设计-关键点 • 内存撮合服务的状态持久化和高可用 • 消息处理顺序的保证 • 异步服务之间消息传送的可靠性 • K线:实时的分组聚合操作 • 高效利用关系数据库 交易系统架构设计-架构图 撮合 资金清算 行情推送 K线计算 历史成交 交易系统架构设计-关系数据库批量操作 insert into trades values (1, …) (2, …) … psycopg2.extras.execute_values( cur, ‘insert into trades values %s’, data ) stream = io.StringIO() # 往stream写csv格式的数据 cur.copy_from(stream copy_from(stream, ‘trades’) 交易系统架构设计-关系数据库批量操作 with tmp(id, amount) as ( values (1, …), (2, …), (3, …)) update orders set amount=tmp.amount from tmp where orders.id=tmp.id; delete0 码力 | 24 页 | 799.65 KB | 1 年前3
高可用与一致性:构建强一致性分布式数据库 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
海量用户推送后台系统架构实践-曾振波万 APP 198 亿 移动终端 10.4 亿 月独立 活跃设备 90 % 覆盖率 亿级长连接用户 SDK多版本并存 消息实时性 触达率要求 移动网络环境复杂性 海量用户数据存储 消息推送系统面临的挑战 极光推送服务架构 系统通道 API 用户筛选 用户分发 推送通道 极光通道 共享通道 短信通道 极光推送后台系统架构 iOS SDK Android 功能按照业务拆分解耦 • 数据和业务分离 • 快速迭代 • 模块间通过MQ/RPC交互 极光推送后台系统架构 01 Segment Conn StatCenter OnlineMsg 异步化 • 充分利用资源,减少请求等待时间,提升系统吞吐量 • 消息化请求 • MQ - RabbitMQ, RocketMQ • 模块间解耦 • IDC数据同步 • 异步RPC • ICE ICE - 负载均衡,AMI,AMD,多线程 极光推送后台系统架构 02 并行化 • 横向扩展处理能力 • 数据分片存储 • 多节点+分片+多副本架构 • 数据读写动态路由 • 请求并行处理 • 模块级别并行 • 代码级别并行 极光推送后台系统架构 03 MQ Segment OnlineMsg OnlineMsg OnlineMsg Data0-0 Data0-10 码力 | 23 页 | 1.26 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造拆成微服务 微服务架构的九⼤大特征 •通过服务进⾏行行组件化 •围绕业务能⼒力力组织 •做产品⽽而不不是做项⽬目 •智能端点与傻⽠瓜管道 •去中⼼心化地治理理技术 •去中⼼心化地管理理数据 •基础设施⾃自动化 •容错设计 •演进式设计 可视化能帮我们什什么 掌握系统业务 明确系统边界 ⼩小步改造系统 可视化的认识遗留留系统 C4模型、⽤用户画像、⽤用户旅程 C4模型系统架构可视化 就是把相关的⾏行行为聚 集在⼀一起,把不不相关 的⾏行行为放在别处。如 果你要修改某个服务 的⾏行行为,最好只在⼀一 处修改。 领域驱动设计 ‣领域驱动设计是⼀一种处理理⾼高度复杂域的设 计思想,试图分离技术实现的复杂性, 围 绕业务概念构建领域模型来控制业务的复 杂性,以解决软件难以理理解,难以演化等 问题。团队应⽤用它可以成功地开发复杂业 务软件系统,使系统在增⼤大时仍然保持敏敏 捷。 明确服务的范围 明确核⼼心模型 明确服务包含的数据表 可视化的拆解遗留留系统 微服务架构、绞杀模式、代码依赖分析、数据库依赖分析、 遗留留系统拆解评分表、降⻰龙⼋八步 庖丁解⽜牛拆解的最⾼高境界 了了解⽜牛的⽣生理理构造 避开筋腱⻣骨节交错的组织 从⻣骨节的缝隙下⼿手 ⼗十九年年⼑刀依然锋利利 再看⼀一眼微服务架构 我们要做应⽤用代码拆分 我们要做数据库拆分 绞杀者模式 ‣“绞杀者模0 码力 | 54 页 | 3.85 MB | 1 年前3
刘道平-从0到1,移动政务应用小程序系统架构演化需根据场景单独对接,如人脸识别、支付等 产品自主性 需依托微信平台 完全自主可控 数据安全性 微信前端数据通过HTTPS传输 全业务流程数据传输监控 使用路径 微信端二级应用 一级入口 从技术的角度来比对,小程序和APP各具优势:小程序具备轻量级、跨平台、成本低、功能强和易传播的特征; 而APP则在产品自主可控、数据全程管控、使用路径更短、功能灵活多样方面更具优势。 6、探索需求 -- 分析可行性,选取合适的需求场景 1、政务云电子政务外网 :数据库、应用服务 2、政务云互联网区:静态资源、网关 3、互联网区:小程序、云服务 二、安全防护 1、仅开放指定端口 80 443 2、域名须有HTTPS证书 3、白名单 13、安全渗透测试、运维监控 -- 确保系统稳定 一、业务应用上线前必须经过安全渗透测试。 1、在测试环境中扫描出:越权查询、SQL注入、明文传输等,要求整改 2、正式环境检查: 操作系统、数据库、中间件漏洞,建议打补丁 专区等;可移植、易安装等; 及衍生的支撑工具系统,如运营数据分析; 产品视角 目录 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目 三、政务服务小程序平台研发过程 四、政务服务小程序平台架构演化 五、政务服务系统架构小结与思考 17、小结要点1 – 专业化分工、高效率协作 18、小结要点2– 前后端分离、尽早确定开发规范 19、小结要点3– 云开发、事半功倍0 码力 | 35 页 | 15.60 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践设计要点四:服务拆分与服务发现 www.163yun.com 设计要点亓:数据库横向扩展 www.163yun.com 设计要点六:缓存的设计 APP缓存 CDN 接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 认证 鉴权 统计 概览 知识 库 APM (应用运行期监控) 运行时 拓扑 性能 监控 服务 筛选 调用 链 调用 栈 JVM 监控 数据库 监控 性能 告警 自定义 数据 服务 告警 监控 大屏 账户 审计 CICD (开发流程管理) 代 码 检 出 代 码 编 译 镜 像 构 建 集 成 测 试 自 动 部 署 同步 镜像拉取 自 动 部 署 手 动 触 发 代码到线上全流程管理 互联网化接口测试,场景测试 灵活执行集:冒烟,日常,回归 定时测试,MOCK测试 测试,生产镜像仓库分离,自 动同步 开发测试环境自动部署,生产 环境手动触发 持续集成 www.163yun.com 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错0 码力 | 39 页 | 3.06 MB | 1 年前3
领域驱动设计&中台/化繁为简--DDD驱动复杂业务软件架构的演进产品云+端转型,核心业 务逐步实现服务化,不同 业务演化路径不同 简化业务模型复杂度 架构演进目标 不同业务间解耦 各业务独立演化 单体架构 共享模型 模糊分层 应对复杂业务挑战的思考 关注点分离 抽象建模 应对复杂业务挑战的策略 领域驱动设计 1 2 3 领域拆分 架构分层 构建领域模型 CONTENTS CONTENT 产品介绍 业务挑战及架构目标 架构演进 总结展望 几何算法 通用框架机制 通用算法 CAD/BIM UI 图元绘制 显示层 应用层 CAD识别 BIM模型转换 模型编辑 批量操作 CAD模型 BIM模型 模型数据库 gcad文件 gfc文件 数据库 算量模型持久化 CAD模型持久化 BIM模型持久化 …... 构件模型 …... …... …... …... …... …... 平法模型 钢筋模型 识别算法独立,引入人工智能算法 持久化层 领域层 CAD图纸管理 CAD翻模UI 显示层 应用层 CAD图层管理 CAD识别命令 CAD模型 CAD模型持久化 CAD识别算法 模型转换 CAD识别数据 模型 构件模型 CAD翻模服务 架构演进 1 2 3 领域拆分 架构分层 构建领域模型 案例2:截面钢筋模型 如何构建截面钢筋模型? 理解业务需求 截面钢筋模型 按照行业钢0 码力 | 33 页 | 1.25 MB | 1 年前3
领域驱动设计&中台/架构分层模型适配API服务 业务领域 基础设施 ⼲干系⼈人: 外界系统 诉求: 稳定调⽤用外部系统 技术点: 使⽤用和适配外部系统模型,隔离和快速诊断错误 ⼯工作内容: • 学习和使⽤用外部系统,如数据库,邮件系统 • 适配外部系统模型,如SQL映射到模型对象 技术⼈人员关注的层 基础设施 腐化案例例: 业务逻辑和外部调⽤用逻辑混合 如⼀一个⽅方法⾥里里即处理理业务逻辑⼜又调⽤用SQL t-diagram-about-our-ddd-nlayered-net-4-0-architecture/ 微软 DDD NLayered .NET 4.0 Architecture 前后端分离,完全剥离曾现层 为了了简便便, 合并Web Service和Application层 Controller概念下移到Application层 参考架构对⽐比 微服务架构 https://martinfowler0 码力 | 39 页 | 2.54 MB | 1 年前3
共 32 条
- 1
- 2
- 3
- 4













