Golang 运维开发实战手册
文章平均质量分 76
🔥《Golang 运维开发进阶指南》专栏上线!专为运维工程师与 Golang 开发者打造,深度融合云原生技术与自动化实践。从基础工具开发到分布式系统运维,覆盖实战场景下的技术选型与解决方案,带你突破运维开发瓶颈,掌握 Golang 在容器编排、服务监控等领域的核心技能,解锁高效运维新范式!
大崔的Linux导航
运维工程师,全栈开发,后端使用过C#,PHP,Python,Golang,前端使用JQuery,Vue,微信小程序。乐于分享一些运维和开发,Linux性能优化思路和工具等相关的内容。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Gin 框架核心介绍 + 快速上手实战
Gin 是一个基于 Go 语言(Golang)开发的高性能 HTTP Web 框架,它借鉴了 Martini 框架的易用性,同时通过自研的 Radix 树路由实现了远超 Martini 的性能(官方数据:路由性能比 Martini 快约 40 倍),并且内存占用极低。Gin 是 Go 语言生态中高性能、轻量简洁的 Web 框架,主打高效接口开发,适合高并发场景。上手 Gin 的核心步骤:准备 Go 环境 → 初始化 Go Module → 安装 Gin → 初始化引擎 → 定义路由 → 启动服务。原创 2026-01-29 22:27:20 · 242 阅读 · 0 评论 -
Redis 协议(RESP)详解:请求与响应解析
Redis 采用 RESP(Redis Serialization Protocol,Redis 序列化协议)作为客户端与服务器之间的通信协议。简单易实现二进制安全高效解析部分人类可读本文档将按照请求和响应两个维度详细解析 Redis 协议,并提供完整案例。原创 2025-09-16 23:02:29 · 495 阅读 · 0 评论 -
基于Golang + vue3 开发的 kafka 多集群管理
主要是解决,Kafka多集群分散运维、监控盲区、权限混乱、数据孤岛等痛点;提升运维效率,解决命令行低效的问题。kafka数据通过yaml文件保存,支持前端增删改查yaml文件。核心框架:Vue3 + Vite(构建效率与性能优化)这里显示了Brokers列表和Topic列表。UI 组件库:Ant Design Vue。Kafka 交互:sarama。语言:TypeScript。安全: 基于Basic认证。核心语言:Golang。这里展示了消费者组列表。Topic列表,详情。Web 框架:Gin。原创 2025-09-09 13:07:44 · 235 阅读 · 0 评论 -
【基础】Golang 执行命令shell命令 + Start和Run方法详解
这两种方法在执行方式和适用场景上有显著区别,本文将详细解析它们的差异,并通过示例说明如何使用。Scanner 会在读取到换行符(\n)或缓冲区满时立即返回,无需等待整个命令结束。方法,开发者可以灵活控制命令的执行方式,满足不同的业务需求。主程序在命令执行期间可处理其他逻辑。等待命令完成后,打印完整输出。获取命令的标准输出管道。原创 2025-07-01 17:20:03 · 381 阅读 · 0 评论 -
【基础】Golang语言开发环境搭建(Linux主机)
以上步骤完成后,你的Linux主机就具备了完整的Go开发环境。如果需要更高级的配置(如代理设置、交叉编译等),可以进一步调整相关环境变量。推荐使用VS Code或GoLand作为开发工具,安装Go扩展后即可获得智能提示、调试等功能。原创 2025-06-30 11:18:15 · 602 阅读 · 0 评论 -
Go 开发必备!用 Redis 搞定高并发场景的 80% 难题(附实战案例)
在Golang开发里,Redis是个能高效解决数据存储与交互难题的工具。当你需要快速缓存数据,像用户登录信息、商品详情这种常被访问的数据,避免频繁读写数据库拖慢速度时,它能派上用场;要实现分布式锁,保证多服务器环境下操作的唯一性和安全性,它也很在行;想进行消息的发布与订阅,让不同服务间能实时通信;或是完成计数器统计、排行榜展示等功能,Redis都能轻松应对。它凭借内存存储的高速性、丰富的数据结构和强大的扩展能力,为高并发、高读写性能需求的场景提供了可靠的解决方案。原创 2025-05-29 13:28:23 · 654 阅读 · 0 评论 -
项目开发中如何Git如何保持官方补丁更新
为方便使用git版本控制升级官方补丁,最好是将你的仓库创建一个分支用于开发,保留一份分支用于合并GFast官方发布的补丁,这样你可以快捷将官方补丁覆盖到该分支,并合并到你自己的开发分支。原创 2025-05-22 16:58:50 · 252 阅读 · 0 评论 -
Go语言gopacket库的HTTP协议分析工具实现
本文介绍了如何使用Go语言的gopacket库开发一个专注于HTTP协议分析的工具,以解决传统抓包工具在特定场景下的局限性。该工具通过逐步优化,实现了客户端IP排行和请求URL排行等统计功能。文章首先分析了传统抓包工具的不足,如学习门槛高、输出信息分散、缺乏特定协议深度分析和实时统计功能不足等,并阐述了自定义HTTP分析工具的优势,包括专注HTTP协议、自动化统计、高度可定制和易于集成。接着,文章详细介绍了工具的实现过程,包括技术选型、核心功能模块(数据包捕获、协议解析、HTTP解析、统计和输出模块)以及代原创 2025-05-22 13:06:38 · 523 阅读 · 0 评论 -
golang运维开发-gopsutil(2)
Golang开发经典案例,点击下方链接Golang开发-案例整理汇总。原创 2025-01-14 15:50:21 · 375 阅读 · 0 评论 -
golang运维开发-gopsutil(1)
当出现服务器异常时,运维人员通常会通过很多linux命令分别分析服务器的负载,CPU,内存,磁盘,网络,进程等信息来判断问题。通常这需要用到很多Linux工具,比如,top vmstat free iostat sar netstat 等。但是一些场景,服务器上都没有全面的命令工具可以使用。而且不同发版的操作系统也有很大差异。原创 2025-01-14 11:30:45 · 765 阅读 · 0 评论 -
Golang开发必备-好用的HTTP客户端httplib(beego)
golang的net/http模块可以用来HTTP的客户端请求,但是使用方式不是很方便,有没有更好用的HTTP客户端请求的模块呢。答案是有的,beego框架下的httplib模块github地址:https://github.com/astaxie/beego/blob/develop/client/httplib/README.md。原创 2025-01-06 14:39:19 · 460 阅读 · 0 评论 -
GolangWeb开发- net/http模块
Go语言内置的net/http包提供了HTTP客户端和服务端的实现。文档链接: https://pkg.go.dev/net/httpGo语言内置的net/http包,可以满足HTTP客户端和服务器端的使用,但是在实际使用中,我们有更好更方便的选择,HTTP端,可以用beego/httplib模块,服务器端,经典的有Gin和Beego等模块。原创 2025-01-06 11:27:12 · 640 阅读 · 0 评论 -
Golang开发-案例整理汇总
CSDN的文章缺少一个索引所有文章分类的地方,所以手动创建这么一个文章汇总的地方,方便查找。Golang开发经典案例汇总。原创 2025-01-06 09:40:28 · 324 阅读 · 0 评论 -
Golang Web开发- Gin不使用Nginx部署Vue项目
当我们应用后端用Gin框架,前端使用Vue开发,那么在最后部署上线的时候,一般是前端Vue构建的dist目录的文件部署在Nginx上,Nginx反向代理到Gin后端代码。但是这样的部署方式略微繁琐,尤其只是临时启动下应用的时候,没必要再部署一个Nginx。下面我们将前端部署项目使用较多的结合Gin 框架实现前端构建产物和Gin打一个包部署。vue已经是目前最流行的前端开发方式了,对于Jquery,Layui这类对于小功能可以使用,稍微复杂的还是考虑使用vue进行前端开发。原创 2024-05-26 21:30:40 · 948 阅读 · 0 评论 -
Golang并发编程-协程goroutine任务取消(Context)
在实际的业务种,我们可能会有这么一种场景:需要我们主动的通知某一个goroutine结束。比如我们开启一个后台goroutine一直做事情,比如监控,现在不需要了,就需要通知这个监控goroutine结束,不然它会一直跑,就泄漏了。我们都知道一个goroutine启动后,我们是无法控制他的,大部分情况是等待它自己结束,那么如果这个goroutine是一个不会自己结束的后台goroutine呢?比如监控等,会一直运行的。原创 2024-05-25 21:40:00 · 1250 阅读 · 0 评论 -
Golang并发编程-协程goroutine的信道(channel)
Goroutine的开发,当遇到生产者消费者场景的时候,离不开 channel(信道)的使用。信道,就是一个管道,连接多个goroutine程序 ,它是一种队列式的数据结构,遵循先入先出的规则。// 先声明再初始化var 信道实例 chan 信道类型信道实例 = make(chan 信道类型)// 上面两句合并信道实例 := make(chan 信道类型)关闭一个未初始化的 channel 会产生 panic重复关闭同一个 channel 会产生 panic。原创 2024-05-25 15:20:18 · 1261 阅读 · 0 评论 -
第二节:kafka golang sarama的ClusterAdmin类操作
上一节,我们已经简单接触了sarama包的使用,通过Client类型操作,获取了kafka的元数据信息,如果我们需要获取kafka,topic详情信息呢,下面我们使用ClusterAdmin类的使用ClusterAdmin是Kafka的管理客户端,支持管理和检查主题、代理、配置和ACL。所需的最低代理版本为0.10.0.0。具有更严格要求的方法将指定所需的最低代理版本。您必须在客户端上调用Close()以避免泄漏import ("fmt""log"if err!原创 2024-02-20 16:30:17 · 462 阅读 · 0 评论 -
第三节:kafka sarama 遇到Bug?
前面两节,我们已经简单应用了sarama的两个类型Client和ClusterAdmin,其中有一个案例是获取集群的ControllerId,但是在后面的测试过程过程中,发现一个问题,返回的ControllerID是随机的,这个是什么原因呢,我们下面分析下sarama本身也是遵循了kafka kraft版本的代码行为,就使用来说,对客户端是无所谓的,有人相应就好,但是作为运维和排查问题角度,还是需要一个方法,获取到目前集群的Controler的Leader具体是哪个节点。我们可以继续关注这个问题。原创 2024-02-22 12:26:47 · 749 阅读 · 0 评论 -
第一节:kafka golang sarama初体验
关于Kafka的开发库,以Java的居多,Golang语言的开发库,主要推荐的是sarama项目地址:这个项目之前地址是https://github.com/Shopify/sarama 通过源地址也可以访问本节,我们简单通过golang语言,操作sarama.NewClient对象,查询了kafka集群的topic列表,brokers列表,控制器ID。希望大家对sarama有了初步认识。原创 2024-02-20 16:05:03 · 1007 阅读 · 0 评论 -
Golang并发编程-协程goroutine初体验
学习Golang一段时间了,一直没有使用过goroutine来提高程序执行效率,在一些特殊场景下,还是有必须开启协程提升体验的,打算整理几篇关于协程的原理的文章和案例,结合工作场景将协程使用起来。本节内容,介绍了Goroutine的使用,为了保证 main goroutine 在所有的 goroutine 都执行完毕后再退出,我们又学习了WaitGroup。目前呢,因为我们没有任何的数据交换,仅仅是开启协程执行并发的任务,因此没有用到信道。原创 2024-05-24 21:57:16 · 1265 阅读 · 0 评论 -
Golang案例开发之gopacket抓包三次握手四次分手(3)
TCP通讯的三次握手和四次分手,有很多文章都在介绍了,当我们了解了gopacket这个工具的时候,我们当然是用代码实践一下,我们的理论。本节内容就是好的实践。相信,通过今天的实践,你一定和我一样对TCP的协议的理解更加深刻。原创 2024-03-22 22:25:06 · 2212 阅读 · 3 评论 -
Golang案例开发之gopacket监听网卡抓包(2)
本节实战,监听指定网卡,进行网络抓包,根据分层,解析不同分层包的内容。本节内容,对gopacket抓包有了一个初步的认识,后期我们需要优化工具。原创 2024-03-19 13:51:55 · 1070 阅读 · 2 评论 -
Golang案例开发之gopacket抓包入门(1)
说起网络抓包,我们一定听过大名鼎鼎的Tcpdump和WireShark。他们分别是Linux平台和Windows平台的抓包工具。Wireshark抓包工具,其底层抓包库是npcap(以前是winpcap);Tcpdump,其抓包库是libpcap;本节,主要是搭建下开发环境,尝试获取网络设备的接口。下一节,尝试在一个网络设备上抓包。原创 2024-03-18 14:26:20 · 1537 阅读 · 0 评论
分享