1.1 Go语言游戏项目应用情况汇报Go语⾔言游戏项⺫⽬目应⽤用情况汇报 厦⻔门真有趣信息科技有限公司 达达 项⺫⽬目介绍 • 2012年 - 2015年,仙侠道⺴⽹网⻚页版,使⽤用Go语⾔言替代神仙 道时期的Erlang,开发流程和主要架构不变 • 2014年 - 2015年,仙侠道⼿手机版,在原有架构基础上拆分 游戏逻辑服务器,分离互动功能 游戏服务端的挑战 • 请求频繁 • 实时性要求⾼高(百毫秒的延迟便可被感知) 开发效率要求⾼高(每周⼀一更) • 运维效率要求⾼高(最好是别运维。。。) 我们做了哪些事情 • 通讯层:协议描述语⾔言以及代码⾃自动⽣生成 • 业务层:顺序结构以及接⼝口注册 • 数据层:映射MySQL的内存数据库以及代码⾃自动⽣生成 通讯层 • 通讯协议描述⽂文档的格式选择 • XML、JSON • Protobuf • ⾃自定义语法 • 可视化编辑 通讯协议描述⽂文档⽚片段 尽可能提⾼高响应速度 • 数据离CPU越近越好 • 避免数据复制和⼤大集合遍历 • 通过注册接⼝口防⽌止循环引⽤用 业务模块公共接⼝口声明 业务模块接⼝口实现 业务模块接⼝口调⽤用 数据层 • 玩家数据库切⽚片,减⼩小查询时的集合 • ⽀支持内存事务 • 以事务为单位同步到数据库 • ⽀支持Redo、Undo以及数据挖掘的同步⽇日志 • GC优化 内存数据库代码⽚片段 内存数据库事务(⽰示意)0 码力 | 21 页 | 1.63 MB | 1 年前3
Golang 微服务在腾讯游戏用户运营领域的探索及实践Golang微服务 在腾讯游戏用户运营领域的探索及实践 刘家雄 2017/4/18 Web Architecture 关于我 刘家雄<@楚吟风> 提纲 腾讯游戏用户运营介绍 服务化架构演进 DSL加速敏捷 基准数据 总结及展望 腾讯游戏用户运营 关于腾讯游戏用户运营 Intervene 干预 Measure 评估 User 用户 核心 用户 特权 服务 中间件技术选型 团队背景 内部生态 业务发展 开发成本 运营成本 Golang CSP并发 多核友好 自动GC 语法简洁 开源库多 CGO集 成 快速交付 内核稳定 生态趋势 数据中间件——指标服务 Golang 高性能 高可用 扩展性 安全性 可运营性 业务发展驱动技术演进 服务网关 过载保护 流控降级 SET部署 立体监控 敏捷集成 微服务探索 正职开发核心服务,流程编 排外包 开发外包 • 运营填写表单,活动一键上 线 运营自助 • 策略嵌套、一键复制 流程复用 • 自动Mock、分支覆盖 自动测试 • 流程固化,沉淀运营模型 模型沉淀 基准数据 基准数据 总结及展望 总结及展望 服务网关 快速集成 服务编排 流程沉淀 执行单元 并发并行 技术驱动 业务优化 微服务 敏捷迭代0 码力 | 34 页 | 1.22 MB | 1 年前3
2.游戏战中陪伴助手微服务架构设计与应用游戏战中陪伴助手微服务架构设计与应用 张敏 - AndruZhang 腾讯 - 高级后台工程师 目 录 功能介绍 01 早期探索 02 方案设计和工程实现 03 性能和成本优化 04 DevOps 建设 05 总结 & QA 06 功能介绍 第一部分 战中陪伴助手介绍——和平精英最佳第五人 战中陪伴助手介绍——和平精英最佳第五人 • 游戏战斗中指导 / 建议 • 敌人在附近 装备不好 => 建议苟住 别再打架啦,我们装 备不佳,先去躲躲吧 战中陪伴助手介绍——和平精英最佳第五人 • 游戏战斗中指导 / 建议 • 闲聊、鼓励、攻略 • 取得战绩,赞赏一波 毫不留情! 三杀收下! 早期探索 第二部分 需求思考 • 我们的输入是什么? • 游戏对局事件 • Snapshot • Diffs • 玩家位置 • 安全区 • 航线 • …… • 掉血10点 专利:《一种在游戏中离线挖掘、实时推荐资源点的方案》 - 大数据挖掘资源出现位置 - 左:配置文件 - 右:大数据挖掘 - 不足: - 太 bug 了,限制使用 方案探索——聚类统计 模仿大多数玩家的选择 - 实现方法: - 为玩家生成 [0, 1] 特征向量 - 聚类统计,存入 Faiss - 实时 Faiss 匹配召回 - 问题: - 特征过多(600多维),无法分析 - 聚类结果趋同0 码力 | 47 页 | 11.10 MB | 1 年前3
基于Go的大数据平台-党合萱基于Go的⼤大数据平台 七⽜牛云—党合萱 什什么是Pandora 简单 · 可信赖 Pandora架构图 Export Service API / Portal / 消息 消息 计算 计算 消息 导出任务 导出任务 导出任务 导出任务 导出任务 计算 消息 对象存储服务 HTTP MongoDB 时序数据库 ⽇日志检索服务 XSpark Report Studio 简单 · 可信赖 内容提要 • 系统设计分析与架构 • 多种上下游适配 • ⾼高吞吐/低延迟问题探究 • ⾼高可⽤用与⽔水平扩展 • ⾃自动化运维 • Go的应⽤用 简单 · 可信赖 系统设计分析与架构 构建系统的挑战 export service系统全貌 简单 · 可信赖 数据预取 • export server在向下游推数据的时候预先从上游拉数据回来,保证⽹网络最⼤大的利利⽤用率,同时也减⼩小了了等待时间,提升导出效率。 • 预取时如果⽆无数据可取,则休眠1s再取数据,既然没有数据则休眠时间加倍……⼀一直到32s为⽌止,过程中如果取到数据,则休眠时间重置为 1s,有效减少对底层存储的请求数量量。 简单 · 可信赖 数据推送协议优化 • 优化export0 码力 | 34 页 | 1.26 MB | 1 年前3
Go在数据库中间件的应用Go在数据库中间件的应用 基础架构组/刘延允 liuyun827@foxmail.com 2017年9月 1 关于我 • 刘延允——酷狗音乐,基础架构组 • 数据库变更通知服务 • 酷狗消息队列 • 酷狗数据库中间件 • 主要工作:分布式存储、高可用、数据库 • 两年通信设备开发经验,四年互联网 • 五年C/C++使用经验,一年Golang 2 CONTENTS • 程序开发的需求 • 强大的标准库、丰富的第三方库、go test、pprof • 自动内存管理;内存泄漏与野指针是C/C++语言开发者的噩梦 • Go routine + channel;简单的并发与简易的数据同步 5 系统整体方案 mysql-group proxy proxy mysqld(M) mysqld(S) mysqld(S) mysql-group mysql-group mysql-group 主备自动切换(主-主模式)。 • 分表设计——按照Hash分表 • 分表设计——按照范围分表(年、月、日、整形) • 数据库表在多个mysql实例间平滑扩容 • 大表拆分为多个子表情况下的平滑扩容 7 系统整体方案 • 现存问题 • 数据库访问基本采用直连方式 • 无法满足数据访问平台化要求 • 配置管理方式落后,运维压力大 • 为什么采用Go来实现 • go诸多优点,可用性高 •0 码力 | 17 页 | 4.02 MB | 1 年前3
如何消除程序中的数据竞争-周光远如何消除程序中的数据竞争 周光远 华为 从一些问题说起 1 2 3 什么是数据竞争 Go语言中的数据竞争(data race): data race occurs when two goroutines access the same variable concurrently and at least one of the accesses is a write. 数据竞争(data 且至少其中一次访问是写操作。 data Thread1 Thread2 data goroutine1 goroutine2 从微观看数据竞争 时间上:多个并发的读写操作被观察到的顺序无法预知。 空间上:并发读写时观察到非预期的数据。 a:1 b:2 a:2 b:1 a:1 b:2 a:2 b:1 a:1 b:1 a:2 b:2 Thread 1 Thread 2 接收完成(同一个数据); • 对于无缓冲channel:开始接收 → 发送完成(同一个数据); 开始发送 接收完成 其他的对于init函数,锁,协程,原子操作,sync包里的功能,还有许多保证,更详细可以看: https://golang.org/ref/mem https://go101.org/article/memory-model.html 消除数据竞争的原理 消除数据竞争,实质就0 码力 | 30 页 | 1.92 MB | 1 年前3
4.GPT 与数据库的生态整合GPT 与数据库的生态整合 王琦智 PingCAP TiDB 开发者生态高级工程师 目 录 自然语言到 SQL 01 自然语言到图表 02 GPTs 调用数据库 API 03 总结 04 自然语言到SQL OSS Insight 自然语言到图表 Thoughts to insights made easy(with AI) GPTs 调用数据库 API Thank You0 码力 | 21 页 | 3.33 MB | 1 年前3
1.每秒百万数据点 Go 应用监控系统演进每秒百万数据点 Go 应用监控系统演进 张平 AfterShip 高级 SRE 关于 AfterShip 拥抱云原生和开源系统 目 录 监控架构概览 01 如何监控 Go 应用? 02 Metrics 系统架构演进 03 Why VictoriaMetrics so good? 04 总结与展望 05 监控架构概览 第一部分 监控系统架构概览 -- 数据源 监控系统架构概览 2K+ 40K 1Mil+ 2020 年指标数据 业务指标数量 每秒写入数据点 Active Time Series 2018-2020 年架构 2020 年底面临的问题 ● 无法查询超过 30 天的数据 ● 查询慢,平均时间超过 2 分钟 ● 跨集群指标无法聚合 ● Prometheus 集群经常崩溃 ● 维护时 Prometheus 会丢数据 ● 成本高,需要大容量 SSD 磁盘 S3 2022 年中指标数据 14K+ 0.6Mil 30Mil+ 业务指标数量 每秒写入数据点 Active Time Series Thanos 架构优化 Querier Query-Frontend Store Gateway S3 Store Gateway Store Gateway Redis 2022 年底面临的问题 ● 超 100+ 倍数据点增长导致查询缓慢 ●0 码力 | 42 页 | 2.32 MB | 1 年前3
Go 构建大型开源分布式数据库技术内幕Go 搭建大型开源分布式数据库技术内幕 shenli@PingCAP 关于我 ● 申砾 (Shen Li) ● TiDB 技术负责人 ● 网易有道 / 360搜索 / PingCAP ● Infrastructure software engineer 为什么需要一个新的数据库? 从单机数据库到 NewSQL ● 关系型数据库 ● NoSQL ● 中间件 ● NewSQL Processing) ● 24/7 availability, even in case of datacenter outages ● Open source, of course 如何构建分布式数据库? 原则 ● 分层 ● Make it right and make it fast. ● 测试很重要 ● 简单易用 ● 和社区结合 架构 TiKV TiKV TiKV TiKV Metadata / Timestamp request Stateless SQL Layer Distributed Storage Layer gRPC gRPC gRPC 数据分片 ● Hash Based Partition ○ Redis ○ 不利于范围 Scan ● Range Based Partition ○ Hbase ○ Range 需要足够大且足够小0 码力 | 44 页 | 649.68 KB | 1 年前3
Hello 算法 1.0.0b1 Golang版。在此期间,我也回复 了许多读者的评论问题,遇到最多的问题是“如何入门学习算法”。我渐渐也对这个问题好奇了起来。 两眼一抹黑地刷题应该是最受欢迎的方式,简单粗暴且有效。然而,刷题就如同玩“扫雷”游戏,自学能力强 的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在受挫中步步退缩。通读教 材书籍也是常用方法,但对于面向求职的同学来说,毕业季、投递简历、应付笔面试已经占用大部分精力,厚 重的书本也因此成为巨大的挑战。 如果你也有上述烦恼,那么很幸运这本书找到了你。本书是我对于该问题给出的答案,虽然不一定正确,但至 少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地 图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以 更加得心应手地刷题与阅读文献,逐步搭建起完整的知识体系。 书内的代码配有可一键运行的源文件,托管在 justin‑tse, krahets, nuomi1, Reanon, sjinzh 完成,感谢他们的辛勤付出! 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读。” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 i 目 录 0. 写在前面0 码力 | 190 页 | 14.71 MB | 1 年前3
共 85 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9













