后端中间件
文章平均质量分 85
落雨便归尘
大三在读,爱cpp,爱go,爱后端,爱生活
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程进阶——线程池的实现
池化技术是一种资源管理策略,它通过重复利用已存在的资源来减少资源的消耗,从而提高系统的性能和效率。在计算机编程中,池化技术通常用于管理线程、连接、数据库连接等资源。我们会将可能使用的资源预先创建好,并且将它们创建在一个池中,当需要使用这些资源时,直接从池中获取,使用完毕后再将它们归还到池中,而不是每次都创建和销毁资源。池化技术的引用场景十分广泛,例如线程池、数据库连接池、对象池等,今天我们主要要探讨的就是线程池。原创 2024-10-24 19:16:20 · 1152 阅读 · 0 评论 -
go语言后端开发学习(七)——如何在gin框架中集成限流中间件
上面就是一些常见的限流策略,虽然说现在限流策略已经不再是单体架构而是迈向分布式,但是万变不离其宗,主要还是基于上面所说的策略进行拓展李文周博客——常用限流策略——漏桶与令牌桶介绍。原创 2024-09-14 23:55:17 · 1863 阅读 · 1 评论 -
go语言后端开发学习(六) ——基于雪花算法生成用户ID
本文介绍了分布式ID生成中的Snowflake(雪花)算法。为解决用户ID安全性与唯一性问题,Snowflake算法生成的ID具备全局唯一性、递增性、高可用性和高性能性等特点。64位ID由符号位(固定为0)、41位时间戳、10位标识位(含数据中心与机器ID)及12位序列号组成。面对ID重复风险,可通过预分配、动态或统一分配标识位解决。Go语言实现示例展示了如何使用第三方包`sonyflake`生成ID,确保不同节点产生的ID始终唯一。原创 2024-08-14 17:26:28 · 1440 阅读 · 0 评论 -
go语言后端开发学习(五)——如何在项目中使用Viper来配置环境
Viper 是一个强大的 Go 语言配置管理库,适用于各类应用,包括 Twelve-Factor Apps。相比仅支持 `.ini` 格式的 `go-ini`,Viper 支持更多配置格式如 JSON、TOML、YAML 等原创 2024-08-13 16:27:17 · 1709 阅读 · 0 评论 -
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法原创 2024-08-11 20:14:32 · 1486 阅读 · 0 评论 -
cpp随笔——如何实现一个简单的进程守护模块
以上就是一个简单的守护模块的全部实现细节,下篇见!原创 2024-07-13 08:17:03 · 1021 阅读 · 0 评论 -
cpp随笔——如何实现一个简单的进程心跳功能
在我们日常后台服务程序运行中,一般是调度模块,进程心跳以及进程监控共同工作,进而实现实现服务的稳定运行,在前面我们介绍过如何去实现一个简单的调度模块,而今天我们所要介绍的就是如何实现进程的心跳,首先什么是进程的心跳呢?,我们在后台服务程序在运行中由于有很多功能需要运行,所以一般是以多进程的方式来同时运行多个后台服务程序,那么问题来了,当有多个后台服务程序在运行时我们如何来确定它们的运行状态呢?结构体中存储了进程的相关信息,同时我们会通过atime和timeout。原创 2024-07-04 15:29:14 · 997 阅读 · 2 评论 -
cpp随笔——如何实现一个简单的调度程序
调度程序用于周期性运行服务,如生成测试数据或定时发送消息。核心思路是通过`fork`创建子进程,父进程退出,子进程由init进程管理,实现后台运行。示例C++代码展示了一个简单的调度器,接收运行周期和程序参数,不断 fork 新进程执行指定程序,`execv` 用于执行命令。当程序结束,调度器等待一定时间(周期)后重启。程序设计确保不受外部干扰,并忽略SIGCHLD信号避免僵尸进程。原创 2024-06-25 15:30:09 · 455 阅读 · 0 评论 -
go语言后端开发学习(三)——基于validator包实现接口校验
在讲解validatorgorm.Model在博客中我设置了两种角色管理员(role=1)与普通用户(role=2),而这也造成了一个问题:我们在添加用户按照正常业务情况是不能直接在前台创建管理员,而这个就需要我们在后端进行参数校验了(备注:其实参数校验这件事前后端都是要做的,但是我们这里介绍主要是后端,就以后端视角来介绍了),而接下来我们以给这个用户模块做参数校验为例,来介绍一下我们如何来实现参数校验以及一些其他的相关操作。原创 2024-06-10 20:43:26 · 1165 阅读 · 0 评论 -
go语言后端开发学习(二)——基于七牛云实现的资源上传模块
在之前的文章中我介绍过我们基于gin框架怎么实现本地上传图片和文本这类的文件资源(具体文章可以参考),但是在我们实际上的项目开发中一般却是不会使用本地上传资源的方式来上传的,因为文件的上传与读取会频繁进行磁盘读写,会造成资源的不必要浪费,所以我们一般会寻找第三方平台来托管我们的一些文件资源,而这也就是我们今天的主题——。原创 2024-06-08 03:15:33 · 1423 阅读 · 0 评论 -
go语言后端开发学习(一)——JWT的介绍以及基于JWT实现登录验证
在RFC标准中,JWTHeader: 头部Payload: 载荷Signature: 签名我们会将这里的每一个部分用一个点而这就是一个JWT令牌的标准结构,接下来网格大家来逐个讲解每个结构的作用。// JWT结构体JWTKey []byte // JWT密钥func NewJWT() *JWT { //新建JWT结构体// 自定义声明Username string `json:"username"` //这里的与gorm中声明的保持一致// 定义相关错误信息var (原创 2024-06-05 12:54:08 · 1779 阅读 · 1 评论
分享