go-zero开源项目的成长史万俊峰Kevin go-zero 开源项⽬成⻓史 About me • go-zero 作者 • 阿⾥云MVP • 腾讯云TVP • ArchSummit 明星讲师 • GopherChina 主持⼈&⾦牌讲师 • 极客时间 Go 专题出品⼈ • 腾讯云开发者⼤会讲师 TOC ● go-zero 的由来 ● go-zero 的现状 ● go-zero 的成⻓阶段 ● go-zero go-zero 推⼴思路 ● go-zero 社区发展思考 ● go-zero 的未来 go-zero 的由来 • 源起 2013 • 业务驱动、业务⽀撑 • 经历过的业务 • 经历过的 Go 发展阶段 go-zero 的现状 • star 增⻓趋势 • contributors • ⽤户 • 社区⽤户 • 企业⽤户 • 质量标准 • 需求 • PR PR 标准 go-zero 数据统计 star 增⻓趋势 Contributors 社区⽤户 企业⽤户 代码质量 功能评估 & 代码合并 • 功能评估 • 如⾮必要,勿增实体 • MVP,最⼩化接⼝ • 社区需求驱动 • PR要求 • CI检测,格式、安全、单测 • 修改或新增代码必须单测覆盖 go-zero 发展阶段 • ⼀年⼀万星 • 两年两万星0 码力 | 31 页 | 4.83 MB | 9 月前3
云原生go-zero微服务框架设计思考云原生go-zero微服务框架设计思考 万俊峰Kevin@好未来 关于我 万俊峰Kevin ● go-zero作者 ● 好未来资深专家 ● 晓黑板研发负责人 ● 十多年研发团队管理经验 ● 近20年开发和架构经验 Agenda ● go-zero之前世今生 ● go-zero是如何设计的 ● go-zero如何高效解决问题 go-zero之前世今生 go-zero的由来 ● 架构的选型 ● 如何无痛切换 go-zero是什么? ● Web & RPC微服务框架 ● 微服务代码生成工具goctl ● 通用API定义规范 go-zero的设计原则 ● 保持简单,第一原则 ● 弹性设计,面向故障编程 ● 工具大于约定和文档 ● 尽可能约束做一件事只有一种方式 ● 对业务开发友好,封装复杂度 go-zero是如何设计的 客户端 API端 Service端 数据上报到prometheus go-zero如何高效解决问题 支持的特性 ● tag支持:path, form, json ● default, optional, options, range 解析校验 ● httpx.Parse(...) ● 参数错误自动返回400 ● 支持自定义错误返回方式 http请求自动解析校验 https://github.com/tal-tech/go-zero https://zero0 码力 | 29 页 | 5.70 MB | 9 月前3
微服务容灾治理微服务容灾治理 1. go-zero稳定性能⼒概览 经过这么多年⼤流量服务端架构设计的沉淀,go-zero在保护服务的稳定性上下⾜了功夫,不管是 CPU密集型还是IO密集型服务,go-zero都能很好的保护服务在如下场景不被拖垮或卡死: • 远超服务容量的突发⼤流量 • CPU打满 • 上下游故障或者超时 • MySQL、MongoDB、Redis等中间件故 ,是不是后⾯所有的请求也都被卡住了?等服务处理完请 求的时候,⽤⼾那⾥可能已经超时离开了,结果服务器很忙,但都是做的⽆⽤功。如果这⾥不能理 解,停下来好好思考⼀番,如果还不懂的话,可以来go-zero群⾥讨论讨论。。。 2.1模拟CPU密集型服务 有⼈可能会问CPU密集型服务怎么定义?你的服务CPU会打满吗?处理请求会包含复杂的计算逻辑 吗?你经常需要通过cpu CPU使⽤率计算是第⼀个难点,很难算准,依赖于系统繁忙程度,是否能够及时调度到读取CPU使⽤ 率相关⽂件的执⾏。 3.1.1CPU检测场景 过载保护的⼀个触发条件就是当系统的CPU⾼于⼀个阈值时,go-zero会⾃动触发过载保护,那么我 们怎么检测CPU使⽤率呢? ⾸先,我们要明确需要覆盖的场景,当前⽆外乎虚机和容器两⼤类了。⽽容器⾥⼜分为 cgroup v1 和 cgroup v20 码力 | 13 页 | 1.68 MB | 1 年前3
2.2.5 Go 如何助力企业进行微服务转型Go 如何助⼒企业进⾏微服务转型 万俊峰Kevin About me • go-zero 作者 • 好未来技术委员会资深专家 • GopherChina ⾦牌讲师 • ArchSummit 明星讲师 • 腾讯云开发者⼤会讲师 Agenda • 为什么选 Go? • 单体和微服务怎么选? • 单体到微服务何时转? • 单体到微服务怎么转? 为什么选 Go? • 节省服务成本 • Prefer Go over … • 怎么选? • 何时转? • 怎么转? go-zero渐进式微服务框架 • 9.2K stars • 1.1K forks • 70 contributors • MIT License https://github.com/tal-tech/go-zero 困难使⼈进步!0 码力 | 25 页 | 4.51 MB | 1 年前3
共 4 条
- 1













