- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
张现双 - 业务高速发展下的互联网金融系统架构演变_部分2
展开查看详情
1 .第三部分 流量应对策略
2 .流量≈并发 更强的machine 更多machine(cap) 限流降级 Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once. -------Joe Armstrong
3 .关键点 业务纵向拆分,化整为零 分而治之,缩小竞争面 资源拆分,横向扩展 cache,index,partition 加速资源交换,更快响应 parallel non-blocking CAP 共享资源串行操作 sync、lock,cas 数据一致性(脏读,丢失更新等) 额度、库存、积分、优惠券…
4 . 数据库锁(全局标识拦截): update product 数据竞争! set stock=stock-X where stock-X>=0 [sql方案示例] 限流: max_connections(db) max_request+max_threads(middleware) 乐观锁,带来重试代价 悲观锁,开销大,吞吐量差
5 . Redis+java方案(瑕疵版): ! stock=(incrby stock –X)! 数据竞争! if (stock<0){incrby stock X;}! else { //submit}! [NoSql方案示例] 限流、熔断: maxclients(redis) max_request+max_threads(middleware) 内存操作 hystrix..(service) 单线程原子操作 高可用保障 兜底策略
6 . Redis+(lua/module)方案: local stock = redis.call("GET","STOCK") if tonumber(stock)<tonumber(X) then 数据竞争! return '-1' else stock=redis.call("INCRBY", "STOCK",-X) return stock [NoSql方案示例2] end 限流、熔断: maxclients(redis) max_request+max_threads(middleware) 存储+运算,一致性保证 hystrix..(service) 高可用措施保障 兜底策略
7 .热点削峰 流量 不限流 系统容量水位线 限流 时间
8 .削峰策略[知容量,明底线] 底线 熔断 过载保护 丢车保帅 降级 拒绝服务 异步延迟 容量水位线 限流 多节点参与 开关控制
9 .多节点有序参与 终端 本地缓存,防刷,流控 域名 智能DNS,DNS负载均衡 机房 多IDC,区域容灾,多ISP LB / NG.. 限流(limit,lua),openresty,4层/7层LB 网关 弹性扩容,限流(token),熔断,防刷 Cache 集群,高可用,分片 服务 降级,熔断,弹性扩容
10 .抓大不能放小[细节决定成败] TCP连接 GC 线程阻塞>300 中间件内存管理、线程状态,连接状况 db的io,慢sql,索引,join等 代码review,数据结构,日志
11 .第四部分 关于监控
12 .如果没有监控… 盲 人 骑 瞎 马 , 夜 半 临 深 池
13 .监控体系 期望更轻量、无侵入性的业务监控 趋于个性 应用/框架/业务逻辑/系统间调用 cat,elk,zipkin等 } 中间件/缓存/数据库/代理/MQ... zabbix,datagod, prometheus… apm工具,商业产品 OS/网络/存储/防火墙... 具有共性
14 .自研日志监控[轻量无侵入] Kafka Kafka Spout 经典流式计算架构,流水线策略,线性扩展 Cache RBAC 预处理bolts User 策略 Data Filter 系统配置 Role 策略发生器 规范化 监控统计 高性能监控核心,灵活的监控策略 监控 数据流 系统统计 关键词模式、上下文模式、时间窗口模式等 校验 轻量、高效、稳定,0侵入 监控核心流水线bolts 异 系统异常 业务节点 业务数据 步 线 基础策略 程 分 发 业务数据统计 分布式队列(报警系统) 合并降级 报警队列 活动监控 活动队列 报警策略
15 .日志监控平台 微信 微信/邮件/短信 高可靠,高响应 高性能 灵活配置
16 .谈点感想
17 .感想 01 微服务≠spring cloud≠容器化≠RPC 工具/框架是手段而不是目的 02 优秀的系统=! 适应性架构设计(指导)+超强工程能力(落地) 03 安于现状=走下坡路 提升团队整体工程能力,前瞻性改造 04 技术要紧贴业务,接地气 技术是手段而不是目的,生产力适应生产关系,技术业务相互促进共同发展
18 .Thanks !