 2.2.6 字节跳动在 Go 网络库上的实践字节跳动在 Go 网络库上的实践 何晨 字节跳动 基础架构 – 研发 应用层 Netpoll – 面向 RPC 场景的网络库 Go net Netpoll 网络层 RPC 框架 HTTP 框架 KiteX Hertz Netpoll – 性能表现 Environment CPU: 4 cores Memory: 8GB Go: 1.15.4 Netpoll0 码力 | 42 页 | 3.19 MB | 1 年前3 2.2.6 字节跳动在 Go 网络库上的实践字节跳动在 Go 网络库上的实践 何晨 字节跳动 基础架构 – 研发 应用层 Netpoll – 面向 RPC 场景的网络库 Go net Netpoll 网络层 RPC 框架 HTTP 框架 KiteX Hertz Netpoll – 性能表现 Environment CPU: 4 cores Memory: 8GB Go: 1.15.4 Netpoll0 码力 | 42 页 | 3.19 MB | 1 年前3
 Go在数据库中间件的应用Go在数据库中间件的应用 基础架构组/刘延允 liuyun827@foxmail.com 2017年9月 1 关于我 • 刘延允——酷狗音乐,基础架构组 • 数据库变更通知服务 • 酷狗消息队列 • 酷狗数据库中间件 • 主要工作:分布式存储、高可用、数据库 • 两年通信设备开发经验,四年互联网 • 五年C/C++使用经验,一年Golang 2 CONTENTS • 程序开发的需求 Go语法简练;没有学习压力 • 开发效率高;语言描述能力接近于脚本语言 • 性能高;接近于C/C++,充分利用资源 • 容易部署;可执行程序,编译时解决上线部署、运行时的依赖 • 强大的标准库、丰富的第三方库、go test、pprof • 自动内存管理;内存泄漏与野指针是C/C++语言开发者的噩梦 • Go routine + channel;简单的并发与简易的数据同步 5 系统整体方案 平滑上下线Mysql。 • 主备自动切换(主-主模式)。 • 分表设计——按照Hash分表 • 分表设计——按照范围分表(年、月、日、整形) • 数据库表在多个mysql实例间平滑扩容 • 大表拆分为多个子表情况下的平滑扩容 7 系统整体方案 • 现存问题 • 数据库访问基本采用直连方式 • 无法满足数据访问平台化要求 • 配置管理方式落后,运维压力大 • 为什么采用Go来实现 • go诸多优点,可用性高0 码力 | 17 页 | 4.02 MB | 1 年前3 Go在数据库中间件的应用Go在数据库中间件的应用 基础架构组/刘延允 liuyun827@foxmail.com 2017年9月 1 关于我 • 刘延允——酷狗音乐,基础架构组 • 数据库变更通知服务 • 酷狗消息队列 • 酷狗数据库中间件 • 主要工作:分布式存储、高可用、数据库 • 两年通信设备开发经验,四年互联网 • 五年C/C++使用经验,一年Golang 2 CONTENTS • 程序开发的需求 Go语法简练;没有学习压力 • 开发效率高;语言描述能力接近于脚本语言 • 性能高;接近于C/C++,充分利用资源 • 容易部署;可执行程序,编译时解决上线部署、运行时的依赖 • 强大的标准库、丰富的第三方库、go test、pprof • 自动内存管理;内存泄漏与野指针是C/C++语言开发者的噩梦 • Go routine + channel;简单的并发与简易的数据同步 5 系统整体方案 平滑上下线Mysql。 • 主备自动切换(主-主模式)。 • 分表设计——按照Hash分表 • 分表设计——按照范围分表(年、月、日、整形) • 数据库表在多个mysql实例间平滑扩容 • 大表拆分为多个子表情况下的平滑扩容 7 系统整体方案 • 现存问题 • 数据库访问基本采用直连方式 • 无法满足数据访问平台化要求 • 配置管理方式落后,运维压力大 • 为什么采用Go来实现 • go诸多优点,可用性高0 码力 | 17 页 | 4.02 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 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
 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 Raft0 码力 | 44 页 | 649.68 KB | 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 Raft0 码力 | 44 页 | 649.68 KB | 1 年前3
 Go Web编程3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.1 database/sql接口 5.2 使用MySQL数据库 5.3 使用SQLite数据库 5.4 使用PostgreSQL数据库 5.5 使用beedb库进行ORM开发 5.6 NOSQL数据库操作 5.7 小结 6.session和数据存储 6.1 session和cookie 6 Go如何使用session 6.3 session存储 6.4 预防session劫持 6.5 小结 7.文本文件处理 7.1 XML处理 7.2 JSON处理 7.3 正则处理 7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 9.安全与加密 Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。 Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感 觉起来比典型的面向对象语言更轻量级。 Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。0 码力 | 295 页 | 5.91 MB | 1 年前3 Go Web编程3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.1 database/sql接口 5.2 使用MySQL数据库 5.3 使用SQLite数据库 5.4 使用PostgreSQL数据库 5.5 使用beedb库进行ORM开发 5.6 NOSQL数据库操作 5.7 小结 6.session和数据存储 6.1 session和cookie 6 Go如何使用session 6.3 session存储 6.4 预防session劫持 6.5 小结 7.文本文件处理 7.1 XML处理 7.2 JSON处理 7.3 正则处理 7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 9.安全与加密 Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点: 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。 Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。 Go是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感 觉起来比典型的面向对象语言更轻量级。 Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。0 码力 | 295 页 | 5.91 MB | 1 年前3
 Go 入门指南(The way to Go)测试键值对是否存在及删除元素 8.3 for-range 的配套用法 8.4 map 类型的切片 8.5 map 的排序 8.6 将 map 的键值对调 第9章:包(package) 9.1 标准库概述 9.2 regexp 包 9.3 锁和 sync 包 - 3 - 本文档使用 书栈(BookStack.CN) 构建 9.4 精密计算和 big 包 9.5 自定义包和可见性 9.6 install 安装自定义包 9.8 自定义包的目录结构、go install 和 go test 9.9 通过 Git 打包和安装 9.10 Go 的外部包和项目 9.11 在 Go 程序中使用外部库 第10章:结构(struct)与方法(method) 10.1 结构体定义 10.2 使用工厂方法创建结构体实例 10.3 使用自定义包中的结构体 10.4 带标签的结构体 10.5 匿名字段和内嵌结构体 通道、超时和计时器(Ticker) 14.6 协程和恢复(recover) 14.7 新旧模型对比:任务和worker 14.8 惰性生成器的实现 14.9 实现 Futures 模式 第 15 章 网络,模板和网页应用 15.1 tcp服务器 15.2 一个简单的网页服务器 15.3 访问并读取页面 15.4 写一个简单的网页应用 第 16章 常见的陷阱与错误 16.1 误用短声明导致变量覆盖0 码力 | 466 页 | 4.44 MB | 1 年前3 Go 入门指南(The way to Go)测试键值对是否存在及删除元素 8.3 for-range 的配套用法 8.4 map 类型的切片 8.5 map 的排序 8.6 将 map 的键值对调 第9章:包(package) 9.1 标准库概述 9.2 regexp 包 9.3 锁和 sync 包 - 3 - 本文档使用 书栈(BookStack.CN) 构建 9.4 精密计算和 big 包 9.5 自定义包和可见性 9.6 install 安装自定义包 9.8 自定义包的目录结构、go install 和 go test 9.9 通过 Git 打包和安装 9.10 Go 的外部包和项目 9.11 在 Go 程序中使用外部库 第10章:结构(struct)与方法(method) 10.1 结构体定义 10.2 使用工厂方法创建结构体实例 10.3 使用自定义包中的结构体 10.4 带标签的结构体 10.5 匿名字段和内嵌结构体 通道、超时和计时器(Ticker) 14.6 协程和恢复(recover) 14.7 新旧模型对比:任务和worker 14.8 惰性生成器的实现 14.9 实现 Futures 模式 第 15 章 网络,模板和网页应用 15.1 tcp服务器 15.2 一个简单的网页服务器 15.3 访问并读取页面 15.4 写一个简单的网页应用 第 16章 常见的陷阱与错误 16.1 误用短声明导致变量覆盖0 码力 | 466 页 | 4.44 MB | 1 年前3
 Go 入门指南(The way to Go)编程语言的爱好者来说,这本书无疑是最适合你的一本书籍,这里包含了当前最全面的学习 资源。本书通过对官方的在线文档、名人博客、书籍、相关文章以及演讲的资料收集和整理,并结合我自 身在软件工程、编程语言和数据库开发的授课经验,将这些零碎的知识点组织成系统化的概念和技术分类 来进行讲解。 随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫 折,在诸多问题上都不能给出令人满意的解决方案,尤其是在使用 goroutine 和 channel 时有多少种不同的模 Go入门指南 - 1 - 本文档使用 看云 构建 式,如何在 Go 语言中使用谷歌 API,如何操作内存,如何在 Go 语言中进行程序测试和如何使用模板来 开发 Web 应用这些高级概念和技巧。 在本书的第一部分,我们将会讨论 Go 语言的起源(第 1 章),以及如何安装 Go 语言(第 2 章)和开发 环境(第 3 章)。 在本书的第二部分,我们将会带领你贯穿 态投入到这个项目的编译器 和运行实现上。Ian Lance Taylor 也加入到了开发团队中,并于 2008 年 5 月创建了一个 gcc 前端。 Russ Cox 加入开发团队后着手语言和类库方面的开发,也就是 Go 语言的标准包。在 2009 年 10 月 30 日,Rob Pike 以 Google Techtalk 的形式第一次向人们宣告了 Go 语言的存在。 直到 2009 年0 码力 | 380 页 | 2.97 MB | 1 年前3 Go 入门指南(The way to Go)编程语言的爱好者来说,这本书无疑是最适合你的一本书籍,这里包含了当前最全面的学习 资源。本书通过对官方的在线文档、名人博客、书籍、相关文章以及演讲的资料收集和整理,并结合我自 身在软件工程、编程语言和数据库开发的授课经验,将这些零碎的知识点组织成系统化的概念和技术分类 来进行讲解。 随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫 折,在诸多问题上都不能给出令人满意的解决方案,尤其是在使用 goroutine 和 channel 时有多少种不同的模 Go入门指南 - 1 - 本文档使用 看云 构建 式,如何在 Go 语言中使用谷歌 API,如何操作内存,如何在 Go 语言中进行程序测试和如何使用模板来 开发 Web 应用这些高级概念和技巧。 在本书的第一部分,我们将会讨论 Go 语言的起源(第 1 章),以及如何安装 Go 语言(第 2 章)和开发 环境(第 3 章)。 在本书的第二部分,我们将会带领你贯穿 态投入到这个项目的编译器 和运行实现上。Ian Lance Taylor 也加入到了开发团队中,并于 2008 年 5 月创建了一个 gcc 前端。 Russ Cox 加入开发团队后着手语言和类库方面的开发,也就是 Go 语言的标准包。在 2009 年 10 月 30 日,Rob Pike 以 Google Techtalk 的形式第一次向人们宣告了 Go 语言的存在。 直到 2009 年0 码力 | 380 页 | 2.97 MB | 1 年前3
 Go 2 Generics? A (P)review使用方法及穷举类型来限制并描述可能的参数 类型 ● comparable/arithmetic 等内建合约 评述 ● 这样的代码合法吗? ○ _ = Max(1.0, 2) ○ 如何写出更一般的形式? ● 可变模板参数的支持情况缺失(后面会提) ● 没有算符函数、重 载 [Revised] 2020 © Changkun Ou · Go 夜读 · Go 2 Generics? A (P)review Contracts 最大的问题就是缺乏一个扩充的标准库。要编写这种库,遇到的最主要 问题就是,C++ 没有提供一种充分一般的机制,以便与定 义容器类。如:表、向量和关 联数组等。」 「回过头看,模板恰好成 为精炼一种新语言特征的两种策略之 间的分界线。在模板之前,我(Bjarne Stroustrup)一直通过实现、使用、 讨论、再实现的过程去精炼一个语言特征。而在模板之后, [...] 实现通常是和这些并行讨论的。有关模板的讨论并没有像他所应该做的 有像他所应该做的 那样广泛,我也缺乏批判性的 实现经验。这就导致后来基于实现和使用经验又对模板进行了多方面的修 订。」 「我确实认为,在开始描述模板机制时自己是过于谨慎和保守了。我们原来就应该把许多特性加进来,[...] 这些特性并没有给实现者增 加多少负担,但是却对用户特别有帮助。」 ——"The Design and Evolution of C++" Chapter 15: Templates0 码力 | 41 页 | 770.62 KB | 1 年前3 Go 2 Generics? A (P)review使用方法及穷举类型来限制并描述可能的参数 类型 ● comparable/arithmetic 等内建合约 评述 ● 这样的代码合法吗? ○ _ = Max(1.0, 2) ○ 如何写出更一般的形式? ● 可变模板参数的支持情况缺失(后面会提) ● 没有算符函数、重 载 [Revised] 2020 © Changkun Ou · Go 夜读 · Go 2 Generics? A (P)review Contracts 最大的问题就是缺乏一个扩充的标准库。要编写这种库,遇到的最主要 问题就是,C++ 没有提供一种充分一般的机制,以便与定 义容器类。如:表、向量和关 联数组等。」 「回过头看,模板恰好成 为精炼一种新语言特征的两种策略之 间的分界线。在模板之前,我(Bjarne Stroustrup)一直通过实现、使用、 讨论、再实现的过程去精炼一个语言特征。而在模板之后, [...] 实现通常是和这些并行讨论的。有关模板的讨论并没有像他所应该做的 有像他所应该做的 那样广泛,我也缺乏批判性的 实现经验。这就导致后来基于实现和使用经验又对模板进行了多方面的修 订。」 「我确实认为,在开始描述模板机制时自己是过于谨慎和保守了。我们原来就应该把许多特性加进来,[...] 这些特性并没有给实现者增 加多少负担,但是却对用户特别有帮助。」 ——"The Design and Evolution of C++" Chapter 15: Templates0 码力 | 41 页 | 770.62 KB | 1 年前3
 基于open-falcon的平安云监控argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 Ø argus的未来 为什么选用Go Ø 自带goroutine,容易实现高并发程序 Ø 标准库功能键全 Ø 方便引用第三次库 Ø 为工程化设计的语言 Ø Interface的设计 Ø 自带profile工具 Ø 自带单元测试框架 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 query- proxy mysql web alarm gitlab 主机 主机 主机组 主机组 模板 模板 父模板 父模板 联系人 联系人 策略 策略 策略 策略 策略 策略 配置数据模型 租户 租户 主机 主机 主机组 主机组 模板 模板 父模板 父模板 联系人 联系人 策略 策略 策略 策略 策略 策略 租户隔离 解读argus的架构 Ø 异地容灾,高可用0 码力 | 30 页 | 10.40 MB | 1 年前3 基于open-falcon的平安云监控argus是什么 Ø 为什么选用Go Ø argus的前身 Ø argus的现状 Ø argus的未来 为什么选用Go Ø 自带goroutine,容易实现高并发程序 Ø 标准库功能键全 Ø 方便引用第三次库 Ø 为工程化设计的语言 Ø Interface的设计 Ø 自带profile工具 Ø 自带单元测试框架 目录 Ø 团队介绍 Ø 背景 Ø 系统定位 Ø argus是什么 query- proxy mysql web alarm gitlab 主机 主机 主机组 主机组 模板 模板 父模板 父模板 联系人 联系人 策略 策略 策略 策略 策略 策略 配置数据模型 租户 租户 主机 主机 主机组 主机组 模板 模板 父模板 父模板 联系人 联系人 策略 策略 策略 策略 策略 策略 租户隔离 解读argus的架构 Ø 异地容灾,高可用0 码力 | 30 页 | 10.40 MB | 1 年前3
 1.6 resource scheduling & container technology for financial service_yujun片问题,即:每个节点上的资源不可能全部被分配完,剩下的一 点可能不足以让任何任务运行,这样,便产生了类似于操作系统 中的内存碎片问题。  ④ YARN适合Long  running  job和数据分析类资源的调度,对于数 据库类等短运行时场景资源调度效果较差  ⑤ YARN采用了增量资源分配机制(当应用程序申请的资源暂时无 法保证时,为应用程序预留一个节点上的资源直到累计释放的空 闲资源满足应用程序需求),这种机制会造成浪费,但不会出现 分布式高可用控制系统   基于Raft/Chubby算法和GOSSIP协议的分布式高可用控 制系统与服务发现  智能模板和堆叠式组件管理系统   深度优化和预置的多层堆叠式开源软件发布和管理系统, 可以在保障版本统一的条件下,智能推送和维护应用模板  运维过程数据的大数据分析系统  自主研发Horus  运维数据处理平台   100%  Written0 码力 | 21 页 | 27.20 MB | 1 年前3 1.6 resource scheduling & container technology for financial service_yujun片问题,即:每个节点上的资源不可能全部被分配完,剩下的一 点可能不足以让任何任务运行,这样,便产生了类似于操作系统 中的内存碎片问题。  ④ YARN适合Long  running  job和数据分析类资源的调度,对于数 据库类等短运行时场景资源调度效果较差  ⑤ YARN采用了增量资源分配机制(当应用程序申请的资源暂时无 法保证时,为应用程序预留一个节点上的资源直到累计释放的空 闲资源满足应用程序需求),这种机制会造成浪费,但不会出现 分布式高可用控制系统   基于Raft/Chubby算法和GOSSIP协议的分布式高可用控 制系统与服务发现  智能模板和堆叠式组件管理系统   深度优化和预置的多层堆叠式开源软件发布和管理系统, 可以在保障版本统一的条件下,智能推送和维护应用模板  运维过程数据的大数据分析系统  自主研发Horus  运维数据处理平台   100%  Written0 码力 | 21 页 | 27.20 MB | 1 年前3
共 59 条
- 1
- 2
- 3
- 4
- 5
- 6














 
 