golang
文章平均质量分 59
GoLang宝典
JavaPub-rodert
技术&自媒体,专注于面试技巧,擅长Java、Go、MySQL、区块链
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
在 Go 项目中整合 go-commons + Prometheus,一步到位搞定监控
go-commons:Go项目的轻量级可观测性解决方案 go-commons 是一个集成Prometheus监控、系统指标采集、健康检查和中间件工具的基础库。通过一行代码metrics.StartDefaultMetricsServer(":9090")即可自动暴露监控指标,内置中间件可统计QPS、延迟等业务指标。支持自定义指标扩展,兼容Prometheus/Grafana生态,适用于K8s/Docker部署。开发者无需重复编写监控逻辑,即可快速实现服务的可观测性,提升运维效率。 核心功原创 2025-10-14 10:32:06 · 552 阅读 · 0 评论 -
用 go-commons 打造属于你的 Go 项目“瑞士军刀”
go-commons是一个Go语言常用工具库,集成了字符串处理、时间格式转换、文件操作等高频功能模块。通过简单的go get命令即可安装使用,各模块文档清晰易查。例如stringx模块可快速转换字符串格式,timex模块简化时间处理,filex模块提供便捷文件读写。该库具有模块化、高性能、易上手的特点,能显著提升开发效率,避免重复造轮子。适合各类Go项目开发,让Go编码更简洁高效。原创 2025-10-13 13:55:03 · 549 阅读 · 0 评论 -
用 go-commons 打造更优雅的字符串处理工具
Go-commons是一款高效的字符串处理工具库,封装了常用的字符串操作方法,如裁剪、分割、替换、拼接、格式化等。通过简单的API调用,开发者可以避免重复造轮子,提升代码简洁性和安全性。该库支持边界处理、脱敏、大小写转换、模糊匹配等高级功能,相比原生strings包更语义化且不易出错。安装便捷,功能丰富,适用于日常Go开发中的各类字符串处理需求,显著提升开发效率。原创 2025-09-30 13:22:26 · 442 阅读 · 0 评论 -
go-commons/stringutils 与标准库 strings 对比
go-commons/stringutils是对Go标准库strings的增强扩展,提供更丰富的字符串处理功能。相比标准库的基础操作,它新增了判空/默认值、安全裁剪、智能截取、批量查找、对齐填充等实用功能,并优化了拼接、大小写转换等操作。典型应用场景包括表单输入处理、日志格式化和API返回值截断等。标准库适合底层字符串操作,而stringutils则针对常见业务需求提供开箱即用的解决方案,能有效减少重复代码并提高开发效率。原创 2025-09-29 13:18:56 · 437 阅读 · 0 评论 -
用 go-commons 高效处理字符串
go-commons库的stringutils包为Go开发者提供了丰富的字符串处理工具,能有效提升开发效率。该库包含判空检测、裁剪截断、填充对齐、查找替换、大小写转换等常用功能,比标准库strings更贴近业务需求。安装简单(go get),文档完善(GitHub+GoDoc支持),示例代码展示了用户输入清理和日志格式化等典型场景。通过简化字符串操作,使代码更简洁可读,特别适合数据处理、日志输出等高频字符串操作场景。原创 2025-09-29 13:17:41 · 609 阅读 · 0 评论 -
五分钟让你的 Go 程序学会“自己报身体情况”
这,就是。而就是让 Go 程序学会“自己说话”的工具。原创 2025-09-26 10:20:36 · 304 阅读 · 0 评论 -
《让你的 Go 服务自带监控:go-commons 的零成本方案》
《Go 应用轻量级监控方案:go-commons》介绍了为业务应用快速集成监控能力的开源工具。该项目通过嵌入式设计,让 Go 应用直接暴露 QPS、CPU、内存等指标,无需额外部署 exporter 服务。开发者只需引入依赖包,简单几行代码即可通过 HTTP 接口输出监控数据,支持与 Prometheus/Grafana 无缝集成。该方案特别适合个人开发者快速验证、中小团队简化运维,目前支持扩展更多监控指标,欢迎社区共建。项目地址:github.com/Rodert/go-commons原创 2025-09-25 09:11:56 · 345 阅读 · 0 评论 -
嵌入式监控最佳实践:用 go-commons 让你的服务自带系统体检报告
本文介绍了一款轻量级监控工具go-commons,它解决了传统监控方案(Prometheus+Grafana)复杂、node_exporter过重的问题。通过不到50行Go代码即可实现业务指标(QPS)和系统指标(内存、CPU)的实时监控,支持/metrics接口输出数据。该工具具有零成本接入、轻量级、业务系统指标一体化等特点,同时支持后续接入Prometheus+Grafana进行可视化展示。文章还鼓励开发者参与项目共建,完善更多监控指标和功能。原创 2025-09-22 09:36:41 · 389 阅读 · 0 评论 -
用 go-commons 打造一套最小可行监控体系
本文介绍了轻量级Go监控工具go-commons,它能在业务应用中快速构建最小可行监控体系(MVP)。该工具无需复杂配置,零依赖,支持跨平台使用,特别适合小型服务、内网应用和测试环境。通过代码示例展示了如何集成业务指标(QPS)和系统指标(CPU/内存/磁盘),并输出JSON格式的监控数据。相比传统Prometheus方案,go-commons更轻量便捷,未来还将增加网络流量、GC等更多指标支持。项目已开源,欢迎开发者试用和贡献。原创 2025-09-19 14:43:48 · 423 阅读 · 0 评论 -
用 go-commons 打造一个轻量级内置监控系统,让服务开箱即用
《Go服务可观测性新方案:go-commons轻量工具库》摘要: go-commons是一个纯Go实现的轻量级工具库,为Web服务提供开箱即用的健康监测功能。通过简单集成,开发者无需依赖node_exporter或gopsutil等组件,即可让服务自动暴露/metrics或/health接口,实时展示CPU负载、内存占用、磁盘空间等关键指标。该方案具有零依赖、跨平台、轻量级等优势,支持快速生成JSON格式的健康报告。项目现已支持基础系统指标采集,并计划扩展网络流量、进程监控等功能,欢迎开发者参与贡献,共同完原创 2025-09-18 18:33:09 · 542 阅读 · 0 评论 -
在业务应用中集成 go-commons,实现应用+系统双指标监控
Go 服务开发中常需同时监控业务指标(QPS、延迟等)和系统指标(CPU、内存)。传统方案需引入多个库,而开源项目 go-commons 提供了统一解决方案。文章演示如何用 go-commons 构建最小化 Web 服务,实现: 通过 /hello 接口统计 QPS 定时采集内存使用率 通过 /metrics 暴露 Prometheus 格式指标 go-commons 相比 gopsutil 更轻量,内置多种工具函数,并计划扩展更多监控指标。项目欢迎开发者参与贡献,共同完善 Go 生态工具库。原创 2025-09-17 16:35:15 · 991 阅读 · 0 评论 -
Go Commons:一个轻量实用的 Go 工具库,期待你的参与
Go Commons不是要做“大而全”的框架,而是一个简洁实用、可随手调用的工具库。它就像是 Go 世界里的“瑞士军刀”,小巧,却能解决你日常开发的很多问题。我非常期待更多朋友一起来完善它,让 Go 开发者在写代码时,能少一点重复劳动,多一点快乐。🚀。原创 2025-09-16 09:33:58 · 344 阅读 · 0 评论 -
用 go-commons 快速写一个监控 CPU/内存的 Exporter
Go Commons 是一个开箱即用的 Golang 常用工具集,旨在解决开发者日常遇到的重复造轮子问题。该项目汇集了字符串处理、文件操作、HTTP请求等常见功能,并提供了清晰的示例代码,特别适合快速开发和小型项目。通过简单的 go get 命令即可集成,还能轻松与 Prometheus 结合实现监控功能。项目强调"够用+简单"的理念,既适合新手学习,也能帮助开发者减少依赖风险。欢迎开发者贡献代码或提出改进建议。原创 2025-09-15 10:22:35 · 556 阅读 · 0 评论 -
用 Go 打造一个服务器资源指标采集器:结合 Prometheus Exporter 实战
本文介绍了如何使用Go语言开发一个轻量级的Prometheus Exporter,用于监控系统资源指标。通过依赖go-commons/systemutils库,程序可采集磁盘使用情况(总容量、已用、剩余空间)并暴露给Prometheus。主要内容包括:Exporter的优势、环境准备、代码实现(定义指标、采集数据、HTTP接口暴露)、运行效果展示,以及如何配置Prometheus和Grafana进行数据可视化与告警。该方案扩展性强,可轻松添加CPU、内存等监控指标,适用于多节点部署,帮助开发者快速搭建可视化原创 2025-09-13 19:52:19 · 1388 阅读 · 3 评论 -
用 Go 采集服务器资源指标:从原理到实践
本文介绍了在Go语言中采集服务器资源指标的方法。文章分析了手动查看工具与代码采集的区别,列举了CPU、内存、磁盘等常见监控指标维度,并提供了三种Go实现方案:调用系统命令、读取/proc接口和使用工具库封装。重点推荐了go-commons/systemutils工具库,通过示例代码展示其获取磁盘信息的使用方法,并探讨了在实际项目中的四种应用场景。最后总结了选择采集方式、保证兼容性和业务应用等关键点,推荐使用该工具库简化开发工作。原创 2025-09-13 11:57:00 · 790 阅读 · 0 评论 -
小白友好-从 0 开始,用 go-commons 提升 Go 开发体验
《go-commons:10分钟搞定Go字符串处理利器》介绍了专为Go开发者设计的工具库go-commons。该库通过stringutils包提供IsEmpty、Capitalize、Truncate等20+字符串处理方法,支持数字补零(LeftPad/RightPad)等常见需求。采用纯标准库实现,安全轻量,适合新手快速上手和团队统一工具链。安装仅需go get命令,未来还将扩展systemutils系统监控功能。开源项目支持社区贡献,能显著提升开发效率,特别适合需要高频处理字符串的场景。原创 2025-09-13 10:16:04 · 363 阅读 · 0 评论 -
go-commons GitHub 开源项目
Go-Commons:轻量级Go工具库合集 Go-Commons是Rodert开发的一个小型Go语言工具库,主要提供字符串处理(stringutils)和系统工具(systemutils)功能。该项目追求简洁轻量,完全依赖Go标准库,不引入第三方依赖,采用宽松的Unlicense许可证。 核心功能包括: stringutils:空值判断、大小写转换、字符串截断等常用操作 systemutils:预留了CPU、内存、磁盘等系统监控模块结构 项目优势在于: 纯标准库实现,减少依赖冲突 专注高频基础功能 清晰的A原创 2025-09-13 09:57:55 · 755 阅读 · 0 评论 -
一个轻量级的 Go 工具库:go-commons
本文介绍了一个轻量级Go工具库go-commons,旨在解决日常开发中常见的字符串处理等小需求。该库主要包含stringutils和systemutils两个模块,提供了字符串判空、截断、填充等常用功能,未来还将扩展系统相关工具。项目特点包括:只依赖标准库、接口直观易用、采用宽松的Unlicense协议。适用于需要复用基础工具函数的场景,可作为"常用工具抽屉"直接引入项目。作者欢迎开发者使用并参与完善这个开源项目。原创 2025-09-13 08:39:39 · 410 阅读 · 0 评论 -
开源一个轻量级 Go 工具库:go-commons
go-commons是一个零依赖的Go工具库,专注于提供常用的字符串操作和系统工具函数。项目特色包括:完全基于标准库、简洁API设计、完整测试覆盖和中英文文档。核心功能包括字符串空值检查、大小写转换、截断填充、子字符串处理等,以及预留的系统监控模块。采用Unlicense许可证开源,适合各类Go项目快速集成。项目遵循"简单实用"原则,未来计划扩展系统工具并持续优化。原创 2025-09-08 08:11:54 · 1149 阅读 · 0 评论 -
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
摘要:Golang中map的key类型必须是可比较的,包括基本类型(bool/数字/string)、指针、接口和字段全可比较的结构体。不可作为key的类型有切片、map、函数以及含不可比较字段的结构体。判断标准是类型是否支持==操作,需注意interface{}作key时可能运行时panic,以及浮点数精度问题。理解这些规则有助于避免编译错误和优化数据结构设计,是Golang面试的常见考点。原创 2025-06-08 10:26:32 · 1305 阅读 · 0 评论 -
Golang 老题,生产者和消费者模型,先后关闭通道的问题
这是一个关于通道关闭时机的问题,让我们比较在不同比例的生产者和消费者情况下,提前关闭通道与延后关闭通道的区别。原创 2025-03-20 18:45:24 · 1216 阅读 · 0 评论 -
golang 的 goroutine 和 channel
带缓冲的 channel 在缓冲区未满时,发送操作不会阻塞;在缓冲区有数据时,接收操作不会阻塞。无缓冲的 channel 在发送和接收操作时会阻塞,直到另一端准备好。不论 1:n 还是 n:1 或是 n:m,都可以使用。可以在 select 语句中使用 channel。下面这种模型来操作。原创 2025-03-20 17:47:20 · 626 阅读 · 0 评论 -
Godep是什么??在GoLang中作用是什么
当项目目录下有 vendor 目录时,go 工具链会优先使用 vendor 内的包进行编译、测试等。Godep 通过扫描项目文件引入的第三方包,将依赖包的代码复制到 vendor 目录下,并记录依赖包的版本信息到 Godeps/Godeps.json 文件中。这样,在不同的开发环境和部署环境中,都可以通过 Godeps 记录的依赖信息,准确地还原项目的依赖状态,确保项目的可重复构建和一致性。简单来说就是当前项目的所有golang第三方依赖,就和 python 的 venv 类似。原创 2025-03-20 17:41:46 · 417 阅读 · 0 评论 -
GoLang 反射
在Golang中,反射是通过reflect包来实现的。反射允许程序在运行时获取任意类型的对象的类型信息和值,并对其进行操作。而Golang通过reflect.Value直接获取对象的方法并调用。反射是一种在运行时动态操作对象、获取类型信息、调用方法等的能力。通过反射判断字段类型,这种情况比较常见。原创 2025-03-18 18:03:32 · 621 阅读 · 0 评论 -
golang接口用法-代码案例
一个类型只要实现了接口中定义的所有方法,就认为该类型实现了该接口。接口不关心具体的实现细节,只关心方法的签名(即方法的名称、参数和返回值类型)。通过定义接口,我们可以隐藏实现细节,只暴露必要的方法,从而提高代码的可维护性和可读性。:通过接口,不同类型的对象可以实现相同的方法,从而实现多态行为。:接口在单元测试中也很有用,可以轻松替换被测试对象的实现,从而实现对被测代码的独立测试。:通过定义一组接口,不同的插件可以实现这些接口,并在程序运行时动态加载和使用插件。方法,那么任何实现了该方法的类型(如。原创 2025-03-18 17:10:59 · 709 阅读 · 0 评论 -
2025面试Go真题第一场
前几天参加了一场面试,GoLang 后端工程师,他们直接给了我 10 道题,我留了一个截图。原创 2025-02-25 10:32:16 · 1678 阅读 · 0 评论 -
GoLang 协程泄漏的原因可能是什么?
今天面试遇到的一个问题,记录一下。原创 2025-02-21 13:14:21 · 784 阅读 · 0 评论 -
如何学习一门新技术,十年 MarkDown 程序员怎么做
谈使用场景之前,看看他有哪些功能。原创 2024-07-10 13:45:26 · 485 阅读 · 0 评论 -
生日判断星座【GO】
【代码】生日判断星座【GO】原创 2024-07-09 11:01:54 · 463 阅读 · 0 评论 -
redis 如何使用 scan, go语言
keys VS scan,redis 如何查询大列表原创 2024-07-05 15:45:27 · 634 阅读 · 0 评论 -
panic: concurrent write to websocket connection【golang、websocket】
gorilla/websocket 库并不是为并发写操作设计的,因此你需要确保对每个WebSocket连接的写操作在任何时候只由一个goroutine执行。在发送Ping消息的goroutine中,我们在写操作之前获取互斥锁,并在写操作完成后释放锁。请注意,如果还有其他goroutine需要写入WebSocket连接,它们也需要在执行写操作前获取互斥锁,并在完成后释放锁。解决这个问题的方法是使用同步机制,比如互斥锁(sync.Mutex),来同步对WebSocket连接的写操作。原创 2024-05-23 10:56:46 · 1205 阅读 · 0 评论 -
[Golang] RC4加解密
拿去直接用,直接Ctrl+C/V。原创 2024-03-28 15:53:35 · 576 阅读 · 0 评论 -
【go】两数求和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。原创 2023-10-28 11:56:03 · 453 阅读 · 0 评论 -
go语言调用python脚本
在 go语言中调用 python 程序,你可能会用到。原创 2023-08-24 15:00:01 · 1452 阅读 · 0 评论 -
【已解决】protoc-gen-go: program not found or is not executable Please specify a program using
MAC m1 环境下。原创 2023-08-16 18:33:16 · 2470 阅读 · 0 评论 -
【golang】golang实现冒泡排序
【代码】【golang】golang实现冒泡排序。原创 2023-05-25 23:49:05 · 332 阅读 · 0 评论 -
【golang】golang 字符串切片排序
return strs [ i ] < strs [ j ] // 字母序排序 }) // strs is now ["a", "b", "c"]原创 2023-05-24 14:30:44 · 699 阅读 · 0 评论 -
【golang】Go 判断字符串是否包含指定字符
【代码】【golang】Go 判断字符串是否包含指定字符。原创 2023-05-24 14:21:22 · 603 阅读 · 0 评论 -
【golang】golang string 转 int64
在 Go 语言中,可以使用内置函数 strconv.ParseInt() 将字符串转为 int64 类型。原创 2023-05-24 14:01:24 · 2023 阅读 · 0 评论 -
【Golang】判断切片是否为空(切片不能直接比较)
切片之间是不能比较的,我们不能使用==操作符来判断两个切片是否含有全部相等元素。切片唯一合法的比较操作是和nil比较。一个nil值的切片并没有底层数组,一个nil值的切片的长度和容量都是0。所以要判断一个切片是否是空的,要是用len(s) == 0来判断,不应该使用s == nil来判断。要检查切片是否为空,需始终使用。来判断,而不应该使用。原创 2023-05-19 14:05:11 · 458 阅读 · 0 评论
分享