TarsGo微服务开发实践-利开园TarsGo微服务高效开发 最佳实践 利开园 腾讯高级工程师 2021-08-21 关于我 Docker TarsGo Tars+K8S DevOps 2015至今 腾讯 目录 1. RPC 2. 日志 3. 监控 4. 调用链 5. 网关 6. 错误码 7. 配置 8. 云原生 9. 标准化 背景 • Tars是腾讯开源的微服务解决方案 • 高性能的RPC框架 • 丰富的服务治理能力 丰富的服务治理能力 • 支持Golang/Cpp/Java/PHP/Nodejs • 腾讯内部(TAF)曾经应用最广的开发框架 • Tars应用实践:https://github.com/tarscloud/gopractice RPC:不应该只是RPC • 基本功能:远程函数调用 • 可观测 • 名字服务+SET流量管理 • 熔断与恢复 • 轮询/一致性Hash • 错误码管理 日志:排查问题的利器0 码力 | 15 页 | 4.23 MB | 1 年前3
1.2 Go 在分布式系统开发中的应用0 码力 | 20 页 | 131.34 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.areflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第31章:详解panic/recover原理 - 也解释了什么是“函数退出阶段” 第32章:代码块和标识符作用域 第33章:表达式估值顺序规则 第34章:值复制成本 第35章:边界检查消除 并发编程 第36章:并发同步概述 第37章:通道用例大全 第38章:如何优雅地关闭通道 是Go的主要卖点。 节省内存、程序启动快、代码执行速度快和编译速度快合在一块儿是Go的另 一个主要卖点。 虽然这三项是C家族语言的共同特征,但是在Web开发领域, 很少有语言同时拥有这四个特征。 事实上,这就是我当初从Java转到Go进行 Web开发的原因。 内置并发编程支持也算是Go的卖点,虽然我个人认为它不是Go的主要卖点。 良好的代码可读性是Go的另一个重要卖点。 我感觉可读性是Go在设计的时候 我感觉可读性是Go在设计的时候 考虑的最重要的一个因素。 良好的跨平台支持也应该算是Go的一个卖点,尽管如今这个卖点并不是很新 鲜。 一个稳定的Go核心设计和开发团队以及一个活跃的社区也可以被视为Go的一 个卖点。 《Go语言101》做了什么来消除Go编程中可能 出现的困惑? 《Go语言101》做了以下这些方面来试图清除很多Go编程中可能遇到的困惑。 1. 着重于基本概念和术语的解释。如果不理解或者不熟悉这些基本概念和术0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.areflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第31章:详解panic/recover原理 - 也解释了什么是“函数退出阶段” 第32章:代码块和标识符作用域 第33章:表达式估值顺序规则 第34章:值复制成本 第35章:边界检查消除 并发编程 第36章:并发同步概述 第37章:通道用例大全 第38章:如何优雅地关闭通道 Go的主要卖点。 节省内存、程序启动快、代码执行速度快和编译速度快合在一块儿是Go的另一 个主要卖点。 虽然这三项是C家族语言的共同特征,但是在Web开发领域,很 少有语言同时拥有这四个特征。 事实上,这就是我当初从Java转到Go进行Web 开发的原因。 内置并发编程支持也算是Go的卖点,虽然我个人认为它不是Go的主要卖点。 良好的代码可读性是Go的另一个重要卖点。 我感觉可读性是Go在设计的时候 我感觉可读性是Go在设计的时候 考虑的最重要的一个因素。 良好的跨平台支持也应该算是Go的一个卖点,尽管如今这个卖点并不是很新 鲜。 一个稳定的Go核心设计和开发团队以及一个活跃的社区也可以被视为Go的一个 卖点。 《Go语言101》做了什么来消除Go编程中可能出现的困惑? 《Go语言101》做了以下这些方面来试图清除很多Go编程中可能遇到的困惑。 1. 着重于基本概念和术语的解释。如果不理解或者不熟悉这些基本概念和术0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.areflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第31章:详解panic/recover原理 - 也解释了什么是“函数退出阶段” 第32章:代码块和标识符作用域 目录 2 第33章:表达式估值顺序规则 第34章:值复制成本 第35章:边界检查消除 并发编程 第36章:并发同步概述 第37章:通道用例大全 第38章:如何优雅地关闭通道 主要卖点。 节省内存、程序启动快、代码执行速度快和编译速度快合在一块儿是Go的另一个主 要卖点。 虽然这三项是C家族语言的共同特征,但是在Web开发领域,很少有语言同 时拥有这四个特征。 事实上,这就是我当初从Java转到Go进行Web开发的原因。 内置并发编程支持也算是Go的卖点,虽然我个人认为它不是Go的主要卖点。 良好的代码可读性是Go的另一个重要卖点。 我感觉可读性是Go在设计的时候考虑的 我感觉可读性是Go在设计的时候考虑的 最重要的一个因素。 第0章:关于《Go语言101》 5 良好的跨平台支持也应该算是Go的一个卖点,尽管如今这个卖点并不是很新鲜。 一个稳定的Go核心设计和开发团队以及一个活跃的社区也可以被视为Go的一个卖 点。 《Go语言101》做了什么来消除Go编程中可能出现 的困惑? 《Go语言101》做了以下这些方面来试图清除很多Go编程中可能遇到的困惑。 1. 着重于基本概念0 码力 | 591 页 | 21.40 MB | 1 年前3
如何使用 docker 部署一个 beego 项目系统工具盒系统库。 所有必需的资源打包成一个单元将确保无论应用程序部署到哪里都有完全相同的环境。这也有助于维 一个完全相同的开发和生产配置,这在以前是很难追踪的。一旦开始,容器的创建和部署将自动完成。它消除了一大类问题。这些问题主要是由于文件没有 步或者开发和生产环境之间的差异导致的。Docker 帮助解决了这些问题。
相比于虚拟机的优势
且具有比虚拟机快很多的启动时间。Docker 在开发阶段的优势
在开发中使用 Docker 的优势包括:
- 一个用于所有团队成员的标准开发环境
- 更新的依赖性集中化以及在任何地方都能使用相同的容器
- 在开发和生产中完全相同的环境
- 修复了可能只会出现在生产环境中的潜在问题 com/forward?goto=https%3A%2F%2Fhacpai.com%2Farticle%2F1 25961874479" target="_blank" rel="nofollow ugc">准备阶段可参考黑客派中这篇文章
- 安装好
go环境和docker环境的
开始准备:
0 码力 | 5 页 | 269.19 KB | 1 年前3
3.云原生边云协同AI框架实践训练/推理程序, 基于现有AI框 架开 ⚫ 按需启动, docker容器或function ⚫ 不同特性对应不同的worker组, 可部署在边上或云 上, 进行协同 4. Lib ⚫ 面向AI开发者和应用开发者, 暴露边云协同AI功能给 应用 Cloud Edge Local Controll er KubeEdge Cloud Node Edge Node 增量训练 管理 APP运行,识别难例,上传到云上标注服务中 ① 业务APP开发者:开发时使用边云AI Lib库, 集成边云协同增量学习功能 ② 部署业务APP,启动增量学习 ④ 人工定期介入,对样本进行标注。 ⑤ 系统基于任务知识库,自动增量训练产生新模型 ⑥ 更新边缘模型 边云协同增量学习: 小样本和非同分布下,模型越用越聪明 ① 开发者:导入边缘AI Lib库, 开发边云协同联邦学习程序。 ② 启动联邦学习任务,部署训练 M个未来任务 知识库 边云协同终身学习: 云侧知识库记忆,解决新情景下数据异构和小样本 ① AI开发者:提供数据训练产生深模型和浅模型 ② 业务开发者:通过Lib库调用协同模型, 并部署 到边缘 ③ 边侧浅模型推理,判断满足置信度要求则直接返回 ④ 否则送到云上大模型推理 开发者 业务用户: 物业/安保/管理人员 业务用户: 工人/行人 Edge 1 App Shallow0 码力 | 37 页 | 2.36 MB | 1 年前3
2.5 Go在猎豹移动的应用Handshake影响RTT; keepalived&长连接; API动态加速; proxy模式&动态CDN; SOA Web站点是PHP开发的,通过RPC交互; rpc和api都是基于Go开发的服务; 国内DNS->VIP->lvs->tengine->Go; 海外DNS->ELB DNS->ELB->Go; Service之间 使用hash mod region方式对cache进行 扩展; goconf xml,yaml,json,ini? 阶段1:逐idc,逐机器配置修改; 阶段2:svn统一提交修改,每个idc一份; 阶段3:配置统一管理化(agent模型); 一处修改,统一管理; 节点状态查看、回滚配置; 数据安全、强一致性; goconf0 码力 | 24 页 | 4.26 MB | 1 年前3
2-6-Golang 在 Baidu-FrontEnd 的应用-陶春华–2010年,天津大学,计算机专业博士 • 2013年7月,加入百度 –使用GO开发的项目 • 7层流量代理GO-BFE • 应用层防火墙WAF • 百度GOLANG委员会成员 内容提要 • 后台程序开发的需求和难点 –C, Python and Go对比 • 采用Go语言重构BFE –背景和技术路线 –GC问题 –协议一致性 –分布式架构 后台程序开发的需求(1) • 性能 –C/C++, Java –Python –Process, Thread, Event(编程难度) • 开发效率 –语言的描述效率:代码量 –语言的简洁、易用 –库支持 后台程序开发的需求(2) • 大型程序的组织 –数据封装能力 –Namespace • 可测试能力 –单测,覆盖度测量 • 错误检查能力 –编译 –程序异常的trouble shooting 后台程序开发的需求(3) • 上线和运维 –对运行环境的依赖 –对库(动态库)的依赖 (1) • 性能: – 相差10倍以上 – Python: 解释执行,动态类型 • 并发性能 – C:直接用系统的机制 – Python: 自己实现的thread, 只能使用一个CPU • 开发效率 – 相差5-10倍 – 内存的处理是一个难点 – dict/map, list C vs Python (2) • 大型程序的组织 – C: 无namespace • 可测试能力 –0 码力 | 35 页 | 730.17 KB | 1 年前3
go-zero开源项目的成长史Go 专题出品⼈ • 腾讯云开发者⼤会讲师 TOC ● go-zero 的由来 ● go-zero 的现状 ● go-zero 的成⻓阶段 ● go-zero 推⼴思路 ● go-zero 社区发展思考 ● go-zero 的未来 go-zero 的由来 • 源起 2013 • 业务驱动、业务⽀撑 • 经历过的业务 • 经历过的 Go 发展阶段 go-zero 的现状 功能评估 • 如⾮必要,勿增实体 • MVP,最⼩化接⼝ • 社区需求驱动 • PR要求 • CI检测,格式、安全、单测 • 修改或新增代码必须单测覆盖 go-zero 发展阶段 • ⼀年⼀万星 • 两年两万星 • 第三个年头 go-zero 开源伊始 • 开源 ≠ 代码提交到 GitHub • 规划发展路线 • 梳理推⼴思路 • 找渠道、建社区0 码力 | 31 页 | 4.83 MB | 10 月前3
共 69 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7













