联想-贺钢架构工作在国际化项目中的应用实例
国际化项目的一些不同点 • 目标客户不同: 文化习俗, 客户需求, 用户体验… • 要求不同: 各国法律法规(版权,协议,第三方,accessibility), 安全性和隐私… • 地域不同: 服务器的部署, 用户的访问, 组织架构, 团队沟通… 项目实例 -- XA项目背景及需求 • 多设备协作 PC, Mobile, Pad, Cloud… • 跨设备及云智能搜索 • 语音等多种输入方式 来自安全部门的问题 数据中心最终方案 用户访问量对应的web架构 用户访问量 服务器架构 百万以下 单台或多台的简单架构,可以简单通过升级服务器 配置支持更多用户 百万到千万 增加Nginx(反向代理)或DNS负载均衡,redis内存 cache,数据库(Mysql)多台(数据在一个数据中心) 千万到亿 增加Web服务器内存缓存,集群,IP负载均衡,基于内 容请求分发,Mysql优化(如减少写,2/8原则) 登录相关设计碰到的问题 • 安全关注: 国内服务器 • 两个不同的登录服务器:不同的访问地址,不同的接口,不同的功能 • 不同的开发团队按不同的计划在开发 登录设计方案 Quick Breather 对架构设计的影响V -- 安全要求对架构的影响 • 软件安全趋势 • 针对国际化公司的安全威胁 LSDL 安全设计 安全设计 服务器安全 -- Penetration Testing(渗透测试)0 码力 | 53 页 | 2.36 MB | 1 年前3分布式异地多活架构实践之路
分布式日志收集等 写多读少 汇聚模式 (多点写,单点读) 内容统计指标获取、内容榜单等 读写均衡 混合模式 (多点写,单点读, 单点写,多点读) 非核心业务 老版本兼容服务、运营活动、配置、管 理平台、官网、论坛等 N/A 本地模式 (单点读写) 设计思路 核心业务异地多活 精准流量调度 数据同步 多元化 最终一致性 依赖关系优化 配套系统支撑 主 从 多 主 非核心系统 原有系统 单向依 赖 传统DNS调度存在问题 LocalDNS 智能DNS (权威域名 服务器) root域名服 务器 com域名服 务器 合肥IDC 北京IDC 广州IDC GSLB 获取服务IP IP请求 DNS劫持严重 用户设置DNS服务器 DNS各级缓存 DNSTTL不遵循 EDNS普及缓慢 根据用户IP来 进行运营商区 域的调度 结果:无法就 50% 合肥 50% 广州 50% 1 1 2 冗余机器与其他系统复用,弹性伸缩 配套系统支撑 测试场景覆盖 灰度发布上线 机房流量调度 监控覆盖 故障模拟演练 数据恢复 配置平台 服务化平台 日常运维 大纲 • 产品发展中遇到的问题 • 异地多活存在哪些技术挑战 • 讯飞输入法解决方案 • 实际应用效果 • 未来规划 可用性 机房内故障 机房入口网 络故障0 码力 | 36 页 | 1.66 MB | 1 年前3声明式自愈系统——高可用分布式系统的设计之道-王昕
Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 依据声明式自愈的理念设计系统 有一个统一的状 态持久化接口, 所有有状态模块 通过统一的接口 对应统一的对象 模型 配置模块对象只 需要包括 Desired State 每个领域的控 制器模块的逻 辑保证自己领 域独立自愈的 能力 改变状态的操作 必须是幂等的声 明式操作,没有 新声明时各模块 按照之前的声明 运行时可能出现的异常 Applications Runtimes Middleware OS Virtualization Storage Networking Data 启动异常 进程被杀 服务器假死 断电 启动异常 超卖 进程死锁 负载均衡失效 业务线程池满 监控错误 流控不合理 心跳异常 缓存热点 缓存限流 数据库热点 数据库宕机 数据库延迟 CPU 抢占 内存抢占 内存错乱 错误回复缓存,过期时间不能太长,而且有清晰的 修复建议 Ø 数据库更新与缓存失效的策略 最佳实践分享 有关配置文件 Ø 集群使用统一的配置来源 Ø 定义正常的默认配置,满足读取不到配置的正 常运行 Ø 支持可扩展的配置命令格式 Ø 尽量支持更改配置不需要重启服务 Ø 注意配置项之间的关联性 欢迎与我交流 王昕个人微信 欢迎与我交流 王昕个人微信0 码力 | 44 页 | 2.47 MB | 1 年前3高可用分布式流数据存储设计-李玥
SSD 1 GB/s 1 ns 6, 000 ns 70, 000 ns 1 ms = 1, 000, 000 ns JournalQ有多快? 32, 961, 776 TPS 测试服务器器:32C/256G/4TB SSD/万兆以太⽹网 测试每条消息⼤大⼩小为:1KB LZ4 压缩 单节点 存储结构设计 0 10 50 55 80 Journal 0 10 50 55 commitIndex matchIndex nextIndex 9 AppendEntries RPC 参数 描述 term 领导⼈人的任期号 leaderId 领导⼈人的 id,为了了其他服务器器能重定向到客户端 prevLogIndex 最新⽇日志之前的⽇日志的索引值 prevLogTerm 最新⽇日志之前的⽇日志的领导⼈人任期号 entries[] 将要存储的⽇日志条⽬目(表示 heartbeat0 码力 | 36 页 | 6.02 MB | 1 年前3分布式 KV 存储系统 Cellar 演进之路
迁移数据 B节点状态 代理请求 响应 请求 响应 Cellar—请求超时原因 • 客户端问题 GC、CPU繁忙··· • 网络问题 • 服务器端问题 磁盘IO、慢请求··· • 客户端 backup request • 服务器端 快慢队列 Cellar—backup request 副本1 副本2 副本3 req3 • 什么时间 等待超过 超时时间一半 • 发几次0 码力 | 34 页 | 1.66 MB | 1 年前3从百度文件系统看大型分布式系统设计中的定式与创新
非最底层系统都可以设计无状态Master - Master分布化 • BFS选择的解决方案 NameServer Cluster 故障容忍 • 设备都是会坏的 - 假设的服务器MTBF是30年 - 搭建一个1万台服务器的系统 - 每一两天就坏一个 • 典型数据中心 - 过热:5分钟内数千台机器宕机 - 供电异常: 500~1000台机器突然消失 - 机架晃动: 几十台机器出现50%丢包 -0 码力 | 24 页 | 937.45 KB | 1 年前3QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+
2pizza团队,系统单体制约 商城 核心服务 业务 网贷 保险 基金 商城 财富圈 健康财富 加密 验签 拦截 校验 安全 性能 并发 幂等 交易 缓存 基础服务 消息 监控 配置 报警 MIS OpenAPI 微信 财富圈 移动后台 商城MIS WAP … … Android/ios/h5/php/openApi 积分系统 基础服务 优惠券 宜人币 基金服务 标签 用户 管理平台 产品 理财单 渠道 版本 5G 措施:剥组件,拆单体,合冗余 移动后台打散 轻业务上浮 重业务下沉 API接入 指标监控 配置管理 业务前置配置 日志 配置系统 安全控制 拦截、校验 接口签名 加解密 防刷 攻击类 接口缓存 接口重写 热点活动支持 热点功能前置 接口版本控制 业务前置控制 Ng+ LUA 流量调度 措施:剥组件[深度定制网关] API接入 指标监控 配置管理 业务前置配置 日志 配置系统 安全控制 拦截、校验 接口签名 加解密 防刷 攻击类 接口缓存 接口重写 热点活动支持 热点功能前置 接口版本控制 业务前置控制 Ng+ LUA 流量调度 降级 限流 灰度 接口分发 运营活动动态配置,接口重新编排 热点功能前置,网关分发许可限流,保护底层0 码力 | 42 页 | 19.96 MB | 1 年前3微服务和Service Mesh 在多个行业落地实践
缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 www.163yun.com 设计要点八:熔断,限流,降级 www.163yun.com 设计要点九:配置中心 www.163yun.com 设计要点十:日志中心 www.163yun.com 设计要点十一:全链路监控 www.163yun.com 设计要点十二:全链路压测 www API 监控 认证 鉴权 治理 文档 报表 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 APM (应用运行期监控) 运行时 拓扑 性能 监控 服务 筛选 调用 链 调用 栈 持续集成 www.163yun.com 微服务框架 (服务治理) 服务 目录 注册 发现 限流 熔断 降级 容错 路由 负载 均衡 参数 分流 拓扑 依赖 配置 中心 服务 监控 服务 告警 认证 鉴权 统计 概览 知识 库 服务 告警 监控 大屏 账户 审计 注册,发现,调用都提供鉴权 认证鉴权 接口文档统一维护0 码力 | 39 页 | 3.06 MB | 1 年前3大规模分布式系统架构下调测能力构建之道
无需修改应用代码,单元测试代码中也无需添加任何的mock语句。 服务 调用 Invoker … Remote Call 负载均衡 策略 Runtime Mock数据文件 远程服务 Mock配置 开关/策略… 路由 策略 … Mock过滤器 启 动 加 载 服务 调用 脚本引擎 Mock数据规范 格式规范: 1.静态匹配 2.动态匹配 3.多版本支持(服务版本) 管理规范: 线上数据 抓取过滤器 FilterN 抓取配置: 是否开启 抓取时长 抓取数量 落 盘 … … 导出 Mock文件A Mock文件B Mock文件C 应用服务直连调测 服务容器(Provider) 调用者 服务容器 提供者A 服务容器 服务注册中心 服务列表 …… 无需注册中心 不需要服务消费者注册,直接通过本地配置文件指定的IP地址来绕过“服务路由”及“负载均衡”机制。 服务提供者不能采用token验证模式 基于包名过滤服务 团队往往开发某类业务服务,这类服务一般都具有相同的包名,因此,可以通过配置包名和服务IP的映射关系, 让服务框架自动将一批服务和特定的IP关联到一起。 直连调测机制 提供者B 服务容器 提供者B 服务容器 本地配置文件 com.company.modelA.* 192.168.1.22 com.company.modelB.*0 码力 | 19 页 | 2.74 MB | 1 年前3《58到家技术架构快速规划与落地》 - 沈剑
服务化-问题:SQL质量无保障 58集团技术专场 1. 服务化-解决方案:服务化 58集团技术专场 1. 服务化-58到家最佳实践 � 统一服务框架(D-SF) � 统一数据访问层(D-Dao) � 配置中心(D-Confcenter) � 消息总线(D-MQ) � 统一监控(D-Monitor) � 调用链跟踪(D-Tracker) � 服务治理(D-Watcher) 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
共 22 条
- 1
- 2
- 3