分布式异地多活架构实践之路讯飞输入法异地多活架构实践之路 凌 军 自我介绍 • 凌军 • 2010年加入科大讯飞 • 讯飞输入法、灵犀语音助手等产品服务端架构负责人 • 科大讯飞消费者BG基础平台架构负责人 产品介绍 • 稳居国内输入法第一阵营 • 2010-10~至今 • 4亿用户 • 1.1亿月活 来自:中国科学院《互联网周刊》 大纲 • 产品发展中遇到的问题 • 异地多活存在哪些挑战 • • 后续规划 技术挑战 几十毫秒的延迟; 跨机房性能较慢 机房天然延迟 专线费用高; 专线不稳定 跨机房专线问题 依赖小服务,有一 定改造成本; 依赖外部服务 服务依赖问题 减少对业务开发影响; 需要封装屏蔽细节 业务开发影响 如何精准调度; 如何合理调度 流量调度 存储系统自带同步 不成熟; 自研组件之间同步 数据同步 大纲 • 产品发展中遇到的问题 • 异地多活存在哪些技术挑战 用户个性化数据同步、账号等 读写均衡 多主模式 (多点读写) 分布式日志收集等 写多读少 汇聚模式 (多点写,单点读) 内容统计指标获取、内容榜单等 读写均衡 混合模式 (多点写,单点读, 单点写,多点读) 非核心业务 老版本兼容服务、运营活动、配置、管 理平台、官网、论坛等 N/A 本地模式 (单点读写) 设计思路 核心业务异地多活 精准流量调度 数据同步 多元化 最终一致性0 码力 | 36 页 | 1.66 MB | 1 年前3
分布式 KV 存储系统 Cellar 演进之路• 服务可用性提升 • Cellar规划 目录 Cellar—中心节点架构演进 • 性能问题 客户端集中获取路由表 • 隔离性问题 中心节点暴露给客户端 单独的路由表获取模块 Cellar—中心节点架构演进 • 可扩展性: 路由查询能力 可线性扩展 • 隔离性: 客户端与中心节点 完全隔离 Cellar—中心节点架构演进 一致性 • 主备脑裂 • observer与config observer与config • Zookeeper选主 • 元数据Zookeeper存储 Cellar—中心节点架构演进 一致性: • 主备强一致 • observer同步强一致 • Cellar起源 • 中心节点架构演进 • 节点高可用和异地容灾 • 服务可用性提升 • Cellar规划 目录 存储节点Failover,越快越好? • 数据补全对业务影响 • 机器宕机五分钟,数据补全两小时 节点升级,先切走流量再操作? B节点 1分片备 2分片主 分片1复制 回写增量log 分片2复制 分片2复制 分片1复制 客户端 分片1&2 log Cellar—异地容灾 • 多机房建设 网络延迟大 专线稳定性差 • 异地容灾需求 跨集群数据同步 Cellar—异地容灾 集群节点同步 消息队列同步 复制延迟 低 高 系统复杂度 低 高 运维成本 低 高 实现难度 高 低 扩展性 低 高 •0 码力 | 34 页 | 1.66 MB | 1 年前3
领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践• 就职于阿⾥里里,经历: • 负责淘宝应⽤用架构升级 • 核⼼心开发 - 建设⽤用户增⻓长设施与平台建设 • 负责过分布式调⽤用链跟踪框架 & 系统 • 核⼼心开发 - 分布式数据库同步系统 • Github :https://github.com/zavakid • 开源项⽬目: • otter 核⼼心开发者: https://github.com/alibaba/otter 到底是怎样的架构升级 能达到这种效果? CONTENTS 01 架构升级的效果 02 架构升级的思考 03 架构升级的实践 架构升级的思考 现有架构的问题? 现有架构的问题 同步等待 • 现有同步模型,线程 多 load ⾼高 • 资源利利⽤用率 应⽤用本身的解决⽅方案? 并⾏行行度有限 • ⽆无法纯业务依赖并发 • 微服务化让问题更更凸 显 • RT 累积 (RxJava/RxJS/RxSwift) Project Reactor Akka Stream 特点 * 出现早(7年年前)、已发布 V2 * 在 Android ⼴广泛使⽤用,有⽤用户基础 * 全栈:客户端 + 服务端 + 前端 * 活跃度:RxJava Github Java 排名 No. 2 出现较晚(3年年) Spring 加持,有发展前景 Scala,⽤用户基础 少、普及难度⼤大 稳定性0 码力 | 27 页 | 1.13 MB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕无状态分布式系统的高可用问题 处理消息的服务节点可以随机选择 不必处理数据复制和同步的问题 系统容量和高可用能力可以同步提升 服务节点可以随意迁移,不必固定 IP 和存储 有状态分布式系统的高可用问题 一致性 可用性 分区容错性 Paxos Raft 2PC Gossip Ø 处理请求需要特定节点 Ø 必须要考虑数据备份和同步 的问题 Ø 容量扩展和高可用需要不同 解决方案 Ø 服务节点不能随便迁移 复杂操作拆分成简单原子操作,在界面和 CLI 做组合 Ø 注意设置超时 Ø 尽量避免用全局事物 Ø 注意慢操作可能造成的客户端冲突问题 最佳实践分享 有关缓存的使用 Ø 缓存的内容:服务发现应答,DNS 结果,元数据, 数据,之前的请求 Ø 逻辑正确性不能依赖缓存,写操作服务端必须有校 验而且幂等,没有缓存情况下系统仍可服务 Ø 错误回复缓存,过期时间不能太长,而且有清晰的 修复建议 Ø0 码力 | 44 页 | 2.47 MB | 1 年前3
苏宁易购小程序架构实践 苏宁 禹立彬腾讯系的微 信小程序,应用在微信和QQ,百度的百度小程序,应用在手机百度 和百度地图,头条小程序,应用在今日头条和抖音,还有各大厂家的 快应用等项目、 • 同时,WAP/APP等应用场景也需要同步开发,成本巨大。 小程序生态 • 围绕着小程序,各厂家也推出了一系列针对小程序的生态标准,联合 登录,授权获取用户信息,支付,通知消息,客服等等 • 对于这些生态功能来说,也需要一系列基础服务去支持 复用购物流程———同步器 • 主购物流程由于登录,支付,TAB原因,无法插件化 • 微信小程序间跳转策略的变化,使得无法集中在一个小程序上实现购 物流程,只能每个小程序都具备。 • 同步器中包含了最新的购物流程文件包——订单,购物车,商品详情 ,个人中心等 • 同步器同步代码,启动新小程序时,在购物主流程上的情况下,同步 生成标准项目。 代码同步器 新的垂直的小程序,使用同步器生成项 新的垂直的小程序,使用同步器生成项 目脚手架。 微信小程序插件 • 面向活动玩法类 • 小游戏 • 微信官方提供 • 降级到Webview 百度小程序转换器 • 基于百度官方的wx2swan • 将同等逻辑的微信小程序页面转换为百度 • 无法精确匹配每一个组件 • 少量修改,减少工作量 易购系APP转换器 • 将小程序代码转换为基于ReactNative框架的易购版小程序0 码力 | 36 页 | 833.39 KB | 1 年前3
联想-贺钢架构工作在国际化项目中的应用实例安全性和隐私… • 地域不同: 服务器的部署, 用户的访问, 组织架构, 团队沟通… 项目实例 -- XA项目背景及需求 • 多设备协作 PC, Mobile, Pad, Cloud… • 跨设备及云智能搜索 • 语音等多种输入方式 用例示意图 用户输入支持举例 3D Camera 项目实例 -- 项目开发团队 项目 备注 项目名称 XA 支持国家 160 多语言支持 27种语言 Vulnerability Scanning • Web/CGI Scanning • SMB Sessions 端到端的安全设计 端到端交互设计架构 端到端的安全设计 -- Threat Model 端到端的安全设计I 端到端的安全设计II 端到端的安全设计III 端到端的安全设计IV 端到端的安全设计 • 只Admin可以写(避免提升权限) • 验证配置文件(如xml)的签名 • 专业工具扫描0 码力 | 53 页 | 2.36 MB | 1 年前3
刘道平-从0到1,移动政务应用小程序系统架构演化仅有15%的政务APP提供办事服务,存在“信息有余、服务不足”的问题。 2、下载APP成为负担 政务APP盲目开发泛滥,用户为了办事需要下载多个APP,成为一种负担。 3、优化不足体验差 政务APP接入政务服务,没有结合移动端的访问特性进行移动化改造,用户体验差。 4、缺少持续运营: 政务APP运营维护乏力,版本迭代缓慢,存在大量僵尸应用。 资料来源 CAICT中国信息通信研究院《政务服务APP发展情况研究报告》,2017 统一身份认证 无需注册直接登录,提供活体检测、人脸核身 需要注册,使用密码和手机盾认证 推广传播 下载成本低、通过微信裂变传播 下载成本高、推广难、占流量、占内存 开发成本 只需开发一套,组件丰富 每个端都得开发,标准化组件少 版本更新 无感知,轻量级更新 更新麻烦,审核周期长 服务触达 利用微信载体,消息通知更简单 APP消息,打扰多,用户遗漏概率大 拓展性 程序包小,可以关联调转 无大小限制,调转较难 需根据场景单独对接,如人脸识别、支付等 产品自主性 需依托微信平台 完全自主可控 数据安全性 微信前端数据通过HTTPS传输 全业务流程数据传输监控 使用路径 微信端二级应用 一级入口 从技术的角度来比对,小程序和APP各具优势:小程序具备轻量级、跨平台、成本低、功能强和易传播的特征; 而APP则在产品自主可控、数据全程管控、使用路径更短、功能灵活多样方面更具优势。 6、探索需求 -- 分析可行性,选取合适的需求场景0 码力 | 35 页 | 15.60 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践测试镜像 仓库 历史 管理 批量 导入 接口 监控 生产集群 镜像 同步 镜像拉取 自 动 部 署 手 动 触 发 代码到线上全流程管理 互联网化接口测试,场景测试 灵活执行集:冒烟,日常,回归 定时测试,MOCK测试 测试,生产镜像仓库分离,自 动同步 开发测试环境自动部署,生产 环境手动触发 持续集成 www.163yun.com 服务 告警 认证 鉴权 统计 概览 知识 库 服务 告警 监控 大屏 账户 审计 可配置多条规则,按优先级匹配 可配置消费端黑白名单:只有A服务能访问B服务,只有IP1能访问B服务,更加安全 可配置服务端黑白名单:A服务版本1访问B服务版本1,A服务版本2访问B服务版本2,更灵活 路由 微服务框架负责服务之间的调用——路由 www.163yun.com0 码力 | 39 页 | 3.06 MB | 1 年前3
演进式架构:数字化世界"进化论" 肖然communication structure. -- Melvyn Conway, 1967 FROM: 隔离的功能性团队,只对隔离的应用架构负责。 TO: 跨职能的团队,对业务能力端到端负责。 多维度 Multiple Dimensions evolvability 安全架构 领域架构 … … 增量变化 Incremental Change0 码力 | 22 页 | 2.14 MB | 1 年前3
高性能高可用机票实时搜索系统• 要求同步延迟很低,不不超过60s • 保持顺序⼀一致性,如果先删后插变成 先插后删,数据会不不⼀一致 • 数据最终⼀一致 • 系统⾼高可⽤用 报价引擎 — 组织索引 北北 京 | 上 海海 成 都 | 杭 州 ⼴广 州 | 郑 州 南 宁 | 天 津 … 索引库 DB Sync 规则库 供应商 A 供应商 B 供应商 M … 报价引擎 — 数据同步 Pipeline Canal 解析 拆分 分配 ⼊入队 CAN-NNG … … … PEK-SHA DataSync Diff ZK 按 供 应 商 分 表 按 航 线 分 表 报价引擎 — 同步系统⾼高可⽤用 DB主 DB备 Canal 主 Canal 备 DataSync DataSync DataSync DataSync DB主 DB备 DB备 DB主 ZK ZK 数据交换采⽤用protobuf + gzip处理理 • jit、预热 回顾 • ⽔水平分层,纵向分渠道,良好的扩展性 • 实时计算 + 阶梯式缓存,成本与报价新鲜度的权衡 • 闭环系统 • 索引库数据同步 • 本地缓存的设计,更更新策略略 • 缩减对象内存 • ⼀一致性哈希负载均衡 ⼼心得 • 不不同的业务场景,不不同的特征 • 结合特征去进⾏行行设计和优化 • 通⽤用!=最优0 码力 | 26 页 | 1.94 MB | 1 年前3
共 25 条
- 1
- 2
- 3













