电商消息系统架构演进&mdash0 码力 | 22 页 | 12.22 MB | 1 年前3
微服务和Service Mesh 在多个行业落地实践接入层 静态资源 动态资源静态化 应用本地缓存 分布式缓存 数据库为中心 缓存为中心 www.163yun.com 设计要点七:消息队列与异步化 www.163yun.com 设计要点八:熔断,限流,降级 www.163yun.com 设计要点九:配置中心 www.163yun.com 设计要点十:日志中心 com 某大型银行 www.163yun.com • 两阶段提交XA——中间件DDB • TCC——中间件 Dubbo + DTS • Try 预留 + Confirm 提交 + Cancel 还预留 • Try 操作 + Confirm 无操作 + Cancel 补偿 • 事务消息——中间件 TMC 网易分布式事务的实现机制 www.163yun.com 怎么返回? option1:返回成功 option2:返回失败 option3:引入超时判断机制 ✘ ✘ ✔ 下单分布式事务 www.163yun.com 交易消息 www.163yun.com 某制造企业 • 大量遗留应用,多种语言开发 • 服务间直接调用,依赖混乱 • 调用记录无迹可寻 • 环境与接口规范缺失,维护困难 • 安全靠白名单各自为战0 码力 | 39 页 | 3.06 MB | 1 年前3
降级预案在同程艺龙的工程实践-王俊翔资源2 资源3 资源4 …… 资源4 ⼤大量量超时 统⼀一资源⽹网关 搜索引擎 API⽹网关 ⼤大量量请求超时 缺乏熔断设计 交易易故障 第三⽅方⽀支付 ⽀支付中⼼心 ⽀支付回写 消息队列列 ⽀支付通知 交易易中台 ⽀支付时限任务 出票处理理 队列列故障 已⽀支付订单被取消 ⽀支付超时 订单取消 缺乏降级设计 稳定性之路路到底有多远 如何设计⾯面向容错的系统,如何提升系统的可⽤用性 本地多队列列轮循,数据缓冲,合并异步发送 指标如何计算处理理 数据采集 KAFKA ETL 复合指标 ⾃自定义指标 系统指标 业务指标 指标脚本计算 指标规则计算 指标脚本 规则表达式 熔断 降级 条件 计算 降级消息 数据 存储 实时告警 规则配置 开发 ⽇日志解析规则 控制中⼼心 ETCD 降级服务 降级处理理 流处理理集群(Flink) HBase ES Redis 落地存储 数据服务 Application JVM 故障画像 • 应⽤用故障:模拟应⽤用进程内故障 • 中间件故障:通过中间件客户端,模拟中间件故障 • 系统故障:通过⼯工具、脚本模拟⽹网络丢包、延时,磁盘不不⾜足故障 故障抽象,提炼统⼀一模型 • 延时模型、超时模型、异常模型、⾃自定义代码模型 • 基于模型实现应⽤用故障、中间件故障模拟,实时对应⽤用程序进⾏行行 字节码插桩、拆桩 简洁易易操作后台 •0 码力 | 26 页 | 18.67 MB | 1 年前3
声明式自愈系统——高可用分布式系统的设计之道-王昕系统的设计之道 王昕 高级技术专家 声明式自愈系统——高可用分布式 系统的设计之道 王昕 高级技术专家 自我介绍 王昕,阿里中间件技术团队高级技术专家,阿里云开放云平台布道师。具有10多年软件 系统开发和架构经验,在分布式系统领域经验丰富,长期参与高可用中间件系统、云平 台基础管理系统和云原生自动运维系统的构建。在国内外有10多项授权和在审软件技术 发明专利,并多次受邀出席技术会议,做技术专题分享。 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 无状态分布式系统的高可用问题 处理消息的服务节点可以随机选择 不必处理数据复制和同步的问题 系统容量和高可用能力可以同步提升 服务节点可以随意迁移,不必固定 IP 和存储 有状态分布式系统的高可用问题 一致性 可用性 分区容错性 内存溢出 不可读写 目录 Ø 分布式系统面临的高可用问题 Ø 设计和验证高可用分布式系统的工具与方法 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 一个分布式消息系统的概念模型 Producer X Topic A Queue A0 Queue A1 Server Group 0 Topic B Queue A2 Queue A0 Server0 码力 | 44 页 | 2.47 MB | 1 年前3
领域驱动设计&中台/淘宝应用架构升级——反应式架构的探索与实践���App AliRxObjC Sentinel �� RxJava / RxSwift / … ����� ���� + ���� RxJava 升级事项: • 编程框架 • 中间件 • 业务 编程框架选型 Rx* (RxJava/RxJS/RxSwift) Project Reactor Akka Stream 特点 * 出现早(7年年前)、已发布 V2 * ⼤大 中间件升级 1. 服务框架(RPC) 流式⽀支持会在 开源的 Dubbo3 放出 2. (移动)⽹网关(Geatway) * 先使⽤用适配 接⼝口不不变、分段实施、不不返回 Flowable * 更更⾃自然的流式 ⽀支持业务直接返回 Flowable 3. 缓存(Cache) 4. 消息(Queue) Masters ��� �� �� 解决⽅方案⽀支持 — 执⾏行行治理理(2018双11) •线程模型(执⾏行行治理理):业务应⽤用 极简⾼高效 的线程模型,统⼀一线程池 • RPC、缓存等中间件 线程池设置⼊入⼝口,由应⽤用架构统⼀一管控 • 整个应⽤用 CPU数个业务线程 • 涉及线程池:EventLoop / Provider / Consumer / 阻塞操作 的线程池 • 进⼀一步提升性能0 码力 | 27 页 | 1.13 MB | 1 年前3
QCon北京2018-业务高速发展下的互联网金融系统架构演变-张现双+2pizza团队,系统单体制约 商城 核心服务 业务 网贷 保险 基金 商城 财富圈 健康财富 加密 验签 拦截 校验 安全 性能 并发 幂等 交易 缓存 基础服务 消息 监控 配置 报警 MIS OpenAPI 微信 财富圈 移动后台 商城MIS WAP … … Android/ios/h5/php/openApi 积分系统 基础服务 优惠券 流量统一出口 积分系统 优惠券 基金服务 保险服务 理财服务 支付中心 电子签章 第三方系统 营销支持 基础服务 数据支持 批处理 … 网关(略) 移动基础服务 消息 监控 配置 报警 金融产品 Yiri 财富圈 首页 feed 活动中心 微信 WAP 4G 积分商城 ... ... 账户中心 迅速响应业务变化 before after 第三部分 多IDC,区域容灾,多ISP 集群,高可用,分片 本地缓存,防刷,流控 终端 域名 机房 LB / NG.. 网关 Cache 服务 抓大不能放小[细节决定成败] 线程阻塞>300 中间件内存管理、线程状态,连接状况 db的io,慢sql,索引,join等 代码review,数据结构,日志 GC TCP连接 第四部分 关于监控 如果没有监控… 盲 人 骑0 码力 | 42 页 | 19.96 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践service2 service4 … … … … … … 构思 IDEAS A SendBuffer(100) Daemon ReceiveBuffer(100) B dto 消息队列 Daemon(1000) Process get put send get put get 设计 DESIGN 任务队列 dto dto dto JVM 工 作 线 服 务 服 务 服 务 JVM 工 作 线 程 工 作 线 程 工 作 线 程 工 作 线 程 工 作 线 程 服 务 服 务 服 务 服 务 服 务 任务队列 基于消息的分布式架构 MESSAGE - BASED DISTRIBUTED ARCHITECTURE 管理区 LVS-master C1 RabbitMq-1 数 据 库 服 务 器 区 LVS-slave 设计可容错的系统(快速失败、超时、自动重路由) 设计具备自我保护的系统(拆分、限制、优雅停止) 制定合适的开发规范 撒网 实时监控(傻瓜式、开发不用查日志) 可视化运营 网络监控 主机监控 服务监控 业务监控 中间件、接口探测、日志抓取 状态类(响应码、交易状态、退款状态、商户状态) 耗时类(交易总时长、分段时长、SQL耗时、代码耗时) 统计类(订单量异常预警、非法IP预警、交易额过大) 网络异常(单通道和多通道、不同的分布场景)0 码力 | 35 页 | 6.05 MB | 1 年前3
大规模分布式系统架构下调测能力构建之道大规模分布式系统架构下调测能力构建之道 李鑫 大纲 分布式环境下开发的调测效率问题 应对之道 远程应用服务 契约测试 分布式消息服务 分布式缓存 分布式服务的“租户”隔离策略 总体调测框架实践 分布式环境下调测方法论 单体应用 服务化 微服务 小中型规模应用+小型团队 中大型规模应用+多团队协同 Cache DB NFS Load Balancer 行功能/接口 调测存在如下困难: 开发依赖重 联调成本高 变动把控困难 拆 应用拆分 数据拆分 团队拆分 分布式服务 API Gateway 分布式文件 分布式缓存 分布式消息 DB Cluster 连接 序列化 路由 负载均衡 … 问题示例 1. 我依赖一个远程服务,但在负责它的团队把它上线之前,我什 么也做不了 2. 我负责的功能依赖一堆的远程服务,为了本地调测,我必须从 我和其他团队共用一套分布式缓存服务,为了防止数据覆盖, 我只能和别人轮流排队上线调试,我等了一天,结果只能用一 个小时。 6. 我写了个消息Consumer,布到线上准备测测,结果,别人的消 息先到了,一下把我的预置数据全搞乱了… 7. 我的开发机性能还行,我想自己装一套依赖环境提高开发调测 效率,结果消息服务、缓存服务、服务框架装完一启动,80% 的系统资源就没有了,想想还有一堆的应用服务还没装,直接 泪崩… 80 码力 | 19 页 | 2.74 MB | 1 年前3
高可用分布式流数据存储设计-李玥⾼高可⽤用分布式流数据存储设计 李玥 京东集团 技术架构部 架构师 ⾃自我介绍 ⾃自我介绍 李李玥 京东集团 技术架构部 架构师 负责主导设计新⼀一代京东消息中间件系统,专注于流数据的⼀一致性分发和可靠存储、分布式实时计算和⾼高可⽤用分 布式系统架构等技术领域。 从事互联⽹网研发、架构10余年年,曾在浪潮集团、当当⽹网等公司从事架构相关⼯工作。2017年年加⼊入京东,期间提升京 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 80 Index 0 134217342 2684331560 码力 | 36 页 | 6.02 MB | 1 年前3
刘道平-从0到1,移动政务应用小程序系统架构演化下载成本低、通过微信裂变传播 下载成本高、推广难、占流量、占内存 开发成本 只需开发一套,组件丰富 每个端都得开发,标准化组件少 版本更新 无感知,轻量级更新 更新麻烦,审核周期长 服务触达 利用微信载体,消息通知更简单 APP消息,打扰多,用户遗漏概率大 拓展性 程序包小,可以关联调转 无大小限制,调转较难 智能化服务能力 微信自带组件,对接更容易 需根据场景单独对接,如人脸识别、支付等 产品自主性 需依托微信平台 13、安全渗透测试、运维监控 -- 确保系统稳定 一、业务应用上线前必须经过安全渗透测试。 1、在测试环境中扫描出:越权查询、SQL注入、明文传输等,要求整改 2、正式环境检查: 操作系统、数据库、中间件漏洞,建议打补丁 二、运维监控每日 1.采用ELK收集系统日志、监控异常信息 2. 对各业务系统API接口进行状态监控,每日输出报告 14、系统上线、系统截图 粤省事小程序码 目录 一、移动政务应用服务现状与痛点0 码力 | 35 页 | 15.60 MB | 1 年前3
共 24 条
- 1
- 2
- 3













