高可用与一致性:构建强一致性分布式数据库 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领域驱动设计&中台/演进式架构的平台化落地
evolutionary architecture supports guided, incremental change across multiple dimensions. 演进式架构⽀支持 在各个架构设计维度上, 沿着特定⽅方向进⾏行行频繁增量量式变更更。 guided 沿着特定⽅方向(guided)的演进 guided 架构“适应性函数 (Architectural module database API layer client requests client requests client requests 向以“领域”为中⼼心的架构迁移 演进数据库 (like code) — Tested — Versioned — Incremental scripting all db changes incrementally db 部署架构设计 测试环境 部署架构设计 绘制部署架构,组合服务和 部署元素 部署架构变更更历史 推荐部署架构(远期规划) 微服务开发框架定制 代码架构⻛风格选择 资源配置 数据库版本管理理 是否⾃自动⽣生成API/ Dockerfile/流⽔水线 ⽣生成 代码 到GIT 仓库 架构分析- 从契约反向识别实现与模型差异 架构分析- 架构Fitness Function检查0 码力 | 42 页 | 2.95 MB | 1 年前3微服务和Service Mesh 在多个行业落地实践
设计要点四:服务拆分与服务发现 www.163yun.com 设计要点亓:数据库横向扩展 www.163yun.com 设计要点六:缓存的设计 APP缓存 CDN 接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 服务 告警 认证 鉴权 统计 概览 知识 库 APM (应用运行期监控) 运行时 拓扑 性能 监控 服务 筛选 调用 链 调用 栈 JVM 监控 数据库 监控 性能 告警 自定义 数据 服务 告警 监控 大屏 账户 审计 CICD (开发流程管理) 代 码 检 出 代 码 编 译 镜 像 构 建 集 成 测 试 误率 指标多样:RT值,错误率,线程池参数 熔断 粒度更细:可指定调用者和被调用者服务版本,支持failover、failfast、failback容 错机制。 配置灵活:支持自定义超时时间和重试次数。 可自行定制:通过暴露自定义异常NSFExcetion解决任意业务方法的容错,支持超时、 failover,failfast容错。 容错 微服务框架负责服务之间的调用——熔断与容错0 码力 | 39 页 | 3.06 MB | 1 年前3声明式自愈系统——高可用分布式系统的设计之道-王昕
Networking Data 启动异常 进程被杀 服务器假死 断电 启动异常 超卖 进程死锁 负载均衡失效 业务线程池满 监控错误 流控不合理 心跳异常 缓存热点 缓存限流 数据库热点 数据库宕机 数据库延迟 CPU 抢占 内存抢占 内存错乱 上下文切换 磁盘满 磁盘坏 网络抖动 网卡慢 断网 DNS 故障 系统单点 异步阻塞 依赖超时 内存溢出 不可读写 目录 Ø 分布式系统面临的高可用问题 高可用系统的最佳实践总结 最佳实践分享 有关 TLA+ 的使用 Ø 分布式系统设计 80% 的重点工作在与设计安全性原则 Ø 目前 TLA+ 工具已经有云服务上线,但只支持检查安全性 Ø 单机版的 TLA+ 工具支持系统活性的检查,但是性能比较差 Ø 活性检查的性能瓶颈在于系统状态图中强连通图算法的实现 Ø TLA+ 中实现的卡壳(Stutter)等价能力,即对所有状态保持不变 也是合法状态 验而且幂等,没有缓存情况下系统仍可服务 Ø 错误回复缓存,过期时间不能太长,而且有清晰的 修复建议 Ø 数据库更新与缓存失效的策略 最佳实践分享 有关配置文件 Ø 集群使用统一的配置来源 Ø 定义正常的默认配置,满足读取不到配置的正 常运行 Ø 支持可扩展的配置命令格式 Ø 尽量支持更改配置不需要重启服务 Ø 注意配置项之间的关联性 欢迎与我交流 王昕个人微信 欢迎与我交流 王昕个人微信0 码力 | 44 页 | 2.47 MB | 1 年前3联想-贺钢架构工作在国际化项目中的应用实例
多设备协作 PC, Mobile, Pad, Cloud… • 跨设备及云智能搜索 • 语音等多种输入方式 用例示意图 用户输入支持举例 3D Camera 项目实例 -- 项目开发团队 项目 备注 项目名称 XA 支持国家 160 多语言支持 27种语言 架构师 5-8人 开发人员 中国,美国,日本,印度 三方合作伙伴 6-7家 系统组件设计 图示 系统整体架构I 来自安全部门的问题 数据中心最终方案 用户访问量对应的web架构 用户访问量 服务器架构 百万以下 单台或多台的简单架构,可以简单通过升级服务器 配置支持更多用户 百万到千万 增加Nginx(反向代理)或DNS负载均衡,redis内存 cache,数据库(Mysql)多台(数据在一个数据中心) 千万到亿 增加Web服务器内存缓存,集群,IP负载均衡,基于内 容请求分发,Mysql优化(如减少写,2/8原则) 2/8原则),数据在 一个数据中心 亿以上 增加异地部署(建议核心点集中,其它节点分散开),较 难分割或核心数据在同一数据中心,其它分散到不 同的节点 对架构设计的影响II -- 数据库表设计 数据库表早期设计 ID ... Type Name Size Create Date … 1 … 1 1.doc 432437 2014-05-04 … 2 … 1 Test.txt 2849 2014-02-190 码力 | 53 页 | 2.36 MB | 1 年前3QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+
轻业务上浮 重业务下沉 API接入 指标监控 配置管理 业务前置配置 日志 配置系统 安全控制 拦截、校验 接口签名 加解密 防刷 攻击类 接口缓存 接口重写 热点活动支持 热点功能前置 接口版本控制 业务前置控制 Ng+ LUA 流量调度 降级 限流 灰度 接口分发 ??� FNS Fund 宜睿 P2P BASE Other … … 措施:剥组件[深度定制网关] API接入 指标监控 配置管理 业务前置配置 日志 配置系统 安全控制 拦截、校验 接口签名 加解密 防刷 攻击类 接口缓存 接口重写 热点活动支持 热点功能前置 接口版本控制 业务前置控制 Ng+ LUA 流量调度 降级 限流 灰度 接口分发 运营活动动态配置,接口重新编排 热点功能前置,网关分发许可限流,保护底层 移动后台打散,界限趋于不明显 极大消除冗余,三级两层划分 底层服务有序汇总直面前端 流量统一出口 积分系统 优惠券 基金服务 保险服务 理财服务 支付中心 电子签章 第三方系统 营销支持 基础服务 数据支持 批处理 … 网关(略) 移动基础服务 消息 监控 配置 报警 金融产品 Yiri 财富圈 首页 feed 活动中心 微信 WAP 4G 积分商城 ... ... 账户中心0 码力 | 42 页 | 19.96 MB | 1 年前3从百度文件系统看大型分布式系统设计中的定式与创新
搜索基础架构 从百度文件系统 看大型分布式系统设计 自我介绍 • 颜世光, 专注于大规模分布式系统 • 代表作品 - 百度第三代Spider系统 - 百度文件系统BFS - 万亿量级实时数据库Tera - 集群调度系统Galaxy • 个人主页&Blog - https://github.com/bluebore - http://bluebore.cn 提纲 • 百度文件系统简介 分布式软件栈中的BFS The Baidu Stack 网络通信框架Sofa-pbrpc 分布式文件系统 BFS 集群调度系统 Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) • 进程调度&内存管理 - Galaxy - 应用部署和任务调度 引入MetaServer 提升系统扩展性 • 设计的可扩展性 - 保证在规模扩大5倍或10倍是正常工作 • BFS避免了过渡设计 - 用设计中的不可扩展达到最大的可扩展 • 最多支持6万台机器 • 最多支持100亿文件 分布式存储系统设计的特殊性 • 最基础服务的提供者 - 不可能做成无状态的 • 最底层的仲裁者 - 不能依赖ZooKeeper等系统选主 - 分布式的双主问题只从存储系统解决0 码力 | 24 页 | 937.45 KB | 1 年前3刘道平-从0到1,移动政务应用小程序系统架构演化
1、政务云电子政务外网 :数据库、应用服务 2、政务云互联网区:静态资源、网关 3、互联网区:小程序、云服务 二、安全防护 1、仅开放指定端口 80 443 2、域名须有HTTPS证书 3、白名单 13、安全渗透测试、运维监控 -- 确保系统稳定 一、业务应用上线前必须经过安全渗透测试。 1、在测试环境中扫描出:越权查询、SQL注入、明文传输等,要求整改 2、正式环境检查: 操作系统、数据库、中间件漏洞,建议打补丁 端 APP端 运营数 据分析 一体机 端 1.项目建设,考虑的维度有:需求-产品-前后端开发-测试-上线… 2.产品研发,需考虑的维度:产品可扩展,如多端支持(小程序端、APP端、一体机端); 功能可扩展,如支持个人中心、证照、办事、资讯、特色专区等;可移植、易安装等; 及衍生的支撑工具系统,如运营数据分析; 产品视角 目录 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目0 码力 | 35 页 | 15.60 MB | 1 年前3海尔实时计算平台技术选型与实践
• 不影响业务系统性能 代码埋点: • 优点:采集能力强 • 缺点:时间、人力成本大 实时数据采集-数据如何获取? 可视化埋点: • 优点:成本低,速度快 • 缺点:行为记录信息少,支持的分析方式少 • Flume 日志收集可选技术 • Fluentd • Logstash • Scribe Flume Agent Source Incomin g Data Sink MySQLStreamer Mysql CDC建议方案 Mysql CDC可选方案: • Canal Postgresql CDC 建议方案 BottledWater: • 支持postgresql 9.4及以后版本 • 几乎不影响数据库本身性能 • 事务一致性的输出 • 容错 上图摘自confluent官网 Flume适合: • 日志收集 • 日志传输 • 拦截数据 消息队列适合: • 数据发现 • 数据分析 • 数据可视化和协作 Zeppelin优势-多语言支持 多语言支持 • 强大的解析器 • 允许任何语言接入 Zeppelin-技术架构 Zeppelin技术: • 基于JAVA开发 • 前端Angularjs1.5+nvd3.js Zeppelin改造 Server: • 支持echarts json数据 • 前端的计算逻辑都改到后端 前端: •0 码力 | 41 页 | 3.21 MB | 1 年前3全球架构师峰会2019北京/量子计算/量子计算及其潜在应用&mdash
华为HiQ 2.0重点布局量子化学+量子调控:助力“专用”量子计算机研发 专用 vs 通用 “专用”量子计算机 “通用”量子计算机 主要应用 量子系统仿真 量子化学 组合优化 机器学习 大数分解 数据库搜 索 量子动力学 量子人工智 能 影响领域 学术界 制药、能源、材料、物流、网络等 电信、网络安全、大数据、金融、医药等 核心算法 Analog Sim VQE 量子退火/QAOA QNN 提供多种主流的费米子编码方法:Jordan-Wigner, Parity,Bravyi-Kitaev 等 4.提供支持并行计算梯度的 Optimziers,能更快收敛 5.模拟业界最大规模 VQE (C2H4,14 orbitals)(核心技术:高质量初态 ansatz 制 备,有效参数约减,线路优化,并行梯度计算等) 6.支持 GUI 界面友好编程体验 华为量子化学软件包 HIQ Fermion 1:多参数约减算法,可约减高达80% 和测量,用经典计算机处理能量及参数优化更新。 量子部分 经典部分 华为 HiQ Fermion: 部分关键功能测试数据 提供不同优化器作对比 支持量子化学主流的费米子编码方法 Bravyi-Kitaev Transform 华为 HiQ Fermion: 部分关键功能测试数据 具备刻画分子势能面的能力 支持多种Hardware Efficient Ansatz CNOT Single qubit gates Jordan-Wigner0 码力 | 34 页 | 5.57 MB | 1 年前3
共 27 条
- 1
- 2
- 3