2.1.1 Golang主动式内存缓存的优化探索之路Golang主动式内存缓存的优化探索之路 安晏伯 学而思网校 技术专家 目 录 问题引入 01 难点攻克 02 主动式内存缓存框架 03 总结 04 问题引入 第一部分 为什么能有极致的性能? 01. 如何优化? 解决了哪些技术难题? 主动式内存缓存 如何优化? 极致的性能 除了网络IO,与Redis有什么区别? 复杂的查询怎么办? 02. 传统的Cache很难 复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? • 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 第二部分 使用内存缓存 数据一致性如何保证? 一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新 被动方式 缓存过期 定期同步 主动方式 监听数据变化 数据加载,更新 储 MemoryTile序列化性能提升超2倍 MemoryTile反序列化性能提升近10倍 基于MemoryTile的映射,特殊场景反序列化性能提升近600倍 主动式内存缓存框架 第三部分 技术全景图 01. 主动式内存缓存架构的技术全景图 数据中心、数据源 02. 分布式部署,解决海量数据的传输、加载 数据全量加载时,缓解数据库压力 链路优化 优化 协议 编码 空值剔除0 码力 | 48 页 | 6.06 MB | 1 年前3
可视化学习 Go 并发编程可视化学习 Go 并发编程 2017.8.5 黄庆兵 - 网易 bingohuang.com 并发 简单来说,并发是一种构造程序的方式 Concurrency is not Parallelism Slide (http://talks.golang.org/2012/waza.slide) 1. 并发很强大 2. 并发帮助实现并行,使并行(扩展等)变得容易 3. 并发不是并行 /src/main.go ./binary 2> ./trace.out gotrace ./trace.out 会自动打开浏览器,你可调整视角、缩放、旋转以及加粗线条来改变图像 使用场景 非常酷! 学习 Go 的并发模式 探究 Go 的并发过程 Thank you 2017.8.5 黄庆兵 - 网易 bingohuang.com https://c.163yun.com (https://c0 码力 | 29 页 | 1.48 MB | 1 年前3
Go Web编程build.go,执行生成的文件,就会在底目 录下生成相应的html文件 交流 交流 欢迎大家加入QQ群:259316004 《Go Web编程》专用交流群 大家有问题还可以上德问上一起交流学习:http://www.dewen.org/topic/165 致谢 致谢 首先要感谢Golang-China的QQ群102319854,里面的每一个人都很热心,同时要特别感谢几个人 四月份平民 下一章: Go语言基础 38 2 Go语言基础 2 Go语言基础 Go是一门类似C的编译型语言,但是它的编译速度非常快。这门语言的关键字总共也就二十五个,比英文字母还少一 个,这对于我们的学习来说就简单了很多。先让我们看一眼这些关键字都长什么样: break default func interface select case defer fallthrough if range type continue for import return var 在接下来的这一章中,我将带领你去学习这门语言的基础。通过每一小节的介绍,你将发现,Go的世界是那么地简 洁,设计是如此地美妙,编写Go将会是一件愉快的事情。等回过头来,你就会发现这二十五个关键字是多么地亲切。 目录 目录0 码力 | 295 页 | 5.91 MB | 1 年前3
03. Golang 在隐私计算平台建设中的实践 - 刘敬隐私计算历史 1982年年姚期智提 出 百 万 富 翁 问 题 , 安 全 多 ⽅方 计 算概念被提出 1986年年姚期智提出 基于混淆电路路的通 ⽤用解决⽅方案 2016年年⾕谷歌提出联 邦学习,解决安卓 ⼿手机终端⽤用户的联 合模型训练 2009年年Gentry⾸首 次提出了了全同态 算法 2013年年Intel推出SGX指 令集扩展,提供软硬件 ⼀一体的可信执⾏行行环境 可信,提供计算模型及数据双维 度安全 • 联邦学习 结合机器器学习和密码学算 法,数据联邦化训练,充 分释放数据价值 02 隐私计算平台 架构 趣链科技版权所有©2016 – 2021 9 平台体系 • 区块链协同层 数据共享⽬目录,数据确权授 权、追溯审计以及联盟治理理 • 隐私计算⽹网络 多节点通过p2p组⽹网,并基于安 全多⽅方计算、联邦学习、可信执 ⾏行行环境按照数据隐私密级进⾏行行价 异步执⾏行行并⾏行行化,提⾼高算法性能 02.算法版本协商 实现新旧节点版本兼容,全⽹网节点可错 开时间依次升级 03.统⼀一异常处理理 参与⽅方掉线和流程异常时任务⾃自动终⽌止 04.主动终⽌止算法 基于元函数出⼊入参类型,算法流程⾃自组 织执⾏行行,框架可介⼊入控制 05.解耦算法流程和⽹网络io ⽆无需再关注⽹网络通信 06.声明式的算法嵌套 ⽆无需关注嵌套算法的调⽤用时机,框架⾃自0 码力 | 37 页 | 6.20 MB | 1 年前3
2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华C语言本身的难度和开发效率 –配置管理方式落后 • 为单产品线设计,无法支持平台化要求 • 配置变更(修改、重载、验证)能力差 –变更和稳定性的矛盾 • 程序出core 技术选型:Go vs Nginx • 学习成本 • 开发成本 –并发编程模型:同步(Go) vs 异步(Nginx) –内存管理 –语言描述能力 • 性能 – 在BFE的场景下,性能在可接受范围内 – 通过算法设计和架构设计来弥补 子进程Accept 技术细节 • 服务态 –调用Accept,获取新的请求 • 等待态 –不调用Accept,已经连接的client,可以继续收发 –等待这些已有的连接关闭 • 垃圾收集态 –主动调用GC GC优化 – 补充分析 • HTTP场景 –短连接 –长连接 • 平均连接上的请求是3个 • 90%(20s以内)、98%(50s之内) –大文件请求 • 对gc造成的延迟(几十ms)不敏感0 码力 | 35 页 | 730.17 KB | 1 年前3
Golang大规模云原生应用管理实践策略 机制 Jaeger 实例 调度策略 链路 K8s及云原生生态给 开发者提供的是机制 开发者直接使用K8s的失败故事 • 认知成本高:K8s功能强大却没有统一的使用方式,不得不学习复杂的声明字段和各种奇怪的Annotation; • 稳定性不足:没有设置Pod的QoS等级,导致频繁被驱逐,没有设置反亲和性策略,导致节点流量不均; • 扩展效率低:需要负责安装,升级丰富的云 Measurable • Relevant • Attainable • Timebound • 控制器设计(做什么) • 基于“可重构”状态机,开放的世界 • 不要修改资源声明 • 事件驱动+主动轮询 • 重试 + 幂等 • 自愈 • e2e测试 • Ginkgo BDD • Kind本地K8s集群 新的复杂度-最终一致性 status: … phase: succeed0 码力 | 23 页 | 7.70 MB | 1 年前3
2.2.2 深入理解BFE• 内部服务压力不均 健康检查 • 主动健康检查 • 负载均衡系统持续向RS发送探测请求 • 问题:在响应速度和发送压力间存在权衡 • 在分布式场景下问题更加明显 • 被动健康检查 • 利用正常业务请求来发现失败 • 失败后启动主动健康检查 • 问题:业务请求频度低时无法及时发现失败 • 主动和被动的结合 • 汇总两种检查的结果 • 可降低主动检查的频度(如30-60s) 信息透传0 码力 | 26 页 | 1.78 MB | 1 年前3
1.2 基于 Golang 构建高可扩展的云原生 PaaS 平台镜像服务 Add-on filebeat / telegraf 监控 ⽇志 HPA Operator 注册中⼼ 配置中⼼ API ⽹关 微服务拓扑 全链路追踪 错误分析 ⽇志分析 主动监控 浏览器监控 APP 监控 慢SQL JVM 诊断 ⾃定义告警 APM 微服务管理 资源管理 标签管理 系统监控 集群管理 服务⽬录 埋点 数据库 ⽇志 画像 标签 报表 推荐 - 模块内聚,模块间松耦合 - 模块间的引⽤使⽤DI⽽不是直接依赖实现包 - 服务可以由多个模块拼装组成 ⼀个最简单的模块定义 - 可以使⽤ cli ⽣成模块 template - 模块需要主动在config.yml中声明 案例:通过 IoC 注册服务 以 mysql client 为例 案例:通过 IoC 获取依赖 使⽤ autowired ⾃动注⼊依赖 使⽤服务定位器解析依赖0 码力 | 40 页 | 8.60 MB | 1 年前3
TarsGo微服务开发实践-利开园=〉 JSON • 单机withFields • 基于context • 跨服务withFields • 基于透传元数据 • 按大小/时间滚动 • 远程日志 vs 本地日志 的取舍 监控:主动发现问题 • RPC接口默认监控 • 自定义业务监控 • 基于Prometheus Tracing:在复杂系统中定位问题 • 依赖框架Context透传 • 基于OpenTracing+Jaeger0 码力 | 15 页 | 4.23 MB | 1 年前3
2.2.6 字节跳动在 Go 网络库上的实践Gs cost = wait(poller) + ... cost = wait(poller) + ... 优化调度效率 – 优化调度 1.动态 msec, 加快调用速度 2.判断 n, 主动让出 优化方向 优化 Buffer 设计(zerocopy) 优化调度效率(poller) 优化 Buffer 设计 buffer ? How design ? gopool conn0 码力 | 42 页 | 3.19 MB | 1 年前3
共 41 条
- 1
- 2
- 3
- 4
- 5













