2.游戏战中陪伴助手微服务架构设计与应用所有策略需求都需要走开发流程 - 迭代周期长:2周开发、测试、上线 运营 - 变更困难,修改策略 = 修改代码 开发 - 代码低内聚,交接难度大 扩展 - 没有考虑扩展 功能 - 难以实现战略推荐 - 早期:先考虑有无 - 引入推荐系统 系统思考——如何评判方案的好坏? 需要定义几个维度来评判一个方案的好坏 - 响应性能: 获取事件到输出策略的延迟 - 服务器成本: 每服务千人成本越低越好 策略举例: - 关键帧内容:目标坐标、有资源、有敌人、无开火、无车 - 话术播报:“去小地图标注的地方搜刮,注意避开敌人” 方案探索——关键帧 / 路径推荐 针对具体场景开发 - 优势: - 战略级规划、序列化推荐 - 策略自动生成(除坐标外的特征穷举) - 主要不足: - 特征维度增加后,维度爆炸 - 启发: - 抽象:子状态(特征维度) - 子状态组合成状态,同时子状态也可以组合成策略 - 由重排层也不是业务层存储缓存 - 破坏推荐系统架构,降低复用性 - 裁剪对局历史 - 最多缓存 10 分钟的对局历史 - 不是根本解决方法 - 微服务单体化 - 腾讯文档团队《回归单体成为潮流?腾讯文档如何实现灵活架构切换》 - 更进一步优化:网络 RPC 改为函数调用,同时保留微服务架构 微服务——上线前压测 贵 微服务——火焰图 - 以实验层火焰图为例,业务逻辑仅占 CPU 10%0 码力 | 47 页 | 11.10 MB | 1 年前3
2.1.1 Golang主动式内存缓存的优化探索之路多维度查询 03. 业务数据的查询条件复杂,数据在内存中该如何组织 Q1:已开始的公益直播,且公开显示 直播1 Q2:2021-06-27 10:00:00之后 Q1 无数据 数据模型管理 04. 基于golang的struct tag实现正排、倒排结构的自动化管理 全数据扫描? 索引 主键 倒排 业务快速增长 存储如何无限扩展? 存储扩展 05. 业务数据已经超过100 go原生map存储200万数据对象 • 数据对象中包含多个string,slice字段 • string,slice的内部结构包含指针 • GC并发标记、扫描的平均耗时10s • GC的辅助标记会抢占业务协程 每次QPS掉底都与GC相关 GC较高的耗时对QPS的影响巨大 服务性能上不去,QPS剧烈抖动 代码实施 语言局限性,如何突破? 解决GC扫描耗时的问题 08. 基于cgo,定制 数据全量加载时,缓解数据库压力 链路优化 优化 协议 编码 空值剔除 数据存储、数据传输 带宽减少40% 2GB -> 1.2GB MaxwellConsumer 03. 通过golang接口的方式,实现业务与框架代码分离 DataManager 04. 工程化的通用数据管理器,提供正排、倒排等丰富的查询模式 数据存储 倒排更新过程 冷热数据交换后,DataManager中 部分数据可能交换到远端存储0 码力 | 48 页 | 6.06 MB | 1 年前3
02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力sidecar 注入灵魂 2 • Multi Runtime: 从 sidecar 到机甲 • Runtime API: 解决跨云部署和厂商绑定难题 • WebAssembly in sidecar: 让业务逻辑跑在sidecar里 • Service Mesh 回顾 • 展望2022:待解决的问题 • 总结 3 Service Mesh 回顾 Service Mesh 回顾 4 由开发了 answer/147967674 Service Mesh 的初衷 6 • 升级成本高 • 业务解耦 • 平滑升级 • 异构语言治理 • 异构语言治理能力弱 • SDK 版本不统一 应用 SDK 服务路由 负载均衡 通信序列化协议 sidecar 应用 SDK 通信序列化协议 业务逻辑 服务路由 熔断限流 进程通信 熔断限流 负载均衡 Service Mesh 落地实践 … 消息 缓存 8 事情没有那么 简单 新的挑战 1:应用跟基础设施强绑定 9 MOSN App 业务逻辑 RPC SDK port1 bolt SOFA-RPC 基础设施 RPC 新的挑战 1:应用跟基础设施强绑定 10 MOSN App 业务逻辑 RPC SDK port 1 各种各样的SDK bolt port 2 Cache SDK Redis0 码力 | 63 页 | 880.85 KB | 1 年前3
1.5 Go 语言构建高并发分布式系统实践go语⾔言并发编程实践 以360消息推送系统为例 如何应对的? go语⾔言在基础服务开发领域的优势? 我遭遇了哪些挑战? ⺫⽬目录 具有go特⾊色的运维 在⾼高并发,通信交互复杂,重业务逻辑的分布式系统中, Go语⾔言优势体现在:开发体验好 、⼀一定量级下服务稳定 、性能满⾜足 需要 ⼀一定量级下服务稳定: 50+内部产品,万款开发平台app 运维管理的go语⾔言编写的常驻service服务实例接近3000个。 业务场景多样: ⽀支持聊天场景业务,稳定⽀支持多款聊天业务app 单通道多app复⽤用 上⾏行通道,回调⽀支持 对智能硬件产品,提供定制化消息推送与转发服务 性能满⾜足需要: 线上单机最⾼高160w⻓长连接 (24核 E5-2630 @ 2.30GHz 64G内存 ) qps在2~5w(取决于协议版本,业务逻辑,接⼊入端⺴⽹网络状况) 测试环 测试环境,可以通过300w⻓长连接压测(⺴⽹网络,连接稳定,⽆无带宽限制,实际可以更⾼高 ,决定于⼲⼴广播时候业务内存开销的cpu消耗带来的⼼心跳或者业务延时能否接受) 以360消息推送系统为例 ⾼高并发、通信交互复杂 Dispatcher Service Room Service Proxy Service Register Service Saver Service0 码力 | 39 页 | 5.23 MB | 1 年前3
GoFrame框架介绍及设计个模块版本 • 我们只需要了解一个框架的内容变化,而不是数十个模块的内容变化 • 升级的时候只需要升级一个框架版本,而不是数十个模块版本的升级 • 减轻心智负担,提高模块可维护性,更容易保证各业务项目的模块版本一致性 改进: 模块化设计-常见问题 1. 模块低耦设计:文件层面的源文件下载与模块之间的逻辑耦合没有直接关系 2. 框架核心精简:功能强大且代码精简,包含测试与示例代码共8MB容量 自顶向下设计,保证框架各个组件的设计思想及风格高度 一致,使得开发者能够快速学习和认知框架行为,降低接 入成本、提高维护效率。 统一框架设计-开发规范化 开 发 规 范 化 统一的框架设计,将会使得所有的业务项目按照统一的代码设计进行编码,形 成统一的开发规范。同时,框架的开发工具链也会使得开发规范更容易快速推 广和落地实施。 统一框架设计-组件统一化 Logger A Logger B Logger 减轻开发人员的心智负担,提高模块可维护性,更容易保证各业务项目 的模块版本一致性 统一框架设计-形成技术沉淀 发现问题 分析问题 解决问题 方案沉淀 统一框架 基于统一的开发框架,更容易形成技术沉淀,企业与社区形成良性循环。 统一框架设计-避免资源浪费 当每个团队都在试图自己创造轮子时,不仅 无法形成统一的开发规范,而且会出现非常 多的资源浪费。 让项目组把精力更多的投入到业务中,相信 这是大多数技术公司的共识。使用统一的开0 码力 | 37 页 | 8.84 MB | 1 年前3
2.1.7 谈如何构建易于拆分的单体应用合理,为了微服务⽽微服务) • 监控,告警,CI/CD,服务治理,分布式追踪等基础 设施不完善,维护成本⾼(⾃建—>云原⽣) 02 困境 MVC架构 微服务架构的困境与突破 ➢ 构建合理的业务模型(Monolith or Microservice) 1. 建模⽅法不只有领取驱动设计-DDD,还有⽤例驱动 设计-UDD等; 2. 并不是开始进⾏微服务拆分的时候才⽤到对应的建 模⽅法,在设计单体架构下同样也需要; 尤其是对于创业公司或者⼤公司内部的创业项⽬ or ⼩项 ⽬ ➢ 选择基础设施相对完善的云平台和合适的业务框架 03 突破 建模:通过表象看本质 第⼆部分 建模:通过表象看本质 ➢ 软件开发过程:描述软件开发全过程、软件开发活动以及他们之间关系的结构框架。 。。。 常⻅的软件开发模型 RUP开发模型 业务建模 01 软件开发过程 建模:通过表象看本质 ➢ 建模:对现实世界特征的模拟和抽象,⽐如机械模型,汽⻋模型等。 运⽤到互联⽹ 的业务中; 忘掉⼀些晦涩难懂的概念和复杂的步骤,从⽣活的视⻆出发,来思考我们的业务模型 DDD并⾮唯⼀ 的建模⽅法! 从建模到放弃! 建模:通过表象看本质 04 回到⽣活的原点 建模 映射 建模:通过表象看本质 05 案例分析:⼀个简易的直播平台 如何找到:⼈,事,物,规则? 建模:通过表象看本质 06 业务⽤例—⼈+事 ➢ 业务⽤例:A Business0 码力 | 27 页 | 13.04 MB | 1 年前3
大规模高性能区块链架构设计模式与测试框架-李世敬区块链是由分布式数据存储、点对点传输、共识机制、加密算法等计算机技术构成的多中心 化系统 不可篡改(可信存证) ü 可对存储的文件、数据进行真实性校验 ü 可信追溯历史数据 去中心化共识(协作共享) ü 多方业务系统数据共享 ü 跨机构业务协作 核心特性 7 趣链科技 版权所有 ©2016-2021 7 趣链科技 版权所有 ©2016-2021 7 趣链科技 版权所有 ©2016-2021 7 区块链技术定义 Code 物联⽹ 能源电⼒ 跨境贸易 ⼯业物联⽹ 智慧城市 ... 不同于完全开放、任何⼈可以加⼊退出的⾮许可链,许可链架构与其差异性在于节点和⽤户在区块链⽹络中的准 ⼊要求。且⾮许可链⽹络节点⼤都由业务相关的机构组成,造成架构上共识、合约、安全、权限等⽅⾯的不同 13 趣链科技 版权所有 ©2016-2021 13 趣链科技 版权所有 ©2016-2021 13 趣链科技 版权所有 ©2016-2021 ⼊要求。且⾮许可链⽹络节点⼤都由业务相关的机构组成,造成架构上共识、合约、安全、权限等⽅⾯的不同 �可�架构 大规模高性能区块链架构设计介绍 15 趣链科技 版权所有 ©2016-2021 ⼤�模⾼性能区��架构⾯�的�� 大规模高性能 区块链架构设计 网络连通问题 数据孤岛问题 异构部署问题 性能扩展问题 之困局 ? n 机构间数据难打通,不愿打通 n 公网内网、网关网闸情况复杂 n 业务组织形式不同,异构链/系统难适配0 码力 | 39 页 | 56.58 MB | 1 年前3
如何用GO支撑海外电商的快速发展-吕梦楼小米科技(武汉)有限公司 海外电商基础服务负责人 目 录 业务背景 01 架构演变 02 场景落地 03 总结 04 Q&A 05 业务背景 第一部分 业务背景 01. 海外电商业务 1 ShareSave 11 Mi.com B2C 23 Community 10 POCO B2C 26 Mi.com B2B 业务背景 11 个B2C站点 26 个B2B站点 下载量 3000W+ 服务全球 4亿 用户 02. 国际小米网 业务背景 23 个国家和地区 服务全球 5000W+ 用户 小米手机用户交流平台 03. 国际小米社区 业务背景 10 个B2C站点 今年新增 6 个站点 全新国际POCO站 04. 国际POCO站 业务背景 05. 面临挑战 架构演变 第二部分 架构演变 01. 海外电商架构 电商 大型促销活动 流量瞬时爆发 场景落地 02. 秒杀 技术栈选型:GO + Ker Redis 场景落地 02. 秒杀 三次限流 原子计数限流:每秒只通过部分请求进行限流 队列限流:业务系统请求入队列的限流 每秒放号限流:放号系统每秒的放号限流 场景落地 02. 秒杀 原子计数限流,数据入Channel 请求入队列限流 每秒放号限流 场景落地 02. 秒杀 uid0 码力 | 33 页 | 3.80 MB | 1 年前3
1.2 基于 Golang 构建高可扩展的云原生 PaaS 平台敏捷的⽬标是提升研发效能 需要⼀个 DevOps 平台来⽀撑敏捷开发的落地 这⾥需要有⼀个标准的交付平台 运⾏环境 业务 数据 业务系统 C 业务 数据 业务系统 A 业务 数据 业务系统 B 资源管理在统⼀平台 应⽤运⾏在统⼀平台 构建标准的交付环境 交付产物标准化 - 业务配置 - 资源配置 - 依赖配置 - 流⽔线配置 配置即代码 : 实现⼤规模交付的部署过程可被验证 PaaS 微服务治理组件 可靠的业务 贴身护航 基础⽀撑 持续保障系统稳定性 只需很少的运维投⼊即可保证系统稳定性 端点⼀站式 PaaS - Erda 第⼆部分 端点 PaaS 发展历程 有状态服务 Job / JobFlow 批计算 流计算 ⽆状态服务 DaemonSet Workloads 多集群调度 混合云调度 跨云迁移 多环境调度 业务数据统⼀调度 集群核⼼服务0 码力 | 40 页 | 8.60 MB | 1 年前3
IPC性能极致优化方案-RPAL落地实践研发工程师 目 录 方案诞生的背景 01 全进程地址空间共享与保护 02 用户态进程切换 03 高效的Go Event Poller 04 RPC框架Kitex集成 05 性能收益与业务展望 06 方案诞生的背景 第一部分 方案诞生的背景 几种常见的同机通信场景: 1. 微服务合并部署(亲和性部署、sidecar 部署) 2. 本地基础组件:mesh sidecar、风控 加速深拷贝(IDL 定 义可以不一致) 性能收益与业务展望 第六部分 性能收益与业务展望 1 kb 请求/响应下,以不同 QPS 在 Kitex 框架进行 benchmark 测试,对比 uds 和 rpal 的性能差异: 注:以上仅测试包含序列化开销的性能对比,benchmark测试受影响因素较多,实际收益需结合业务场景。 性能压测 性能收益与业务展望 1. 字节跳动微服务合并部署场景下,部分服务通过接入 Mesh 提供的治理功能进行同步 RPAL Call,对比同进程 Function Call 仅增加 200 ns 延迟。 业务真实数据 性能收益与业务展望 业务展望 1. 定制化场景深度优化: 同步 RPAL Call; 请求/响应 Zero Copy; 2. 业务进程与服务网格 IPC 性能优化: 结合用户态协议栈,实现网络 IO 绕过内核 CloudWeGo 是一套由字节跳动基础架构服务框架团队开源的、0 码力 | 39 页 | 2.98 MB | 1 年前3
共 48 条
- 1
- 2
- 3
- 4
- 5













