声明式自愈系统——高可用分布式系统的设计之道-王昕和存储 有状态分布式系统的高可用问题 一致性 可用性 分区容错性 Paxos Raft 2PC Gossip Ø 处理请求需要特定节点 Ø 必须要考虑数据备份和同步 的问题 Ø 容量扩展和高可用需要不同 解决方案 Ø 服务节点不能随便迁移 CAP Is Not Simply 2 out of 3 Ø 没有分区时,可用性和一致 性要兼得 Ø 经常要考虑的是可用性和一 致性各有一部分 要在领域内 自己实现 如何设计好状态机和自愈协议? Writing Correct Software Is Hard! Math and Thinking Can Help Us! Ø TLA+ 是用来给(软件或硬件)系统建模的语言 Ø TLA+ 强调排除特定编程语言(软件或硬件)的影响验证系 统设计 Ø TLA+ 由 Paxos 协议的发明人 Leslie Lamport 发明 使用 错误回复缓存,过期时间不能太长,而且有清晰的 修复建议 Ø 数据库更新与缓存失效的策略 最佳实践分享 有关配置文件 Ø 集群使用统一的配置来源 Ø 定义正常的默认配置,满足读取不到配置的正 常运行 Ø 支持可扩展的配置命令格式 Ø 尽量支持更改配置不需要重启服务 Ø 注意配置项之间的关联性 欢迎与我交流 王昕个人微信 欢迎与我交流 王昕个人微信0 码力 | 44 页 | 2.47 MB | 1 年前3
从百度文件系统看大型分布式系统设计中的定式与创新• 文件系统 - The Baidu File System - 持久化存储 百度文件系统架构 设计一个分布式系统要考虑的 • 数据与计算的分片 • 分区故障容忍 • 数据一致性 • 系统扩展性 • 延迟与吞吐 • 成本与资源利用率 • … 数据与计算的分片 • 哈希分片 - 简单、均衡 - 扩容复杂、易用性差 - 一致性哈希、虚拟节点 • 按范围、数据量分 - 使用简单 - 需要管理元数据 写入 2. 通知 3. 读取 多副本冗余 一致性问题 • 怎么定义写成功 - 3副本成功, 影响可用性 • 可以读从节点 - 刚写入的读不到 - 不一致 • 只允许读主节点 - 扩展性受限 数据处理模块 数据接收模块 存储 主 从 从 1. 写入 2. 通知 3. 读取 CAP理论 • 简要历史 - Eric Brewer 1998年提出 - 2002年证明 W+R>N,就不会丢失更新 • 一致性协议 - Paxos - Raft CAP到CAD的演变 • 必须容忍网络隔离 - CAP->CA • 跨地域的延迟 - CA->CAD/CAL • 多数情况下我们更重视可用性 - CAD->CD • 一致性与延迟的折衷 - 要求强一致的, 容忍延迟 - 要求低延迟的, 选择最终一致 提升系统扩展性 • 架构的可扩展性 - 拆分元数据节点 - 引入MetaServer0 码力 | 24 页 | 937.45 KB | 1 年前3
海量用户推送后台系统架构实践-曾振波RabbitMQ, RocketMQ • 模块间解耦 • IDC数据同步 • 异步RPC • ICE - 负载均衡,AMI,AMD,多线程 极光推送后台系统架构 02 并行化 • 横向扩展处理能力 • 数据分片存储 • 多节点+分片+多副本架构 • 数据读写动态路由 • 请求并行处理 • 模块级别并行 • 代码级别并行 极光推送后台系统架构 03 MQ Segment LevelDB(PIKA), 定制化 极光推送后台系统架构 04 程序及系统优化 • 内存 • 静态分配 • 内存池 • 内存对齐 • CPU Affinity • 网卡多队列 • 用户态协议栈(DPDK) 极光推送后台系统架构 05 基础组件服务化 • 业务方透明 • 统一管理 • 屏蔽后端变化 • AutoScale,Failover,AutoRecover • JMQ PushTask XPNS MQ MQ IDC6 Conn 系统安全 • 网络安全 • 对外业务隔离,异地多机房部署,健康检查,业务快速部署及调度 • 通信安全 • SSL,私有加密协议 • 服务安全 • 安全校验,异常行为识别,过载保护,白名单/黑名单,服务降级 • 监控及告警 • 多维度监控,告警系统 极光推送后台系统架构 08 K8S部署业务 • 原有系统的运维工作繁杂,资源利用率低0 码力 | 23 页 | 1.26 MB | 1 年前3
刘道平-从0到1,移动政务应用小程序系统架构演化构建分布式微服务框架 1.采用etcd 构建微服务框架 etcd是一个分布式的 、一致的key-value存储,主要用途是共享配置和服务发现。Etcd已经在很多分布式系统中得 到广泛的使用。Etcd采用raft协议,来保证一致性。 2.后台服务采用Go开发,围绕业务功能需求,构建后台服务模块 包括个人中心、服务、待办服务、证照服务、公共服务、外部能力、业务办理服务和运营管理服务模块 12、系统部署架构反复评审论证 小程序 端 APP端 运营数 据分析 一体机 端 1.项目建设,考虑的维度有:需求-产品-前后端开发-测试-上线… 2.产品研发,需考虑的维度:产品可扩展,如多端支持(小程序端、APP端、一体机端); 功能可扩展,如支持个人中心、证照、办事、资讯、特色专区等;可移植、易安装等; 及衍生的支撑工具系统,如运营数据分析; 产品视角 目录 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目0 码力 | 35 页 | 15.60 MB | 1 年前3
ServiceComb 开源微服务框架技术演进之路 巨震proxy proxy proxy • 单体应用 • 业务模块划分 • 程序模块间调用 • 独立应用模块 • 通信:协议、队列 • SDK引用 • 通信:http、 RPC… • 服务治理 • 透明代理 • 通信:通用协议 • 服务治理 • Cloud Native部署 ServiceComb 一个基于SDK的“传统”微服务框架 Service 编程模型 运行模型 通信模型 • Spring MVC • JAX-RS • POJO 服务发现 限流 熔断 负载均衡 跟踪 … OpenAPI • 序列化 • 传输协议 Service Mesh • A service mesh is a dedicated infrastructure layer for handling service-to-service Service Discovery Instance Cache Management Service Center Istio Kubernetes Service Center 多协议支持 HTTP gRPC Other protocols invocation Handler Chain Rate Limiting Load Balancing Fallback0 码力 | 20 页 | 861.58 KB | 1 年前3
《58到家技术架构快速规划与落地》 - 沈剑• 分发类实现Tips (1)易扩展的配置 (2)远端接口探测,命令执行 (3)可以无需agent • 汇总类实现Tips (1)agent快速部署 (2)agent从中央获取配置 (3)快速的本地检测 58集团技术专场 2. 监控平台-日志 ERROR日志监控Tips (1)路径规范 (2)日志分级 (3)日志切分 (4)易扩展的配置 日志关键字监控Tips (1)异常关键字 (1)异常关键字 (2)正常关键字 (3)易扩展的配置 58集团技术专场 2. 监控平台-接口 Keepalive统一监控 (1)框架统一实现 (2)中心统一调度 处理时间统一监控 (1)框架统一实现 (2)本地初步汇总 (3)日志收集/udp上报 http接口统一监控 (1)http状态码?内容? (2)易扩展的配置 58集团技术专场 2. 监控平台-接口 • 哪种监控最精准?0 码力 | 42 页 | 1.52 MB | 1 年前3
分布式 KV 存储系统 Cellar 演进之路Cellar—中心节点架构演进 • 性能问题 客户端集中获取路由表 • 隔离性问题 中心节点暴露给客户端 单独的路由表获取模块 Cellar—中心节点架构演进 • 可扩展性: 路由查询能力 可线性扩展 • 隔离性: 客户端与中心节点 完全隔离 Cellar—中心节点架构演进 一致性 • 主备脑裂 • observer与config • Zookeeper选主 • 元数据Zookeeper存储 网络延迟大 专线稳定性差 • 异地容灾需求 跨集群数据同步 Cellar—异地容灾 集群节点同步 消息队列同步 复制延迟 低 高 系统复杂度 低 高 运维成本 低 高 实现难度 高 低 扩展性 低 高 • 低延迟 • 低复杂度(运维成本) Cellar—异地容灾 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录0 码力 | 34 页 | 1.66 MB | 1 年前3
领域驱动设计&中台/化繁为简--DDD驱动复杂业务软件架构的演进CONTENTS CONTENT 产品介绍 业务挑战及架构目标 架构演进 总结展望 业务挑战与架构目标 建筑造型多样化,业务模 型复杂度越来越高 业务挑战 新业务基于现有业务进行 扩展,而应用场景及性能 要求不同,既复用又独立; 产品云+端转型,核心业 务逐步实现服务化,不同 业务演化路径不同 简化业务模型复杂度 架构演进目标 不同业务间解耦 各业务独立演化 单体架构 截面钢筋 保护层厚度 规格 端头 弯钩 规格 线筋 位置 参考线 参考点 位置 …... 截面钢筋模型总结 7种构件类型的布筋描述建模为同一种模型,增强了模型的表达能 力,提高了可扩展性 UI边界≠模型边界 通过提炼隐含业务规则完善模型 CONTENTS CONTENT 产品介绍 业务挑战及架构目标 架构演进 总结展望 DDD在研发中落地 统一语言 需求实例化 • 驱动组织按领域边界拆分了7~9个特性团队,实现并行研发; 限界上下文的拆分 + 领域模型+ 接口设计/测试 • 支撑产品转型,快速实现业务服务化; • 提升业务逻辑的可复用性,新业务快速扩展 • 人工智能技术低成本快速应用; 架构分层,隔离UI/业务/技术 感悟 领域模型是表达业务功能背后业务本 质的模型,在建立领域模型的过程中 领域专家与统一语言不可或缺 领域建模是一个持续迭代精化的过程0 码力 | 33 页 | 1.25 MB | 1 年前3
领域驱动设计&中台/用状态机封装领域逻辑Subdomain?主题图。 测试 答对问题有奖金 金额从2.56元到20.48元 请扫我微信以便当场转账 加微信时烦告知尊姓大名 作用 学校里经常教的 编译原理 电子设计自动化 通信协议 …… 作用 三个不同的图 图形 视角 映射到实现 类图 全局、静态 类的签名 序列图 局部(用例)、动态 类之间的协作 状态机图 类、动态 所有的逻辑 测试 答对问题有奖金 金额从20 码力 | 30 页 | 1.75 MB | 1 年前3
联想-贺钢架构工作在国际化项目中的应用实例• 联想电脑管家(PC): guanjia.lenovo.com.cn 国际化项目的一些不同点 • 目标客户不同: 文化习俗, 客户需求, 用户体验… • 要求不同: 各国法律法规(版权,协议,第三方,accessibility), 安全性和隐私… • 地域不同: 服务器的部署, 用户的访问, 组织架构, 团队沟通… 项目实例 -- XA项目背景及需求 • 多设备协作 PC, Mobile0 码力 | 53 页 | 2.36 MB | 1 年前3
共 18 条
- 1
- 2













