联想-贺钢架构工作在国际化项目中的应用实例国际化项目的一些不同点 • 目标客户不同: 文化习俗, 客户需求, 用户体验… • 要求不同: 各国法律法规(版权,协议,第三方,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
高可用分布式流数据存储设计-李玥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 年前3
分布式异地多活架构实践之路非核心系统 原有系统 单向依 赖 传统DNS调度存在问题 LocalDNS 智能DNS (权威域名 服务器) root域名服 务器 com域名服 务器 合肥IDC 北京IDC 广州IDC GSLB 获取服务IP IP请求 DNS劫持严重 用户设置DNS服务器 DNS各级缓存 DNSTTL不遵循 EDNS普及缓慢 根据用户IP来 进行运营商区 域的调度 结果:无法就0 码力 | 36 页 | 1.66 MB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕运行时可能出现的异常 Applications Runtimes Middleware OS Virtualization Storage Networking Data 启动异常 进程被杀 服务器假死 断电 启动异常 超卖 进程死锁 负载均衡失效 业务线程池满 监控错误 流控不合理 心跳异常 缓存热点 缓存限流 数据库热点 数据库宕机 数据库延迟 CPU 抢占 内存抢占 内存错乱0 码力 | 44 页 | 2.47 MB | 1 年前3
领域驱动设计&中台/如何让DDD落地果和原因给订单API适配器器 3.创建订单服务收到命令后,会把创建订单命令转换成订单,然后调⽤用订单仓库进⾏行行 保存,保存成功后会让事件发布器器发布订单已创建事件 4.事件发布器器会根据事件类型把订单已创建事件转发给商品库存订阅者, 5.商品库存订阅者收到事件以后会根据事件中的商品ID和订单数量量创建锁定商品库存 命令,然后给锁定商品库存服务进⾏行行库存锁定 6.锁定商品库存服务收到命 品ID从商品库存仓库中获取商 品库存,然后根据让商品库存锁定订单数量量,之后调⽤用商品库存仓库进⾏行行保存,最后 让事件发布器器发布商品库存已锁定事件 ……. 领域故事中的主要对象 领域对象 类型 命名 订单API控制器器 Adapter OrderController 创建订单命令 Command CreateOrderCommand 创建订单应⽤用 ApplicationService 沟通过程信息丢失 需要增加⼀一些业务逻辑时 3.创建订单服务收到命令后,会把创建订单命令转换成订单,然后调⽤用订单仓库进⾏行行 保存,保存成功后会让事件发布器器发布订单已创建事件 4.事件发布器器会根据事件类型把订单已创建事件转发给商品库存订阅者,订单⽇日志订 阅者 5…. 6…. 7.订单⽇日志订阅者收到订单已创建事件后,会根据事件创建添加订单⽇日志命令,然后 调⽤用添加订单⽇日志服务来进⾏行行添加0 码力 | 32 页 | 3.25 MB | 1 年前3
唯品会调度系统的前世今生无法做到高可用 TBSchedule Elatic-Job Java事实任务标准 关注点在定时任务而非数据, 缺少分布式并行调度的功能 阿里早期开源的分布式任务调度系 统,代码略陈旧 作业类型较单一,只能是获取/处理 数据一种模式 当当开源的分布式任务调度系统 代码较新,使用Quartz进行调度。提供 高可用和分布式功能 功能单一,只支持Java,不支持 Shell(PHP)和消息驱动的作业调度 功能地图 01 02 03 多种作业类型与 作业模式 资源动态平衡 框架与业务隔离 三大功能特性 Shell作业 消息作业* JAVA作业 分布式与本 地作业模式 • 完美兼容现有PHP的作业,可无缝迁移,成本最低 • 提供多种业务开发模式,满足不同的业务需求 • 多种业务运行模式,即可分布式管理也可本地管理 • 通过异步消息实现业务编排* 多种作业类型 人工指定 运行节点 系统自动0 码力 | 58 页 | 5.40 MB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造友谊第⼀一 ⽐比赛第⼆二 降⻰龙⼋八步第⼀一式 ⽤用户 订单 商品 第⼀一式: 1. 明确要拆解的服务所涉及 的模块 2. 验证之前代码依赖分析和 数据库分析的结果 3. 约定“同⼀一类型数据只有⼀一 处修改”,以数据为中⼼心提 ⾼高内聚性,同时避免写冲 突的出现 遗留留系统 降⻰龙⼋八步第⼆二式 ⽤用户 订单 商品 遗留留系统 第⼆二式: 1. 在现存订单模块中添加新的 户模块,完成拆解 遗留留系统拆解注意事项 1. 遗留留系统改造过程中,适当减少新需求的开发,减少改造难度 2. 遗留留系统改造过程中,新需求开发必须按照新规则,如只通过 REST API进⾏行行依赖,同⼀一类型数据只能在某⼀一模块中修改, 不不依赖其他模块数据库等,减少改造⼯工作量量 3. 遗留留系统中还会包含前端代码和存储过程,也需要通过代码依 赖分析和数据库依赖分析进⾏行行拆解 4. 服务间依赖不不⼀一定只有REST0 码力 | 54 页 | 3.85 MB | 1 年前3
高性能高可用机票实时搜索系统基础数据 搜索框架 遇到问题 解决⽅方案 • 报价数量量多,内存问题 • 报价源多,不不稳定 • 响应时间要求苛刻 • 搜索条件有热点 • 缓存报价不不准 • 尽量量⽤用原⽣生数据类型,编码 • 回数⽐比例例,异步搜索更更新 • 分批回数 • ⼀一致性哈希,负载均衡 • 供应商粒度,主动更更新 报价引擎 供应商规则 航司运价 航班舱位状态 套餐搭售 + +0 码力 | 26 页 | 1.94 MB | 1 年前3
共 14 条
- 1
- 2













