2.5 Go在猎豹移动的应用 业务 猎豹移动全球passport体系; 游戏开放平台; 游戏支付体系; 平台 基于gopush的推送平台&goim; 基于redis sentinel的smart client; rpc框架; gosnowflake发号器集群; goconf统一配置管理; 接入层优化 DNS在移动网络下不适用; grpc num:159999, time:30s, num/s:5333; net/rpc不依赖context,实现数据跟踪, 需要修改源码; grpc支持http2,方便移动端app使用; Cache 模仿cpu使用多级cache; L1 cache:不经常修改,大量访问对性 能要求极致的,我们使用go map缓存信 息,使用COW保证无锁更新和访问;0 码力 | 24 页 | 4.26 MB | 1 年前3
IPC性能极致优化方案-RPAL落地实践IPC性能极致优化方案-RPAL落地实践 谢正尧 字节跳动 研发工程师 目 录 方案诞生的背景 01 全进程地址空间共享与保护 02 用户态进程切换 03 高效的Go Event Poller 04 RPC框架Kitex集成 05 性能收益与业务展望 06 方案诞生的背景 第一部分 方案诞生的背景 几种常见的同机通信场景: 1. 微服务合并部署(亲和性部署、sidecar .. 方案诞生的背景 微服务化拆分: 1. 序列化 2. 网络开销 3. 服务治理 微服务合并部署 function call remote call 方案诞生的背景 微服务合并形态:sidecar 进程通信 方案诞生的背景 微服务合并形态:亲和性部署 方案诞生的背景 怎么放大本地通信的优势? 低延迟 提升用户体验 低开销 降低计算成本 常见的本地通信方案:回环 IP、UDS、共享内存IPC IP、UDS、共享内存IPC 方案诞生的背景 以性能较优的 IPC 方案 share memory ipc 为例分析性能瓶颈: 注:方案 github 地址:https://github.com/cloudwego/shmipc-go 方案诞生的背景 方案诞生的背景 IPC 的性能瓶颈有哪些: 1. 系统特权级切换; 2. 异步线程唤醒/休眠(事件通知); 3. 数据拷贝(序列化/反序列化);0 码力 | 39 页 | 2.98 MB | 1 年前3
基于Go的大数据平台-党合萱基于Go的⼤大数据平台 七⽜牛云—党合萱 什什么是Pandora 简单 · 可信赖 Pandora架构图 Export Service API / Portal / 消息 消息 计算 计算 消息 导出任务 导出任务 导出任务 导出任务 导出任务 计算 消息 调度框架 • server感知 • 任务发现及粒度切分 • 数据平滑 • 调度组 • 管理理接⼝口 简单 · 可信赖 调度算法 简单 · 可信赖 ⾃自动化运维 简单 · 可信赖 监控⽅方案 • logkit:七⽜牛pandora团队开发的纯go语⾔言数据收集、推 送⼯工具,⽀支持多种数据源,⾼高效易易⽤用 • 时序数据库(TSDB):兼容influxdb,适配grafana 简单0 码力 | 34 页 | 1.26 MB | 1 年前3
1.2 基于 Golang 构建高可扩展的云原生 PaaS 平台基于 Golang 构建⾼可扩展的云原⽣ PaaS 平台 刘浩杨 端点 技术专家 个⼈简介 - 18年加⼊端点,现任微服务和监控团队负责⼈ - 端点开源 PaaS Erda 的核⼼架构师 - 开源爱好者, Apache SkyWalking PMC 成员 ⽬ 录 ⾯向云原⽣的软件交付 01 端点⼀站式 PaaS - Erda 02 Erda 架构的思考 03 模块化开发框架 DevOps 平台来⽀撑敏捷开发的落地 这⾥需要有⼀个标准的交付平台 运⾏环境 业务 数据 业务系统 C 业务 数据 业务系统 A 业务 数据 业务系统 B 资源管理在统⼀平台 应⽤运⾏在统⼀平台 构建标准的交付环境 交付产物标准化 - 业务配置 - 资源配置 - 依赖配置 - 流⽔线配置 配置即代码 : 实现⼤规模交付的部署过程可被验证 PaaS 平台:资源管理,容器编排,基础监控和告警 Erda 第⼆部分 端点 PaaS 发展历程 有状态服务 Job / JobFlow 批计算 流计算 ⽆状态服务 DaemonSet Workloads 多集群调度 混合云调度 跨云迁移 多环境调度 业务数据统⼀调度 集群核⼼服务 Helm 镜像服务 Add-on filebeat / telegraf 监控 ⽇志 HPA Operator 注册中⼼ 配置中⼼0 码力 | 40 页 | 8.60 MB | 1 年前3
Golang 在隐私计算平台建设中的实践 - 刘敬golang 在隐私计算平台建设中的实践 刘敬 杭州趣链科技有限公司 2021-10 ⽬目录 隐私计算介绍 01 隐私计算平台架构 02 构建隐私计算算法框架的实践 03 ⼀一些优化技巧 04 01 隐私计算介绍 趣链科技版权所有©2016 – 2021 4 隐私计算概念 隐私计算(Privacy preserving computation)是指在保证数据提供⽅方不不泄露露原始 趣链科技版权所有©2016 – 2021 6 隐私计算历史 1982年年姚期智提 出 百 万 富 翁 问 题 , 安 全 多 ⽅方 计 算概念被提出 1986年年姚期智提出 基于混淆电路路的通 ⽤用解决⽅方案 2016年年⾕谷歌提出联 邦学习,解决安卓 ⼿手机终端⽤用户的联 合模型训练 2009年年Gentry⾸首 次提出了了全同态 算法 2013年年Intel推出SGX指 令集扩展,提供软硬件 基于TEE硬件保障计算环境安全 可信,提供计算模型及数据双维 度安全 • 联邦学习 结合机器器学习和密码学算 法,数据联邦化训练,充 分释放数据价值 02 隐私计算平台 架构 趣链科技版权所有©2016 – 2021 9 平台体系 • 区块链协同层 数据共享⽬目录,数据确权授 权、追溯审计以及联盟治理理 • 隐私计算⽹网络 多节点通过p2p组⽹网,并基于安 全多⽅方计算、联邦学习、可信执0 码力 | 37 页 | 6.20 MB | 1 年前3
Go 入门指南(The way to Go)些零碎的知识点组织成系统化的概念和技术分类 来进行讲解。 随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫 折,在诸多问题上都不能给出令人满意的解决方案,尤其是在使用 C++ 来开发大型的服务端软件时,情 况更是不容乐观。由于二进制文件一般都是非常巨大的,因此需要耗费大量的时间在编译这些文件上,同 时编程语言的设计思想也已经非常陈旧,这些情况都 Scala(Java 的并发语言)有更低的门槛,真可谓是 21 世纪的 C 语言! 作为一门系统编程语言,你不应该为 Go 语言的大多数代码示例和练习都和控制台有着密不可分的关系而 感到惊奇,因为提供平台依赖性的 GUI(用户界面)框架并不是一个简单的任务。有许多由第三方发起的 GUI 框架项目正在如火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI 框架。不过 现阶段的 Go 2 - 本文档使用 看云 构建 下载这些代码到你的电脑上运行,从而加深对概念的理解。 本书会尽可能地将前后章节的内容联系起来,当然这也同时要求你通过学习不同的知识来对一个问题提出 尽可能多的解决方案。记住,学习一门新语言的最佳方式就是实践,运行它的代码,修改并尝试更多的方 案。因此,你绝对不可以忽略书中的 130 个代码练习,这将对你学习好 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 言和数据库开发的授课经验,将这些零碎的知识点组织成系统化的概念和技术分类来进行讲解。 随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫折,在诸多 问题上都不能给出令人满意的解决方案,尤其是在使用 C++ 来开发大型的服务端软件时,情况更是不容乐观。由于 二进制文件一般都是非常巨大的,因此需要耗费大量的时间在编译这些文件上,同时编程语言的设计思想也已经非常 陈旧,这些情况都 Scala(Java 的并发语言)有更低的门槛,真可谓是 21 世纪的 C 语言! 作为一门系统编程语言,你不应该为 Go 语言的大多数代码示例和练习都和控制台有着密不可分的关系而感到惊奇, 因为提供平台依赖性的 GUI(用户界面)框架并不是一个简单的任务。有许多由第三方发起的 GUI 框架项目正在如 火如荼地进行中,或许我们会在不久的将来看到一些可用的 Go 语言 GUI 框架。不过现阶段的 Go0 码力 | 466 页 | 4.44 MB | 1 年前3
GoFrame框架介绍及设计设计模式:MVC、三层架构、工具集 • 应用接口:HTTP/TCP/UDP/RPC Server、终端应用、源码接口 • 数据库类型:通过标准库驱动接口支持多种数据库类型 • 跨平台性:基于Golang开发语言强大跨平台特性 框架介绍-项目初心 工程化建设 统一框架 核心组件 项目架构 设计模式 开发规范 开发文档 开发工具 …… 模块化设计 第二部分 • 复用原则 • 单仓包设计 解决问题 方案沉淀 统一框架 基于统一的开发框架,更容易形成技术沉淀,企业与社区形成良性循环。 统一框架设计-避免资源浪费 当每个团队都在试图自己创造轮子时,不仅 无法形成统一的开发规范,而且会出现非常 多的资源浪费。 让项目组把精力更多的投入到业务中,相信 这是大多数技术公司的共识。使用统一的开 发架构,可以把共性的技术问题提炼出来, 并形成通用的解决方案。避免每个项目都独 自去解决遇到的各种各样的技术难题,有效 的把精力释放出来。 代码分层设计 第四部分 • 经典MVC • 三层架构模式 • 项目代码结构 代码分层设计-经典MVC 痛点: • 视图展示与数据操作方式的进一步剥离,特别是移动端的发展, 前端MVVM框架的发展,我们大多数场景下已不再需要服务端 渲染View • Model层级的代码既维护着数据,也封装着业务逻辑,随着业 务逻辑变得越来越复杂,这一层功能逻辑会变得越来越臃肿不0 码力 | 37 页 | 8.84 MB | 1 年前3
Go Web编程web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得web工作 3.4 Go的http包详解 3.5 小结 4.表单 4.1 处理表单的输入 4.2 验证表单的输入 4.3 预防跨站脚本 4.4 防止多次递交表单 4.5 处理文件上传 4.6 小结 5.访问数据库 5.1 database/sql接口 5.2 使用MySQL数据库 5.3 使用SQLite数据库 5.4 使用PostgreSQL数据库 如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境 变中是否包含了Go的安装目录。 Go标准包安装 Go标准包安装 Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go),当然 你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息: export 通过这个命令可以获取相应的源码,对应的开源平台采用不同的源码控制工具,例如github采用git、googlecode采 用hg,所以要想获取这些源码,必须先安装相应的源码控制工具 通过上面获取的代码在我们本地的源码相应的代码结构如下 $GOPATH src |--github.com |-astaxie |-beedb pkg |--相应平台0 码力 | 295 页 | 5.91 MB | 1 年前3
Hello 算法 1.0.0b4 Golang版− 20 = 11 元。 3. 从剩余可选项中拿出最大的 10 元,剩余 11 − 10 = 1 元。 4. 从剩余可选项中拿出最大的 1 元,剩余 1 − 1 = 0 元。 5. 完成找零,方案为 20 + 10 + 1 = 31 元。 在以上步骤中,我们每一步都采取当前看来最好的选择(尽可能用大面额的货币),最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是「贪心算法」。 的关 系。 ‧“增长趋势”表示复杂度分析关注的是算法时间与空间的增长趋势,而非具体的运行时间或占用空间。 复杂度分析克服了实际测试方法的弊端。首先,它独立于测试环境,因此分析结果适用于所有运行平台。其 次,它可以体现不同数据量下的算法效率,尤其是在大数据量下的算法性能。 如果你对复杂度分析的概念仍感到困惑,无需担心,我们会在后续章节详细介绍。 2.1.3. 复杂度分析重要性 复杂度分 成简单案例的复杂度分析。 2.2. 时间复杂度 2.2.1. 统计算法运行时间 运行时间可以直观且准确地反映算法的效率。然而,如果我们想要准确预估一段代码的运行时间,应该如何 操作呢? 1. 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 2. 评估各种计算操作所需的运行时间,例如加法操作 + 需要 1 ns,乘法操作 * 需要 10 ns,打印操作需要 5 ns0 码力 | 347 页 | 27.40 MB | 1 年前3
共 65 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7













