2.游戏战中陪伴助手微服务架构设计与应用游戏战中陪伴助手微服务架构设计与应用 张敏 - AndruZhang 腾讯 - 高级后台工程师 目 录 功能介绍 01 早期探索 02 方案设计和工程实现 03 性能和成本优化 04 DevOps 建设 05 总结 & QA 06 功能介绍 第一部分 战中陪伴助手介绍——和平精英最佳第五人 战中陪伴助手介绍——和平精英最佳第五人 • 游戏战斗中指导 / 建议 • 敌人在附近 设计新运营策略的难度 - 开发迭代: 如需开发介入,那么功能迭代的速度 - 可解释性: 理由是否能否说服玩家遵从建议 - 对用户价值: 提升玩家体验 / 吃鸡率的帮助有多大 推荐系统接入——系统架构 推荐系统: 向量化 方案探索——资源点推荐 针对具体场景开发 - 专利:《一种在游戏中离线挖掘、实时推荐资源点的方案》 - 大数据挖掘资源出现位置 - 左:配置文件 - 右:大数据挖掘 报方案 》 运营迭代 更合理的开发迭代流程 - 项目各角色成员密切配合,深度参与 - Token / 策略的设计开发可并行 - 运营可闭环策略设计,开发无需介入 方案详述——完整架构 先对整个架构有一个大概的认识 - 消息队列消费:解耦 MQ - Token 清洗:事件翻译和 token 计算 - 推荐系统:策略召回和推荐 - 数据分析:离线策略挖掘和模型训练 - 管理平台:开发、运营、运维辅助0 码力 | 47 页 | 11.10 MB | 1 年前3
大规模高性能区块链架构设计模式与测试框架-李世敬大规模高性能区块链架构 设计模式与测试框架 Gopher Meetup 深圳站 2021 年 8 ⽉ 21 号 趣�科技 李世敬 目录 区块链概述 01 大规模高性能区块链架构设计介绍 02 基于Go插件的区块链性能测试工具 03 写在最后 04 区块链概述 4 趣链科技 版权所有 ©2016-2021 4 趣链科技 版权所有 ©2016-2021 4 趣链科技 版权所有 ©2016-2021 『非许可链』公有链 私有链『许可链』 联盟链『许可链』 区块链发展的主力军 不同的组织形态分别对应不同的“区块链产品架构” 11 趣链科技 版权所有 ©2016-2021 11 趣链科技 版权所有 ©2016-2021 11 趣链科技 版权所有 ©2016-2021 11 公有�架构(⾮�可�架构) 应⽤层 数据层 块链式结构 账户模型 时间戳 ⽹络层 共识层 激励层 发⾏机制 分配机制 PoW 公路、越野等具体场景 公有链基础架构⾃下⽽上分为六层:数据层、⽹络层、共识层、激励层、合约层与应⽤层。如果将区块链⽐作⼀ 辆汽车,那么各层分别对应汽车的各个组成部分(下图所⽰),各层之间协同合作,形成多中⼼化可信系统 12 趣链科技 版权所有 ©2016-2021 12 趣链科技 版权所有 ©2016-2021 12 趣链科技 版权所有 ©2016-2021 12 �盟�(�可�架构) 基 础 层 数据层0 码力 | 39 页 | 56.58 MB | 1 年前3
1.6 resource scheduling & container technology for financial service_yujunResource Scheduling & Container Technology for Financial Service 动态资源管理和容器技术 在金融行业的架构探索和明天 余军 Gopher China 2015 Gopher China 2015 关于我 n ~19y+ Linux & Gopher China 2015 话题 n 金融行业 IT 基础架构的现状、特点、挑战 n 求解之路的探索 n 雏形和明天 Gopher China 2015 金融行业IT基础架构的现状、特点、挑战 RISC Server RISC Server RISC 金融行业IT基础架构的现状、特点、挑战 Dev/Test Staging Production Gopher China 2015 金融行业IT基础架构的现状、特点、挑战 n “RISC to IA” 来了 n “Unix to Linux” 来了 n “开源架构”来了 n0 码力 | 21 页 | 27.20 MB | 1 年前3
02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力稳定性有待验证 • 稳定性更难保证 MOSN POD container App container container Dapr MOSN 23 Layotto Layotto 架构 24 Layotto MOSN Runtime API Actuator API P a a S gRPC HTTP 业务逻辑 gRPC Client App gRPC Server 32 另一种视角 看待Runtime API 另一种视角看待 Runtime API 33 抽象的看: OS=治理软件 + 抽象硬件 (把不同硬件抽象成一样的 API,让编程更简单) 数据中心 OS OS K8S = 治理软件(容器) Runtime API = 抽象基础设施 Runtime API + K8S = 可能是下一代分布式 OS 另一种视角看待 Runtime API sidecar:让业务逻辑跑在 sidecar 里 • Service Mesh : 通信中间件下沉,sidecar 实现组织架构上 的解耦 • Multi Runtime: 所有中间件下沉: 业务逻辑和基础设施分离 多语言治理 同一套代码移植到不同组件 59 Service Mesh 落地之后, 架构演进的思路是? 60 为 sidecar 注入 灵魂 61 终 社区广告: 来了就是朋友 620 码力 | 63 页 | 880.85 KB | 1 年前3
2.2.2 深入理解BFE深入理解BFE 章淼 百度智能云 架构师 什么是BFE? • 百度统一的七层流量转发平台 • HTTP, HTTPS, HTTP/2, QUIC • 2012年开始建设 • 每日转发请求约1万亿,日峰值超过1KW QPS • 2019年,核心转发引擎对外开源 • BFE => Beyond Front End • https://github.com/bfenetworks/bfe 接入和转发,流量调度,安全防攻击,数据分析 BFE部署前 BFE部署后 L4LB 业务A 集群 业务B 集群 业务C 集群 BFE 业务A 集群 业务B 集群 业务C 集群 L4LB BFE平台架构 负载均衡器 vs 名字服务 基于负载均衡器 基于名字服务 方案对比 方案 对流量的控制力 资源消耗 对客户端的要求 适用场景 基于负载均 衡器 强。可以达到单个连 接 / 请求的粒度。 req_cookie_value_prefix_in("deviceid", "x", false) Demo-D1 req_host_in(“www.c.com”) Demo-D 内网流量调度 • 使用场景 • 多数据中心 / 多容器云集群 • 内部服务故障 • 内部服务压力不均 健康检查 • 主动健康检查 • 负载均衡系统持续向RS发送探测请求 • 问题:在响应速度和发送压力间存在权衡 • 在分布式场景下问题更加明显0 码力 | 26 页 | 1.78 MB | 1 年前3
2.1.1 Golang主动式内存缓存的优化探索之路MemoryTile反序列化性能提升近10倍 基于MemoryTile的映射,特殊场景反序列化性能提升近600倍 主动式内存缓存框架 第三部分 技术全景图 01. 主动式内存缓存架构的技术全景图 数据中心、数据源 02. 分布式部署,解决海量数据的传输、加载 数据全量加载时,缓解数据库压力 链路优化 优化 协议 编码 空值剔除 数据存储、数据传输 带宽减少40% 2GB0 码力 | 48 页 | 6.06 MB | 1 年前3
2.1.3 如何用Go模拟CPU如何用Go模拟CPU 蒙卓 华为 – 2012实验室 工程师 成为盘古? 让这个世界里面的人(程序)无法察觉 这个世界是创造出来的 目录 • 计算机的演化历史 – 硬件计算到冯诺伊曼架构 • 构建虚拟世界 – MOS 6502 • 控制单元(control unit) • 运算逻辑单元(arithmetic logic unit) • 6502汇编器与链接器 • 未来目标 1970年程序员 • 因为改纸带比较麻烦 • 冯诺伊曼架构 • 又称存储程序型计算机 • 可在运行时改变指令 • 指令控制指令和数据 计算机的演化历史 • 因为改纸带比较麻烦 • 冯诺伊曼架构 • 又称存储程序型计算机 • 可在运行时改变指令 • 指令控制指令和数据 • 用啥实现他老人家可没说 本人摄于MIT CSAI Lab 计算机的演化历史 • 冯诺伊曼架构 草稿纸 在计算 的你 算盘 计算机的演化历史 为啥现在程序员好像更弱了? • 因为我们处在最好也是最坏的时代 • 抽象多且环环嵌套 • 硬件过于复杂 • 软件基于操作系统等复杂概念 • 真的快且便宜 Go模拟CPU • 如何用Go实现冯诺伊曼架构CPU? • 简单:一个循环+一个大数组 读取当前指令 执行指令 下一条指令 模拟目标 – MOS 6502 • 诞生于1975年 • MOS 6502应用范围广 • 资料多且易获得 • 简单、容易实现的现代CPU0 码力 | 42 页 | 7.10 MB | 1 年前3
IPC性能极致优化方案-RPAL落地实践RPAL(Run Process As Library) 方案,基于跨进程虚拟地址 共享,复用 epoll 网络模型,实现了纯用户态的事件轮询和无拷贝的指针读写接口。 从性能瓶颈的两点分析: 1. 异步线程唤醒: 关键在于如何最低限度降低线程唤醒的开销,非必要不通知事件。 2. 数据序列化/反序列化 需要做到跨进程的虚拟地址空间共享,通过传递指针来传递一切数据。 全进程地址空间共享与保护 第二部分 全进程地址空间共享与保护 模拟插件/动态链接库等方案的用户态上下文切换和虚拟地址访问,需要解决: 1. 虚拟地址冲突问题; 2. 页表隔离问题; 3. 内存安全性问题; 全进程地址空间共享与保护 地址空间气泡方案 全进程地址空间共享与保护 1. Intel x86 中,每个 leaf page table 的页表项的第59-62位称为 Protection Key,这 请求/响应 Zero Copy; 2. 业务进程与服务网格 IPC 性能优化: 结合用户态协议栈,实现网络 IO 绕过内核 CloudWeGo 是一套由字节跳动基础架构服务框架团队开源的、 可快速构建企业级云原生微服务架构 的中间件集合。 CloudWeGo 项目共同的特点是高性能、高扩展性、高可靠,专 注于微服务通信与治理。 CloudWeGo 包括 Kitex、Hertz、Volo、0 码力 | 39 页 | 2.98 MB | 1 年前3
Go 入门指南(The way to Go)Stroustrup 做了让 C++ 兼容 C 语言以能够让其编译 C 程序这个正确的决定。我们当时需要 C++ 的出 现。” “之后我们学到了更多。我们毫无疑问地接受了垃圾回收,异常处理和虚拟机这些当年人们认为只有疯子 才会想的东西。C++ 的复杂程度(新版的 C++ 甚至更加复杂)极大了影响了软件开发的高效性,这使得 它再也不再适合这个时代。人们不再像过往那样认同在 C++ 中兼容使用 20% 兼 职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的 IT 工程师:Robert Griesemer,参与开发 Java HotSpot 虚拟机;Rob Pike,Go 语言项目总负责人,贝 尔实验室 Unix 团队成员,参与的项目包括 Plan 9,Inferno 操作系统和 Limbo 编程语言;Ken Thompson,贝尔实验室 由于内存问题(通常称为内存泄漏)长期以来一直伴随着 C++ 的开发者们,Go 语言的设计者们认为内存 管理不应该是开发人员所需要考虑的问题。因此尽管 Go 语言像其它静态语言一样执行本地代码,但它依 旧运行在某种意义上的虚拟机,以此来实现高效快速的垃圾回收(使用了一个简单的标记-清除算法)。 尽管垃圾回收并不容易实现,但考虑这将是未来并发应用程序发展的一个重要组成部分,Go 语言的设计 者们还是完成了这项艰难的任务。0 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)录 致谢 阅前必读 内容介绍 前言 第1章:Go 语言的起源,发展与普及 1.1 起源与发展 1.2 语言的主要特性与发展的环境和影响因素 第2章:安装与运行环境 2.1 平台与架构 2.2 Go 环境变量 2.3 在 Linux 上安装 Go 2.4 在 Mac OS X 上安装 Go 2.5 在 Windows 上安装 Go 2.6 安装目录清单 2.7 Go 运行时(runtime) 幸 Stroustrup 做了让 C++ 兼容 C 语言以能够让其编译 C 程序这 个正确的决定。我们当时需要 C++ 的出现。” “之后我们学到了更多。我们毫无疑问地接受了垃圾回收,异常处理和虚拟机这些当年人们认为只有疯子才会想的东 西。C++ 的复杂程度(新版的 C++ 甚至更加复杂)极大的影响了软件开发的高效性,这使得它再也不再适合这个时 代。人们不再像过往那样认同在 C++ 中兼容使用 20% 兼职项 目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的 IT 工程师: Robert Griesemer,参与开发 Java HotSpot 虚拟机;Rob Pike,Go 语言项目总负责人,贝尔实验室 Unix 团队成员,参与的项目包括 Plan 9,Inferno 操作系统和 Limbo 编程语言;Ken Thompson,贝尔实验室0 码力 | 466 页 | 4.44 MB | 1 年前3
共 60 条
- 1
- 2
- 3
- 4
- 5
- 6













