2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华应用层防火墙WAF • 百度GOLANG委员会成员 内容提要 • 后台程序开发的需求和难点 –C, Python and Go对比 • 采用Go语言重构BFE –背景和技术路线 –GC问题 –协议一致性 –分布式架构 后台程序开发的需求(1) • 性能 –C/C++, Java –Python, Ruby • 并发性 –Process, Thread, Event(编程难度) • 开发效率 –GO-BFE的场景和服务模式,大量的goroutine必然 存在 • 需要根据线上运行实际情况来做选型 协议一致性问题 • GO-BFE 参考了Go的http库 • 基于Go的http实现是否完善,符合rfc标准 –没有大规模的应用的例子 • 需要一些方法来验证 –网络协议一致性测试是难点 协议一致性 • Macaroon框架 Mock client GO-BFE Mock server0 码力 | 35 页 | 730.17 KB | 1 年前3
2.1.1 Golang主动式内存缓存的优化探索之路复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? • 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 第二部分 使用内存缓存 数据一致性如何保证? 一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新 被动方式 缓存过期 定期同步 主动方式 监听数据变化 数据加载,更新 02. 全量数据加载,增量数据监听 业务代码与框架代码分离,聚焦业务开发 缓存接入成本低,无需关注内部的管理,开箱即用 提供灵活的查询、过滤、排序、分页等接口,为查询业务赋能 开发者无需关注缓存与数据库的数据一致性,框架层面有保障 框架提供脚手架,框架代码自动生成,减少心智负担 海量数据可扩展,接入冷热数据交换策略,只需简单配置 海量数据存储,不会触发GC扫描,服务性能无压力 单元测试高覆盖,稳定有保障0 码力 | 48 页 | 6.06 MB | 1 年前3
2.7 Golang与高性能DSP竞价系统Redis集群 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right ReservedAll Right Reserved • 最终在Client端实现 • ⼀一致性hash: github.com/stathat/consistent • 预先开启⾜足够多的Redis实例,预防增加节点带来的数据 迁移⿇麻烦 Redis集群 专业DSP解决⽅方案 Right ReservedAll Right Reserved • 内存占⽤用过⼤大时,可以切分为多个实例,减少单个实例 的内存占⽤用,减少BgSave和重启时Load数据的时间 • ⼀一致性要求不是⾮非常⾼高的业务,可以把⾃自动的BgSave 关闭,在凌晨或者空闲时候⼿手动调⽤用BgSave Redis运维 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right0 码力 | 51 页 | 5.09 MB | 1 年前3
GoFrame框架介绍及设计我们只需要了解一个框架的内容变化,而不是数十个模块的内容变化 • 升级的时候只需要升级一个框架版本,而不是数十个模块版本的升级 • 减轻心智负担,提高模块可维护性,更容易保证各业务项目的模块版本一致性 改进: 模块化设计-常见问题 1. 模块低耦设计:文件层面的源文件下载与模块之间的逻辑耦合没有直接关系 2. 框架核心精简:功能强大且代码精简,包含测试与示例代码共8MB容量 3. 编译 升级的时候只需要升级一个框架版本,而不是数十个模块版本的升级 • 统一的模块化设计可以减少不必要的逻辑实现,提高模块性能及易用性 • 减轻开发人员的心智负担,提高模块可维护性,更容易保证各业务项目 的模块版本一致性 统一框架设计-形成技术沉淀 发现问题 分析问题 解决问题 方案沉淀 统一框架 基于统一的开发框架,更容易形成技术沉淀,企业与社区形成良性循环。 统一框架设计-避免资源浪费 当每个团队都在试图自己创造轮子时,不仅0 码力 | 37 页 | 8.84 MB | 1 年前3
TarsGo微服务开发实践-利开园Tars应用实践:https://github.com/tarscloud/gopractice RPC:不应该只是RPC • 基本功能:远程函数调用 • 可观测 • 名字服务+SET流量管理 • 熔断与恢复 • 轮询/一致性Hash • 错误码管理 日志:排查问题的利器 • 格式化 =〉 JSON • 单机withFields • 基于context • 跨服务withFields • 基于透传元数据 • 按大小/时间滚动0 码力 | 15 页 | 4.23 MB | 1 年前3
2.5 Go在猎豹移动的应用 阶段2:svn统一提交修改,每个idc一份; 阶段3:配置统一管理化(agent模型); 一处修改,统一管理; 节点状态查看、回滚配置; 数据安全、强一致性; goconf /config/ | service/ | idc1/ | current/( {"last_ver":"v1.2",0 码力 | 24 页 | 4.26 MB | 1 年前3
如何用GO支撑海外电商的快速发展-吕梦楼队列限流:业务系统请求入队列的限流 每秒放号限流:放号系统每秒的放号限流 场景落地 02. 秒杀 原子计数限流,数据入Channel 请求入队列限流 每秒放号限流 场景落地 02. 秒杀 uid 一致性ha sh 放号系统机器的hostn a m e h2 m queue_ hd get_ {{m id d le_ hostn a m e}} 场景落地 02. 秒杀 总结 第四部分0 码力 | 33 页 | 3.80 MB | 1 年前3
2.2 龚浩华(月牙寂)p2p缓存系统 基于Golang的Aop设计模式 常规分布式的缺点 1、缺乏全局状态知识 分布式系统中的节点只能访问自身的状 态,无法获取到全局的状态 2、缺乏全局时间 分布式系统中的节点无法做到时间的完 全一致性,会导致一些行为的顺序不确定 3、非确定 普通程序输入则得到固定的输出。分布 式系统则存在很多差异。 golang 基于golang的分布式程序(单进程) 1、针对0 码力 | 29 页 | 338.20 KB | 1 年前3
5 How to integrate Graph mode into RDBMS smoothly ● 社交网络 目前的问题 01. 副标题 ● 对于复杂的关系网络,传统关系型数据库无能为力 ● 单独部署图数据库集群 ● 部署运维两套数据库集群成本太高 ● 在两个不同的数据库中数据一致性不能保障 探索方向 01. 副标题 TiGraph 项目尝试验证在分布式关系型数据中无缝集成图模式: ● 同时包含关系型模型和图模型 ● 同一个事务中操作图数据和关系型数据的能力 ● 将图遍历作为0 码力 | 26 页 | 1.14 MB | 1 年前3
基于 mesos 的容器调度框架的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 24/36 高可用 通过 Raft 分布式一致性协议实现高可用 hashicorp/raft (https://github.com/hashicorp/raft) 领导选举: 心跳机制来触发选举, term 充当逻辑时钟的作用 日志复制:0 码力 | 36 页 | 2.49 MB | 1 年前3
共 15 条
- 1
- 2













