云原生go-zero微服务框架设计思考
0 码力 | 29 页 | 5.70 MB | 9 月前本文详细介绍了云原生微服务框架go-zero的设计原则、功能特性及其应用场景。go-zero旨在保持简单、弹性设计、工具大于约定和文档、约束做一件事只有一种方式、封装复杂度以对业务开发友好。其核心功能包括Web & RPC微服务框架、微服务代码生成工具goctl以及通用API定义规范。go-zero的由来源于单体服务的困局、架构选型及无痛切换的需求。其设计涵盖了客户端、API端、Service端、缓存层等多个层面,支持HTTP、gRPC协议,具备日志记录、加解密、鉴权、异常捕获、并发控制、数据统计、监控报警、链路跟踪、自动降载、自动熔断、超时控制等功能。go-zero通过Redis集群、MySQL集群、MongoDB集群、ClickHouse集群等实现数据存储,并通过ETCD集群实现服务发现。
go-zero开源项目的成长史
0 码力 | 31 页 | 4.83 MB | 9 月前文档详细介绍了go-zero开源项目的发展历程,包括其从2013年起源到当前的发展阶段。go-zero在开源伊始便明确了发展路线和推广思路,通过找渠道、建社区、分析用户等方式逐步壮大。社区发展过程中,核心成员和热心成员的贡献至关重要,同时也要应对极个别极端成员。未来,go-zero将继续进行功能规划,并思考开源与商业化的平衡。文档还提到了go-zero的star增长趋势、contributors、用户群体以及质量标准等内容。
Hello 算法 1.2.0 简体中文 Go 版
0 码力 | 384 页 | 18.49 MB | 10 月前《Hello 算法 1.2.0 简体中文 Go 版》是一本面向算法初学者的开源、免费教程,旨在通过动画图解和可运行的代码示例,帮助读者理解算法和数据结构的核心概念。书中内容涵盖复杂度分析、数据结构和算法三大部分,包括数组、链表、栈、队列、哈希表、树、堆、图等数据结构,以及搜索、排序、分治、回溯、动态规划、贪心等算法。本书强调实践的重要性,建议读者通过运行源代码和亲自编写代码来加深理解。此外,书中提供了丰富的动画图解和评论区,鼓励读者互助学习,共同进步。
GoFrame框架介绍及设计
0 码力 | 37 页 | 8.84 MB | 1 年前文档介绍了GoFrame框架,一款模块化、高性能、企业级的Go开发框架。框架强调模块化设计,采用松耦合结构,提供丰富的模块和开箱即用的功能,注重简洁易用和快速接入。框架特点包括统一的开发规范、体系化设计、强大的开发工具链以及完善的本地化支持。文档详细阐述了框架的架构设计、模块管理方式、开发规范化以及组件统一化等核心内容,并讨论了框架在提升开发效率、降低维护成本和提高代码一致性方面的优势。
Golang 入门笔记
0 码力 | 2 页 | 511.29 KB | 1 年前文档系统阐述了Golang的基础知识,包括数据类型、变量、运算符以及基本的数据结构如数组。详细介绍了Golang的语法基础,如关系运算符、逻辑运算符的使用,各类运算符的优先级,以及数值的进制表示和位运算。还涉及了指针、数组、切片、结构体等高级主题,以及程序流程控制的相关内容,包括循环语句、条件语句和函数的使用。
如何消除程序中的数据竞争-周光远
0 码力 | 30 页 | 1.92 MB | 1 年前本文主要讲解了如何在Go语言中消除数据竞争的方法与实践。数据竞争的消除原理通过利用Go语言提供的'Happens Before'关系并结合传递性来实现。文中详细介绍了几种消除数据竞争的方法,包括使用互斥锁、原子操作、通道以及Sync包中的功能(如sync.Map、sync.Cond等)。此外,文中还分析了数据竞争的常见误区,例如标志变量的使用可能导致的问题,以及基础数据类型的数据竞争问题。通过硬件对数据竞争的行为限制,特别是针对int、float、bool等基础数据类型,指出即使大小匹配寄存器宽度,也无法保证修改后的数据立即被其他协程观察到。最后,结合sync.Map的示例展示了如何通过'Happens Before'关系消除数据竞争。
如何向Go官方提交代码-蒙卓
0 码力 | 38 页 | 5.95 MB | 1 年前文档详细介绍了如何向Go官方提交代码的完整流程和相关要求,包括申请Google账号并签署CLA、注册Gerrit账号、安装go-codereview工具、克隆Go官方源代码、切换开发分支、提交修改等步骤。此外,还说明了不同类型的CL(如typo、新特性、bug、release-blocker)的处理方法及提交后的审核流程,包括TryBot测试、核心成员的CodeReview以及ChangeID的使用。
Go性能优化概览-曹春晖
0 码力 | 40 页 | 8.69 MB | 1 年前本文概述了Go语言在生产环境中的性能优化方法,重点分析了CPU使用过高、内存占用过高和GC优化等问题,并提供了相应的优化策略。针对CPU使用高的问题,建议优化JSON序列化、减少MD5哈希使用以及优化调度函数;对于内存问题,提供了堆内存优化、sync.Pool对象复用和offheap内存管理等方法。此外,文档还提到了优化网络通信、减少goroutine数量以及监控和分析工具的使用。
基于gRPC go实现消息发布订阅
0 码力 | 31 页 | 2.42 MB | 1 年前文档详细介绍了如何使用gRPC在Go语言中实现基于Topic的高效消息订阅发布模型。内容包括gRPC的四种通信模式及其应用场景、根据Proto文件生成Go桩代码的方法、订阅者动态注册机制、发布者消息推送流程以及现场案例演示。文档还阐述了gRPC的基本概念及其工作原理,包括服务定义、消息结构以及代码生成工具的使用。
Go在工程实践的错误处理
0 码力 | 30 页 | 3.11 MB | 1 年前文档讨论了Golang在工程实践中的错误处理问题,包括错误信息不完善、错误码管理混乱、调试效率低下等。文档提到了优雅处理错误信息的方法,如日志高亮、错误信息封装、组件化处理框架等,并强调了错误信息手册的必要性,以便快速定位和解决问题。文档还指出了分布式错误处理中的挑战和解决策略。
共 94 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
关键词
go-zero 微服务框架 goctl API定义规范 云原生 开源 社区 功能规划 商业化 算法 数据结构 复杂度分析 动画图解 源代码 模块化设计 统一框架设计 开发规范 框架架构 性能优化 Golang 数据类型 变量 运算符 数组 数据竞争 Happens Before 互斥锁 原子操作 通道 Google账号 Gerrit账号 CL(Change Log/List) CLA(Contributor License Agreement) TryBot测试 CPU使用太高 内存占用过高 GC使用CPU过高 Goroutine数量过高 sync.Pool gRPC Go语言 消息发布订阅模型 Protocol Buffers proto代码生成 错误处理 错误信息 错误码 调试 日志系统













