Tag Golang

bfe业余分析(三)

简单分析下配置reload的逻辑。bfe中配置的加载分为主配置和模块配置。 模块配置 以bfe_modules/mod_block为例。触发的web请求为/reload/mod_block.product_rule_table, /reload/mod_block.global_ip_tabl

bfe业余分析(二)

这篇主要分析一下bfe主服务流程。bfe的整合http服务都是自己实现的,这样相比标准库会有有更强的控制力。 整体结构 先看下源码目录结构: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 $ tree -L 1 . ├── ADOPTERS.md ├── bfe_balance ├── bfe_basic ├── bfe_bufio ├── bfe_config ├── bfe_debug ├── bfe.go ├

bfe业余分析(一)

bfe是百度开源的一个使用golang开发的七层转发引擎,源码可以在这里找到。文档的话可以直接看中文的,比英文全很多。这里是想通过分析和使用bfe去学习和了解一下其他公司在七层引擎上面的一些想法。 这篇主要记录下bfe的基本使用。以下所有分析都基于v0.6.0 编译与运行 克隆仓库后直接运行m

golang pprof简易玩法

golang的应用诊断可以依靠pprof工具, 这里总结一个快速上手的步骤. step0: 假设 我们现在的应用跑在远端 我们本地的go为1.11版本(webui支持了火焰图) 诊断的应用是caddy step1: 开启 对我们的应用开启profiling. 这个方法有很多, 可以直接参考runtime/pprof和net/ht

golang中的结构体匿名成员

最近在开发caddy的插件, 碰到了很多以前不怎么注意的地方, 先重点记录下几个点. 写插件比较追求的一点是: 如何不破坏原有的体系而达到想要的效果. 这个确实有点难… 结构体匿名成员 有关结构体匿名成员在《Effective Go》中的embedding一节讲的很详细, 一言一蔽之: 另一种