allinssl —— 一个开源免费的 SSL 证书自动化管理平台,集证书申请、管理、部署和监控于一体的 SSL 证书全生命周期管理工具。 ...
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 因为我自己的水平还在山脚下,所以我只看见了眼前的这几座山…… 二十年前我刚入行的时候,我的岗位被称作“后台服务器开发”,如今可能有很多叫法:后端工程师,云原生 ...
最近料理老项目的时候被unsafe坑惨了,这里挑一个最不易察觉的错误记录一下。 这个问题几乎影响近几年来所有的go版本,为了方便讨论我就用最新版的1.24.3做例子了。 线上BUG 我们有一个收集集群信息的线上系统,这个系统有好几个数据源而且数据量比较大。众所周知Go语言总是会在一些关键性能点上拉跨 ...
核心设计理念 传统frp安全方案的不足 静态配置文件管理白名单IP,修改需要重启服务 分布式环境下多节点配置同步困难 缺乏实时阻断恶意IP的能力 Redis作为动态白名单存储的优势 实时生效:IP规则变更无需重启frp服务 集中管理:多台frp服务器共享同一套白名单规则 高性能验证:Redis的极速 ...
一、简介: Gin是Go语言的一个微框架,也是是一个用 Go (Golang) 编写的 HTTP Web 框架,封装比较优雅,API相对友好。Gin具有性能优异和灵活快速等优点。它具有类似 Martini 的 API,但性能比 Martini 快 40 倍。并且支持中间件、Crash 处理、JSON ...
简介 K8stools 是一个 Kubernetes 日常运维辅助工具集,旨在提升运维效率,辅助平台治理与资源优化。功能涵盖资源分析、趋势评估、异常检测、行为采集、成本估算等常见场景,适用于 DevOps、SRE、平台工程团队。 工具地址 功能模块 模块名称 功能说明 costEstimat ...
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 近期做了一个包含 cgo 的 golang 库,为了让依赖的 ffmpeg 等方便引用,于是提供了编译镜像。 相当于库内的代码直接在编译镜像里可以很方便地编译 ...
在企业应用开发中,如果需要对外提供接口,最好的方式是提供 HTTP 接口。为了避免重新实现一套 HTTP 服务代码,建议使用 grpc-gateway 包,将 HTTP 请求转化为 gRPC 请求,以完全复用 gRPC 接口的请求处理逻辑。 grpc-gateway 介绍 grpc-gateway ...
如何拷贝容器内的数据 类似 Linux 的“cp”、“scp”,指定源路径(src path)和目标路径(dest path) # 将 a.txt 拷贝到容器的 /tmp 目录 docker cp a.txt 964:/tmp # 从容器拷贝出文件 docker cp 964:/tmp/a.txt ...
引言 随着微服务和云原生架构的普及,Go 语言以其高并发、低延迟和简洁语法在后端开发领域迅速崛起。然而,原生 Go 在项目结构、依赖管理、配置热更新等方面相比 Java Spring 生态尚有短板。Go‑Spring 正是在这样的背景下应运而生——它汲取 Java 社区成熟的 Spring / Sp ...
在力扣刷二叉树相关题目时,输入一般都是完全层序遍历,我习惯在自己电脑上调试代码,因此才编写下面代码将完全层序遍历数据重建二叉树对象。 生成的结果二叉树一般也只会给出完全层序遍历,无法直观的感受二叉树实际情况,因此我编写代码将二叉树对象生成svg图片,刷二叉树相关题目更清晰直观了。 力扣原题:http ...
Goland终端Terminal的PowerShell不能使用,明明windows上升级了PowerShell 7设置了配置文件,但是只能在windows终端下使用,goland终端下直接失效报错,安装升级PowerShell请看[博客]([Windows11终端升级PowerShell7 - Ha... ...
现在大家做系统开发,都喜欢搞"微服务架构"——简单说就是把一个大系统拆成很多小服务,这样更灵活也更容易扩展。那这些服务之间怎么沟通呢?就得靠一种技术叫 RPC(远程过程调用)。今天我们就来聊聊它的"进化版":gRPC,看看它和传统的 RPC 到底有啥不一样。 一、先搞懂几个概念 什么是 RPC? 可 ...
在微服务架构日益流行的今天,远程过程调用(RPC)技术成为连接各个服务的重要桥梁。本文将详细比较传统RPC与谷歌开发的gRPC框架,通过具体示例展示它们在请求处理、数据格式、性能等方面的差异。 基本概念回顾 RPC (远程过程调用) 是一种允许程序调用另一台计算机上服务的通信协议,是分布式计算的基础 ...
前情提要 上期讲了路由,这期开始就慢慢把处理器的实现都讲完 这期改了栏目名,主要考虑到想要剖析这个项目,Gin占的文字比重反而不高 我保留了之前文章的栏目名,这样你才知道我改了名 账号与权限如何实现? 我们从./router/router.go下这部分代码继续讲 上期我们已经了解了这段代码首先是注册 ...
前情提要 上期我们讲完了mysql和Redis的配置,完成了对 main函数下第一行代码的解析,今天接着继续 (之前写错成steup了。。。) 这是main函数下第二行代码 点击查看SetupRouter代码 func SetupRouter() *gin.Engine { r := gin.Def ...
数据库、Redis和GO 接着上期的内容 这是func InitConfig()最后两行代码 initDB() initRedis() 这两行代码正好对应./config/下的db.go和redis.go 我们就分两部分讲 !!!请注意,本期默认大伙理解mysql和Redis,不作赘述 Gorm-通 ...
起因 跟着UP敲完代码之后感觉什么都没搞懂,只得其型不得其意,这样的学习结果毋庸置疑是没有用的,只会陷入教程地狱的困境,所以我决定从头阅读一遍源码,结合文档和大模型,来学习一遍 准备工作 由于跟写的时候是有边用git进行版本控制的,在完工之后我便将云服务器上的工程上传到我的仓库里了:该项目仓库链接 ...
Golang并没有类的概念,想要实现C++中的多态必须依赖interface,也就是接口 让我们构建一个例子,写植物大战僵尸中的豌豆射手、寒冰射手和樱桃炸弹 首先是C++ 我们已知寒冰射手是豌豆射手的变种,只是子弹变成了冰块;而樱桃炸弹和两种射手又都是植物 点击查看C++代码 #include <i ...
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 如题:一个使用了cgo的golang项目中,为了与c交互,需要把上下文对象: 1 在golang中获得指针 2 使用 unsafe.Pointer(addre ...