Golang 微服务在腾讯游戏用户运营领域的探索及实践Golang微服务 在腾讯游戏用户运营领域的探索及实践 刘家雄 2017/4/18 Web Architecture 关于我 刘家雄<@楚吟风> 提纲 腾讯游戏用户运营介绍 服务化架构演进 DSL加速敏捷 基准数据 总结及展望 腾讯游戏用户运营 关于腾讯游戏用户运营 Intervene 干预 Measure 评估 User 用户 核心 用户 特权 服务 忠诚度 One Service, Write Once Run Anywhere 微服务划分 Intervene 干预 Measure 评估 User 用户 • 离线标签类画像, 批量选取用户群 特征 • 离线及实时用户指 标,单用户业务个 性化属性数值 指标 • 短信、Tips、邮 件、站内信通知 触达 • 礼包发放、积分 赠送、体验资格 营销 • 服务编排、运营策略 策略0 码力 | 34 页 | 1.22 MB | 1 年前3
Go Web编程controller设计 13.4 日志和配置设计 13.5 实现博客的增删改 13.6 小结 14.扩展Web框架 14.1 静态文件支持 14.2 Session支持 14.3 表单支持 14.4 用户认证 14.5 多语言支持 14.6 pprof支持 14.7 小结 附录A 参考资料 5 1 GO环境配置 1 GO环境配置 欢迎来到Go的世界,让我们开始探索吧! Go是一种新的 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。 Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感 觉起来比典型的面向对象语言更轻量级。 Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。 按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。 Go的三种安装方式 Go的三种安装方式 Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式: Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源 码安装是最方便而熟悉的。 Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合初学者,可根据自 己的系统位数下载好相应的安装包,一路next就可以轻松安装了。0 码力 | 295 页 | 5.91 MB | 1 年前3
Go 入门指南(The way to Go)的并发语言)有更低的门槛,真可谓是 21 世纪的 C 语言! 作为一门系统编程语言,你不应该为 Go 语言的大多数代码示例和练习都和控制台有着密不可分的关系而 感到惊奇,因为提供平台依赖性的 GUI(用户界面)框架并不是一个简单的任务。有许多由第三方发起的 GUI 框架项目正在如火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI 框架。不过 现阶段的 Go 语言已经提供了大量有关 Go 开发环境之间随意切换以及交叉编译的功能。 同时,它具备了抽象语法树视图的功能,可以清楚地纵览项目中的常量、变量、函数、不同类型以及他们 的属性和方法。 图 3.1 LiteIDE 代码编辑界面和抽象语法树视图 3.2.2 GoClipse 该款插件的当前最新版本号为 0.9.1,你可以从 GitHub 页面获取详情。 其依附于著名的 Eclipse 这个大型开发环境,虽然需要安装 JVM 本身所具有的诸多功能。这是一个非常好的编辑器,完善的代码补全、抽象语法树视图、项目管理 Go入门指南 - 22 - 本文档使用 看云 构建 和程序调试功能。 图 3.2 GoClipse 代码编辑界面、抽象语法树视图和项目管理 3.3 调试器 应用程序的开发过程中调试是必不可少的一个环节,因此有一个好的调试器是非常重要的,可惜的是,Go 在这方面的发展还不是很完善。目前可用的调试器是 gdb,最新版均以内置在集成开发环境0 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)11.10 反射包 11.11 Printf 和反射 11.12 接口与动态类型 11.13 总结:Go 中的面向对象 11.14 结构体、集合和高阶函数 第12章:读写数据 12.1 读取用户的输入 12.2 文件读写 12.3 文件拷贝 12.4 从命令行读取参数 12.5 用 buffer 读取文件 - 4 - 本文档使用 书栈(BookStack.CN) 构建 12.6 的并发语言)有更低的门槛,真可谓是 21 世纪的 C 语言! 作为一门系统编程语言,你不应该为 Go 语言的大多数代码示例和练习都和控制台有着密不可分的关系而感到惊奇, 因为提供平台依赖性的 GUI(用户界面)框架并不是一个简单的任务。有许多由第三方发起的 GUI 框架项目正在如 火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI 框架。不过现阶段的 Go 语言已经提供了 大量有关 3.2 编辑器和集成开发环境 3.2.1 LiteIDE 3.2 编辑器和集成开发环境 - 39 - 本文档使用 书栈(BookStack.CN) 构建 图 3.1 LiteIDE 代码编辑界面和抽象语法树视图 该款插件的当前最新版本号为 0.9.1,你可以从 GitHub 页面获取详情。 其依附于著名的 Eclipse 这个大型开发环境,虽然需要安装 JVM 运行环境,但却可以很容易地享有0 码力 | 466 页 | 4.44 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a第49章:Go中的一些语法/语义例外 第50章:Go细节101 第51章:Go问答101 第52章:Go技巧101 第53章:更多关于Go的知识 本书由老貘 ? 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是 本书和Go101.org网站不断增容和维护的动力。 赞赏 (请搜索关注微信公众号“Go 101”或者访问github.com/golang101/golang101 ? 解使用自定义泛型。 另外,在阐述值类型转换、值赋值和值比较规则时,自定义泛型中频繁使用的 类型参数类型被特意忽略掉了。 也就是说,本书不考虑自定义泛型中的情 形。 本书由老貘 ? 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是 本书和Go101.org网站不断增容和维护的动力。 赞赏 (请搜索关注微信公众号“Go 101”或者访问github.com/golang101/golang101 ? Donizetti、 Emmanuel T Odeke、 Filippo Valsorda、 Dominik Honnef、 和 Rob 'Commander' Pike 等。 感谢直接参与本书写作和改进的Go社区成员,包括: Amir Khazaie、 Ziqi Zhao、 Artur Kirillov、 Arinto Murdopo、 Andreas Pannewitz、 Jason-Huang、0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a第49章:Go中的一些语法/语义例外 第50章:Go细节101 第51章:Go问答101 第52章:Go技巧101 第53章:更多关于Go的知识 本书由老貘 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本 书和Go101.org网站不断增容和维护的动力。 (请搜索关注微信公众号“Go 101”或者访问github.com/golang101/golang101 获 取本书最新版) 使用自定义泛型。 另外,在阐述值类型转换、值赋值和值比较规则时,自定义泛型中频繁使用的 类型参数类型被特意忽略掉了。 也就是说,本书不考虑自定义泛型中的情形。 本书由老貘 历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本 书和Go101.org网站不断增容和维护的动力。 (请搜索关注微信公众号“Go 101”或者访问github.com/golang101/golang101 获 取本书最新版) Donizetti、 Emmanuel T Odeke、 Filippo Valsorda、 Dominik Honnef、 和 Rob 'Commander' Pike 等。 感谢直接参与本书写作和改进的Go社区成员,包括: Amir Khazaie、 Ziqi Zhao、 Artur Kirillov、 Arinto Murdopo、 Andreas Pannewitz、 Jason-Huang、0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a第49章:Go中的一些语法/语义例外 第50章:Go细节101 第51章:Go问答101 第52章:Go技巧101 第53章:更多关于Go的知识 本书由老貘历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本书和 Go101.org网站不断增容和维护的动力。 赞赏 (请搜索关注微信公众号“Go 101”或者访问github.com/golang101/golang101获 取本书最新版) html)一书来了解使用自定义泛型。 另外,在阐述值类型转换、值赋值和值比较规则时,自定义泛型中频繁使用的类型 参数类型被特意忽略掉了。 也就是说,本书不考虑自定义泛型中的情形。 本书由老貘历时三年写成。目前本书仍在不断改进和增容中。你的赞赏是本书和 Go101.org网站不断增容和维护的动力。 赞赏 (请搜索关注微信公众号“Go 101”或者访问github.com/golang101/golang101获 取本书最新版) Donizetti、 Emmanuel T Odeke、 Filippo Valsorda、 Dominik Honnef、 和 Rob 'Commander' Pike 等。 感谢直接参与本书写作和改进的Go社区成员,包括: Amir Khazaie、 Ziqi Zhao、 Artur Kirillov、 Arinto Murdopo、 Andreas Pannewitz、 Jason-Huang、0 码力 | 591 页 | 21.40 MB | 1 年前3
使用Go与redis构建有趣的应用Redis 构建锁 路路线图 ⼀一. Redis 简介 ⼆二. 使⽤用 Redis 构建锁 三. 使⽤用 Redis 构建在线⽤用户统计器器 路路线图 ⼀一. Redis 简介 ⼆二. 使⽤用 Redis 构建锁 三. 使⽤用 Redis 构建在线⽤用户统计器器 四. 使⽤用 Redis 构建⾃自动补完程序 Redis an open source, in-memory data 键尚未有值,设置成功 在线⽤用户统计器器 online user counter 示例例 analytics.google.com panda.tv bilibili.com v2ex.com ⽅方法⼀一 —— 使⽤用集合 当⼀一个⽤用户上线时,将它的⽤用户名添加到记录在线⽤用户的集合当中。 ⽅方法⼀一 —— 使⽤用集合 当⼀一个⽤用户上线时,将它的⽤用户名添加到记录在线⽤用户的集合当中。 j j a c k 未 上 线 “peter” “tom” ⽅方法⼀一 —— 使⽤用集合 当⼀一个⽤用户上线时,将它的⽤用户名添加到记录在线⽤用户的集合当中。 j a c k 未 上 线 “peter” “tom” “peter” “jack” “tom” j a c k 已 上 线 需要⽤用到的命令 需要⽤用到的命令 SADD set element [element0 码力 | 176 页 | 2.34 MB | 1 年前3
Go 2 Generics? A (P)review包 import ○ []P(T) 存在二义,但 []P(T1, T2) 不会出现二义仍无法直接使用, 见 changkun/go2generics/bugs/1/ ● 2020-03-19:改进 ○ 支持编写 <-、...、switch、select,支持第三方包 import ○ 但使用 testing 时部分包导入功能失效,见 changkun/go2generics/bugs/2/ ○ 不明原因无法导入 errors 包 `can't find any importable name in package "errors"` ● 2020-04-03 & 2020-04-09:改进 ○ 仍然不支持泛型指 针 contract C(T) { *T M() },见 changkun/go2generics/bugs/2/ ○ 修复 changkun/go2generics/bugs/2/ 实现经验。这就导致后来基于实现和使用经验又对模板进行了多方面的修 订。」 「我确实认为,在开始描述模板机制时自己是过于谨慎和保守了。我们原来就应该把许多特性加进来,[...] 这些特性并没有给实现者增 加多少负担,但是却对用户特别有帮助。」 ——"The Design and Evolution of C++" Chapter 15: Templates, 15.2 Templates 2020 © Changkun0 码力 | 41 页 | 770.62 KB | 1 年前3
分布式任务系统cronsun用去执行命令 3. Sleep 1 minute 4. 重新从步骤 1 开始 @Copyright Sunteng Technology 支持多用户的 cron Unix System V,1983 1. 启动的时候读取所有用户下的 .crontab 文件 2. 计算出每个 crontab 文件里需要执行的命令的下一次执行时间 3. 把这些命令按下一次执行时间排序后放入队列里 1 ISC Cron(2004) 4. anacron, dcron, fcron @Copyright Sunteng Technology cron 的局限性 1. 单机 2. 无界面 3. 功能比较简单 4. 多机器的情况下任务维护成本较高 @Copyright Sunteng Technology Part Two 02 分布式任务系统 @Copyright Sunteng Technology cronsun 特性 1. 部署简单 2. Web 界面统一管理任务 3. 任务失败重试 4. 任务失败邮件提醒 5. 多机单任务(防止单机挂掉任务不按时执行) 6. 单机任务并行数限制 7. 执行单次任务 8. 多机器严格的时间间隔任务 9. 支持安全性配置,可以限制任务脚本的后缀和执行用户 10.... @Copyright Sunteng Technology0 码力 | 48 页 | 1.52 MB | 1 年前3
共 57 条
- 1
- 2
- 3
- 4
- 5
- 6













