声明式自愈系统——高可用分布式系统的设计之道-王昕系统开发和架构经验,在分布式系统领域经验丰富,长期参与高可用中间件系统、云平 台基础管理系统和云原生自动运维系统的构建。在国内外有10多项授权和在审软件技术 发明专利,并多次受邀出席技术会议,做技术专题分享。 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 无状态分布式系统的高可用问题 处理消息的服务节点可以随机选择 message is lost Liveness •Something good will eventually happen •e.g. is able to receive message 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 依据声明式自愈的理念设计系统 有一个统一的状 所有有状态模块 通过统一的接口 对应统一的对象 模型 配置模块对象只 需要包括 Desired State 每个领域的控 制器模块的逻 辑保证自己领 域独立自愈的 能力 改变状态的操作 必须是幂等的声 明式操作,没有 新声明时各模块 按照之前的声明 继续工作 控制器模块对象 包括Desired State 和 Realized State 声明式自愈系统的控制器协调循环 Observe0 码力 | 44 页 | 2.47 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践集 群 API网关 (流量接入层) 路由 路由 插件 分流 流量 镜像 维护 开关 API 监控 认证 鉴权 治理 文档 报表 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 定时测试,MOCK测试 测试,生产镜像仓库分离,自 动同步 开发测试环境自动部署,生产 环境手动触发 持续集成 www.163yun.com 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 监控 大屏 账户 审计 注册,发现,调用都提供鉴权 认证鉴权 接口文档统一维护 文档与运行时一致 减少调用沟通成本 知识库 根据平台、租户、项目三个层次区分权限作用域 操作记录,审计日志,事件查询 账户审计 微服务框架负责服务之间的调用——企业级特性 www.163yun.com 某证券公司 持续集成 中台化 容器化 注册发现 www0 码力 | 39 页 | 3.06 MB | 1 年前3
分布式 KV 存储系统 Cellar 演进之路有多年分布式存储研发经验 个人简介 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 Cellar,英文原意是酒窖,项目取名Cellar,一方面借用其储藏 之意,同时,也希望使用Cellar的用户,可以像用酒窖藏酒一样,越 架构升级 性能优化 可用性优 化 可运维性 Cellar 开源 Tair • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 Cellar—中心节点架构演进 • 性能问题 客户端集中获取路由表 • 隔离性问题 中心节点暴露给客户端 单独的路由表获取模块 Cellar—中心节点架构演进 • 可扩展性: 路由查询能力 observer同步强一致 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 存储节点Failover,越快越好? • 数据补全对业务影响 • 机器宕机五分钟,数据补全两小时 节点升级,先切走流量再操作? • 节点流量只能切到有其他副本的节点 • 升级后的节点缺少升级期间的写入 Cellar—节点高可用 Cellar—节点高可用0 码力 | 34 页 | 1.66 MB | 1 年前3
从百度文件系统看大型分布式系统设计中的定式与创新BFS 集群调度系统 Galaxy 分布式协调服务 Nexus 分布式数据库 Tera 分布式计算框架 Shuttle Apps(Spider/Index/Search) 数据中心操作系统(DCOS) • 进程调度&内存管理 - Galaxy - 应用部署和任务调度 • 锁和信号量 - Nexus - 分布式锁 - 分布式通知 • 文件系统 - The Baidu File - 设计实现简单 - Master节点易成为瓶颈 中心化的解决方案 • Master-Slave模型 - Master是管理者 - Slave是执行者 • 解决Master节点瓶颈 - 常规操作不经过Master • 一般计算系统 • Bigtable、Tera等存储系统 - 使Master无状态 • 非最底层系统都可以设计无状态Master - Master分布化 • BFS选择的解决方案 最底层的仲裁者 - 不能依赖ZooKeeper等系统选主 - 分布式的双主问题只从存储系统解决 这些设计给BFS带来哪些优势? HDFS BFS 名字节点 扩展方式 联邦式 分裂的目录树 分布式 统一的目录树 宕机恢复时间 分钟级 秒级 外部依赖 ZooKeeper & QJM 无 开发语言 Java C++ Q&A • 欢迎参与BFS的开发 • https://github0 码力 | 24 页 | 937.45 KB | 1 年前3
刘道平-从0到1,移动政务应用小程序系统架构演化• TGO广州会员 简介 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目 三、政务服务小程序平台研发过程 四、政务服务小程序平台架构演化 五、政务服务系统架构小结与思考 目录 1、当前政务移动应用APP发展情况 1、功能单一 大多政务服务APP功能单一,仍以政务信息发布为主,缺乏实用的网上办事和便民服务。 仅有15%的政务APP提供办事服务,存在“信息有余、服务不足”的问题。 公众号采用H5技术,用户办理过程因加载时间长,导致用户体验不 佳。 3、移动政务应用痛点 VS 核心功能 3 少填少报、少跑快办 1 一次认证、全网通办 2 原生体验、 风格一致 4 实时运营、 即时反馈 目录 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目 三、政务服务小程序平台研发过程 四、政务服务小程序平台架构演化 五、政务服务系统架构小结与思考 4、一个特殊的移动政务应用项目 资源少:初期团队人员少、 业务推动阻力大 1 时间紧: 1月启动,5月上线 2 目标高:高频便民服务、 突出改革亮点,迎接大领 导视察 4 需求多:公积金、社 保、出入境、交管等, 服务很多,需要梳理 目录 一、移动政务应用服务现状与痛点 二、一个特殊的移动政务应用项目 三、政务服务小程序平台研发过程 四、政务服务小程序平台架构演化 五、政务服务系统架构小结与思考 5、技术路线选型,APP0 码力 | 35 页 | 15.60 MB | 1 年前3
《58到家技术架构快速规划与落地》 - 沈剑58集团技术专场 关于 我 � “架构师之路”作者 � 高级工程师 � 技术委员会主席、高级架构师、技术学院优秀讲师 � 技术委员会主席、技术总监 � 本质:程序员 58集团技术专场 目录-技术架构体系建设 问题 实践 总结 1. 服务化 2. 监控平台 3. 调用链跟踪 4. 服务治理 58集团技术专场 一、初创公司技术架构体系建设 常见问题 58集团技术专场 初创公司技术体系常见问题 误区:监控是运维的事情 58集团技术专场 2. 监控平台- 最佳实践 � 单维度正常,能说明系统正常吗? � 什么是立体化监控? � 怎么个多维度法? (1)机器、操作系统 (2)进程、端口 (3)日志 (4)接口 58集团技术专场 机器、操作系统监控 58集团技术专场 2. 监控平台-进程/端口/JVM • 两类思路:分发/汇总 • 分发类实现Tips (1)易扩展的配置 (2)远端接口探测,命令执行 3. 调用链跟踪-效果 58集团技术专场 3. 调用链跟踪-效果 58集团技术专场 4. 守望者平台 � 服务信息量化管理 (1)上游 (2)下游 (3)缓存 (4)数据库 (5)操作系统 (6)… 58集团技术专场 4. 守望者平台-上游 58集团技术专场 4. 守望者平台-下游 58集团技术专场 4. 守望者平台-DB/Cache 58集团技术专场 4. 守望者平台-JVM/OS/其他0 码力 | 42 页 | 1.52 MB | 1 年前3
数字货币交易系统架构 Python实现 黄毅数字货币交易系统架构 Python实现 黄毅 目录 CONTENTS 交易系统功能介绍 交易系统架构设计 钱包实现介绍 1 交易系统功能介绍 交易系统功能-基本概念 class Side(Enum): ‘下单方向’ BUY = 0 SELL = 1 class Order(NamedTuple): ‘订单’ id: int side: Side amount: 能睡个好觉(数据持久化,数据最终一致性,容错) • 设计简单,运维方便 交易系统架构设计-关键点 • 内存撮合服务的状态持久化和高可用 • 消息处理顺序的保证 • 异步服务之间消息传送的可靠性 • K线:实时的分组聚合操作 • 高效利用关系数据库 交易系统架构设计-架构图 撮合 资金清算 行情推送 K线计算 历史成交 订单状态 PG Redis 下单 交易系统架构设计-撮合服务 • C++实现的Redis results) pg.execute(‘update task_offset set offset=%s’, [offset]) 交易系统架构设计-关系数据库批量操作 insert into trades values (1, …) (2, …) … psycopg2.extras.execute_values( cur, ‘insert0 码力 | 24 页 | 799.65 KB | 1 年前3
领域驱动设计&中台/架构分层模型适配资源模型: 应⽤用想要⼀一把查询获取所有信息,⼀一个操作做完业务 前端应⽤用 API服务 业务领域 基础设施 业务模型: 精确表达⼀一个业务概念,分治管理理复杂度 存储模型: 性能最优化 DDD分层架构 不不同模型适配(动词) HTTP⽅方法: POST GET PUT DELETE 前端应⽤用 API服务 业务领域 基础设施 业务操作: 注册 注销 登录 退出 修改 撤销 存储动作: DDD分层架构治理理 HTTP⽅方法: POST GET PUT DELETE 前端应⽤用 API服务 业务领域 基础设施 业务操作: 注册 注销 登录 退出 修改 撤销 存储动作: INSERT UPDATE DELETE 资源模型: 应⽤用想要⼀一把查询获取所有信息,⼀一个操作做完业务 业务模型: 精确表达⼀一个业务概念,分治管理理复杂度 存储模型: 性能最优化 不不同层级的模型坚决隔离, 基础设施 业务操作: 注册 注销 登录 退出 修改 撤销 查看 查询 验证码 激活 存储动作: INSERT UPDATE DELETE 动词翻译映射 create retrieve update delete save find DDD分层架构治理理 前端应⽤用 API服务 业务领域 基础设施 名词翻译映射 资源模型: ⽤用户想要⼀一把查询获取所有信息,⼀一个操作做完业务 业务模型:0 码力 | 39 页 | 2.54 MB | 1 年前3
领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践• ⼀一个流是顺序串串⾏行行执⾏行行的 • 多个流之间才可能是并⾏行行的 Your Mouse is a Database! — Erik Meijer 流定义 • ⾯面向数据 • 操作、组合 ⾯面向流 • 业务逻辑 → 数据变换 • 数据变换 → 业务逻辑 数据 vs 逻辑 ⾯面向流编程是 ⾯面向数据编程 流式架构 流 分布式 性能 并发控制 业务编写 window / scan / flatMap / groupBy 组合 merge / concat / startWith / zip / switch* ⼤大量量强⼤大的操作符 声明式表达 完备、更更⾼高级、更更快捷 requestFlow .buffer(10, MILLISECONDS, 16) .flatMap(service::batchOps) 架构治理理能⼒力力加强: • 回压 • 三⻆角模式透传 • 业务快速截⾯面创新 • … 流的概念分层 业务编程框架(⾯面向业务) • 核⼼心概念:流 • 业务涉及的⼤大量量/强⼤大操作 • 流程编排、全异步化 规范(⾯面向系统底层) • 核⼼心:4个接⼝口 + 7个⽅方法 • 远程化、业务框架对接规范 • 业务开发底层规范 理理念(⾯面向系统架构) • 系统应有的能⼒力力0 码力 | 27 页 | 1.13 MB | 1 年前3
QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+接口版本控制 业务前置控制 Ng+ LUA 流量调度 降级 限流 灰度 接口分发 运营活动动态配置,接口重新编排 热点功能前置,网关分发许可限流,保护底层 接口req/resp重写,透明操作 全功能API配置,热加载 方案: nginx、 istio spring-gateway、linkerd、zuul 移动服务C 接入层 服务A 服务B -------Joe Armstrong 关键点 分而治之,缩小竞争面 加速资源交换,更快响应 共享资源串行操作 数据一致性(脏读,丢失更新等) 业务纵向拆分,化整为零 资源拆分,横向扩展 cache,index,partition parallel non-blocking sync、lock,cas 限流: max_connections(db) max_request+max_threads(middleware) 数据竞争� [NoSql方案示例] 内存操作 单线程原子操作 高可用保障 兜底策略 限流、熔断: maxclients(redis) max_request+max_threads(middleware) hystrix0 码力 | 42 页 | 19.96 MB | 1 年前3
共 20 条
- 1
- 2













