后台架构设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
搜索引擎 大数据(hadoop,spark,storm)
云技术(openstack,docker,Kubernetes,mesos, 公有私有混合)
前端 (requirejs, angularjs, vue)
Thanks!
5 康威定律
6 业务架构-应用架构-技术架构
分层
事件驱动-状态机
微内核
微服务
SOA与微服务
分布式服务组成的系统 按照业务而不是技术来划分组织 做有生命的产品而不是项目 Smart endpoints and dumb pipes 自动化运维(DevOps) 容错
快速演化
分布式之一 : 方法论
高性能(HP)
1 性能指标 2 影响性能因素 3 缓存 4 同步,异步,协程 5 多进程VS多线程 6 线程模型 7 从单机到多机(分片&读写分离) 8 压测 9 错峰 10 硬件(SSD,RAID,DRBD) 11 程序优化
12 13 14 15 16 17 18 19 20 21 池化 锁优化&zero copy 批量和延迟写入 静态化 网络 预处理 推送之读写扩散 队列 操作系统 数据库优化
负载均衡
• • • • • • LVS NGINX HAPROXY L5 ZK F5
• 哈希(一致性哈希) • Smart Client
高可用(HA)
1 可用性(N个9) 2 高可用mysql 3 高可用redis 4 failover, failfast, failsafe,failback,forking,broadcasting 5 VIP,VRRP 6 zookeeper 8 WAL 9 replication&elect 10 限流控流 1 频率限制 12 重试雪崩
分布式之三:事务
两阶段提交VS三阶段提交
1、引入超时机制。同时在协 调者和参与者中都引入超时机 制。 2、在第一阶段和第二阶段中 插入一个准备阶段。保证了在 最后提交阶段之前各参与节点 的状态是一致的。
本地事件表or消息事务+最终一致
分布式之三:事务
分布式之三:事务
TCC
分布式之四:服务治理
1 CAP(NRW) 2 BASE 3 SOA服务化 ① 职责单一
② 边界清晰
③ 开闭
4拆
分布式之二 :一致性
强一致,弱一致,最终一致
强同步,半同步,异步
补偿和最终一致 重试和幂等 一致性中心 一致性算法(paxos, raft, zab)
分布式之三:事务
分布式事务最好的解决方案就是不考虑事务
01 02 03 04 05 06 07 08 09 10 服务注册与发现 软负载均衡与容错 服务监控与统计 服务容量评估 服务上线审批 服务下线通知 服务路由 服务编排 服务黑白名单 服务调用链跟踪 11 12 13 14 15 16 17 18 19 20 服务自动测试 服务伪装容错 服务使用情况报告 服务权重动态调整 服务负载均衡调整 服务健康检测 服务自动部署 服务资源调度 服务降级 服务等级协定
后台架构设计
浅谈后台架构设计 后台架构设计之我见
吴隆烽
毕业于 浙江大学 任职经历 深圳华为技术有限公司 中央软件院 电子信息工程
北京趣拿软件科技有限公司(去哪儿网) 机票事业部 腾讯科技(深圳)有限公司 SNG即通应用部 金融技术部
众安在线财产保险股份有限公司
架构是一种平衡的艺术
1 基本能力(抽象,估算,tradeoff) 2 设计原则 ① KISS② 大系统小做③ 有状态无状况④ 逐步演进和演化 3 整套解决方案 ① 可扩展② 协议③ 性能④ 可用性及容灾 4 评估 ① 敏捷性 ② 易于部署 ③ 可测性 ④ 性能 ⑤ 可伸缩 6 易于开发 ⑤ 部署⑥ 监控 ⑦ 安全
海量服务
容灾
1 备份 2 过载保护(及时拒绝) 3 解耦 4 降级 5 两地三中心(热备,冷备,温备)
6 同城多活->异地多活
7 流量切换 8 重试,防雪崩 9 柔性可用
监控
监控指标 统一日志搜集,监控,跟踪 报警 立体监控
部署
独立迭代,独立生命周期 度,蓝绿 服务器容量评估 服务资源动态调配
扩容缩容 机房,同城,异地,IDC
安全
ddos,sql注入,xss,csrf,dns劫持,json hack) 网络
感悟
1 学习技术的方式 2 基本功 ① 多线程并发编程 ② 网络(io, nio, netty) ③ linux ④ 内核 ⑤ 数据结构和 算法 ⑥ mysql ⑦ memcache/redis 3 软实力(沟通,组织,领导) 4 架构师境界 以工程思维全面理解业务需求 基于模型和基础模式抽象简化 提出恰当可行的整体解决方案 在限定资源范围完成明确目标
满足业务需求且保证系统质量
在可预见的周期内具备扩展性
推荐
JDK 源码(netty,spring,tddl,mycat,nginx,redis,kafka,dubbo, RocketMQ,HSF,zookeeper,mysql,kilim) TCP/IP HTTP
linux命令 & linux内核 (源码)
相关文档
最新文档