电商消息系统架构演进&mdash0 码力 | 22 页 | 12.22 MB | 1 年前3
大型Web项目可用性提升 零脚本错误的实战 郭林烁 2017.100 码力 | 62 页 | 7.09 MB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 无状态分布式系统的高可用问题 处理消息的服务节点可以随机选择 不必处理数据复制和同步的问题 系统容量和高可用能力可以同步提升 服务节点可以随意迁移,不必固定 IP 和存储 有状态分布式系统的高可用问题 一致性 可用性 分区容错性 协调Desired State跟 Realized State之间的差 距,维持最终一致性 Ø 定期处理集群中的事件 Ø 系统必须是幂等的 控制器的设计理念 控制逻辑应该只依赖于当前状态 假设任何错误的可能,并做容错处理 尽量避免复杂状态机,逻辑不要依赖无法监控的内部状 态 每个模块都可以在必要时优雅地降级服务 每个模块都可以在出错后自动恢复 假设任何命令都可能被任何调用对象拒绝,甚至返回错 OS Virtualization Storage Networking Data 启动异常 进程被杀 服务器假死 断电 启动异常 超卖 进程死锁 负载均衡失效 业务线程池满 监控错误 流控不合理 心跳异常 缓存热点 缓存限流 数据库热点 数据库宕机 数据库延迟 CPU 抢占 内存抢占 内存错乱 上下文切换 磁盘满 磁盘坏 网络抖动 网卡慢 断网 DNS 故障 系统单点0 码力 | 44 页 | 2.47 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 www.163yun.com 设计要点八:熔断,限流,降级 www.163yun.com 设计要点九:配置中心 www.163yun.com 设计要点十:日志中心 认证 鉴权 统计 概览 知识 库 服务 告警 监控 大屏 账户 审计 粒度更细:可指定服务版本,类,方法级别 配置灵活:可配置检测粒度为每M毫秒N个请求P%的错误率 指标多样:RT值,错误率,线程池参数 熔断 粒度更细:可指定调用者和被调用者服务版本,支持failover、failfast、failback容 错机制。 配置灵活:支持自定义超时时间和重试次数。 TCC——中间件 Dubbo + DTS • Try 预留 + Confirm 提交 + Cancel 还预留 • Try 操作 + Confirm 无操作 + Cancel 补偿 • 事务消息——中间件 TMC 网易分布式事务的实现机制 www.163yun.com 事务发起者、事务参与方 分支事务用事务id做幂等 生成对应分支事务记录0 码力 | 39 页 | 3.06 MB | 1 年前3
领域驱动设计&中台/架构分层模型适配⼲干系⼈人: 应⽤用开发⼈人员 诉求: 灵活易易使⽤用的API 技术点: 性能,事务,分布式,安全等⾮非功能性需求 API服务 ⼯工作内容: • 接收外部请求并响应: 如HTTP请求, 消息处理理 • 事务管理理 • 认证 • 缓存 • ⽇日志 • 异常处理理 • 配置 • Session 技术⼈人员关注的层 腐化案例例: ⼤大量量业务逻辑堆积 模型: • View 访问外界系统(调⽤用外界系统)的技术相关实现。 前端应⽤用 API服务 业务领域 基础设施 ⼲干系⼈人: 外界系统 诉求: 稳定调⽤用外部系统 技术点: 使⽤用和适配外部系统模型,隔离和快速诊断错误 ⼯工作内容: • 学习和使⽤用外部系统,如数据库,邮件系统 • 适配外部系统模型,如SQL映射到模型对象 技术⼈人员关注的层 基础设施 腐化案例例: 业务逻辑和外部调⽤用逻辑混合0 码力 | 39 页 | 2.54 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造的表 扫描数据库依赖 UserMapper.java UserMapper.xml JAVA定义 XML实现 扫描数据库依赖 服务 名 mapp er名 ⽅方法 名 正确 依赖 表名 错误 依赖 表名 ⽤用户服 务 com.xx x.User Mappe r getUse rById USER N/A ⽤用户服 务 com.xx x.User Mappe r getUse 不不依赖其他模块数据库等,减少改造⼯工作量量 3. 遗留留系统中还会包含前端代码和存储过程,也需要通过代码依 赖分析和数据库依赖分析进⾏行行拆解 4. 服务间依赖不不⼀一定只有REST API,可以通过异步消息、数据 冗余等⽅方式,根据实际情况进⾏行行选择 5. 部署新微服务后,推荐让新⽼老老系统并⾏行行⼀一段时间,通过分流让 少部分流量量进⼊入新微服务,确保改造更更加安全 总结 C4模型 领域驱动设计0 码力 | 54 页 | 3.85 MB | 1 年前3
全球架构师峰会2019北京/量子计算/量子计算及其潜在应用&mdash华为量子计算云服务2.0,功能和性能全面大幅提升 量子应用 量子算法库 量子编程框架 量子控制 量子芯片 模拟器 化学模拟 组合优化 人工智能 模拟算法 优化算法 学习算法 编程语言 编译器 资源管理 资源调度 量子纠错 控制脉冲 量子-经典接口 超导 离子阱 金刚石色心 HiQ 1.0 展开 HiQ 2.0 展开 HiQ 2.0 量子化学 量子调控 编程框架 线路模拟 新增0 码力 | 34 页 | 5.57 MB | 1 年前3
唯品会调度系统的前世今生高可用和分布式功能 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 对任务超时、任务执行情况、监控逻辑 支持粒度功能较单一或缺乏 没有容器化选型? 调度产品的定位 简易开发、简单维护 高可用、分片并发处理、资源调度动态平衡 支持Java、Shell以及本地模式(VIP还支持消息模式) 统一配置、统一监控、统一管理 VIP弹性调度系统 -- Saturn Saturn 开源地址: Github.com/vipshop/Saturn 体系中的定位 服务化框OSP 开发框架Venus 唯品会基础架构体系 消息队列 VMS 全链路监控 Mercury 统一日志平台 dragonfly 任务调度平台 Saturn 统一配置中心 CfgCenter 统一鉴权中心 AuthCenter 服务网关 Janus 安全管理平台 Salus Running Stopping Stopped 启用 触发(手工, 时间或消息) 停用 执行完成 停用 执行完成 作业状态变迁 内部系统集成 ZK 执行结点 Job A Job B 作业调度器 控制台UI 消息系统 控制、调度结果下发 作业控制 结点监听 作业调度 执行日志 监控日志 日志查询 消息订阅 告警信息 执行结果 统一认证 架构体系 部署模型(跨机房)0 码力 | 58 页 | 5.40 MB | 1 年前3
大规模分布式系统架构下调测能力构建之道大规模分布式系统架构下调测能力构建之道 李鑫 大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer 行功能/接口 调测存在如下困难: 开发依赖重 联调成本高 变动把控困难 拆 应用拆分 数据拆分 团队拆分 分布式服务 API Gateway 分布式文件 分布式缓存 分布式消息 DB Cluster 连接 序列化 路由 负载均衡 … 问题示例 1. 我依赖一个远程服务,但在负责它的团队把它上线之前,我什 么也做不了 2. 我负责的功能依赖一堆的远程服务,为了本地调测,我必须从 我和其他团队共用一套分布式缓存服务,为了防止数据覆盖, 我只能和别人轮流排队上线调试,我等了一天,结果只能用一 个小时。 6. 我写了个消息Consumer,布到线上准备测测,结果,别人的消 息先到了,一下把我的预置数据全搞乱了… 7. 我的开发机性能还行,我想自己装一套依赖环境提高开发调测 效率,结果消息服务、缓存服务、服务框架装完一启动,80% 的系统资源就没有了,想想还有一堆的应用服务还没装,直接 泪崩… 80 码力 | 19 页 | 2.74 MB | 1 年前3
海尔实时计算平台技术选型与实践上图摘自confluent官网 Flume适合: • 日志收集 • 日志传输 • 拦截数据 消息队列适合: • 消息持久化 • 解耦 推荐:Flume+ 消息队列 为何要引入消息队列 消息队列可选方案 • Kafka • Jafka • RocketMQ • RabbitMQ • ActiveMQ • Apollo 消息队列使用场景及选型 事务可靠性场景(ActiveMQ/RabbitMQ/RocketMQ):0 码力 | 41 页 | 3.21 MB | 1 年前3
共 24 条
- 1
- 2
- 3













