自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 收藏
  • 关注

原创 第五章 设备管理

信息交换的单位分类:块设备(传输速率较高、可寻址对他可随机读写任一块)如:磁盘等——数据传输的基本单位是“块”、字符设备(传输速率较慢、不可寻址、在输入/输出时常采用中断驱动方式)——数据传输的基本单位是字符。使用特性分类:人机交互型(鼠标等外设)、存储设备(移动硬盘等)、网络通信设备(光猫等)传输速率分类:低速、中速、高速。概念:向外部输入和输出的设备。

2026-01-02 13:04:41 125

原创 TopK问题(堆排序)-- go

TopK问题(堆排序)-- go实现

2025-08-23 15:08:53 344

原创 日志收集(ELK)

ELK安装部署

2025-08-22 00:05:35 1199

原创 go链路追踪

go链路追踪:链路追踪简要介绍、grpc+gin集成jaeger

2025-08-19 14:44:06 1199

原创 es下载、安装、部署以及集成和mysql数据同步

es下载、安装、部署以及集成和mysql数据同步

2025-08-17 17:05:05 1201

原创 HTTPS测试和基础认证方式

虽然使用摘要可以避免密码以明文方式发送,一定程度上保护了密码的安全性,但是仅仅隐藏密码并不能保证请求是安全的。因为请求(包括密码摘要)仍然可以被截获,这样就可以重放给服务器,带来安全问题。为了防止重放攻击,服务器向客户端发送了密码随机数 nonce,nonce 每次请求都会变化。客户端会根据 nonce 生成密码摘要,这种方式,可以使摘要随着随机数的变化而变化。服务端收到的密码摘要只对特定的随机数有效,而没有密码的话,攻击者就无法计算出正确的摘要,这样我们就可以防止重放攻击。

2025-07-21 00:51:03 1169

原创 windows11下基于docker单机部署ceph集群

集群已经部署完毕,下面是 用于开发的步骤。

2025-07-19 15:53:57 484

原创 第四章 文件管理

第四章 文件管理

2025-06-11 17:21:07 681

原创 第三章 内存

第三章 内存

2025-06-08 14:27:08 715

原创 第二章 进程管理

第二章 进程管理

2025-06-04 21:33:43 672

原创 第一章 操作系统概述

第一章 操作系统概述

2025-05-28 09:18:45 666

原创 团队协作 git 必知必会

git

2025-05-27 12:56:48 1110

原创 项目部署react经历

宝塔部署react项目

2025-05-27 10:42:55 400

原创 支付宝沙箱测试环境

支付宝沙箱测试环境

2025-05-24 08:26:49 1049

原创 CAP分布式理论

CAP分布式理论

2025-05-20 16:50:43 1184

原创 interface接口和defer场景分析

interface和defer用法

2025-05-19 22:54:49 349

原创 有关Groutine无限创建的分析

有关Groutine无限创建的分析

2025-05-19 22:03:09 849

原创 Go内存管理

Go内存管理

2025-05-19 15:50:08 1527

原创 GC全场景分析

GC全场景分析

2025-05-18 21:29:19 1042

原创 go语言协程调度器 GPM 模型

gpm模型梳理

2025-05-18 20:19:20 1357

原创 基于redis的定时状态更新

下面是一个简单的示例,展示如何使用redis实现状态更新,从而满足在某些场景下,既需要频繁更新状态,又需要保证状态的实时性。以及定时更新状态的需求。

2025-05-08 16:47:29 497

原创 go基于redis+jwt进行用户认证和权限控制

基于 jwt 实现用户认证基于 redis 记录用户的角色和权限。

2025-05-07 22:23:36 426

原创 迪杰斯特拉算法总结

首先,学过数据结构的人都知道,迪杰斯特拉算法是用于计算“单源最短路径问题的”。单源最短路径就是从某一点出发,到任意点的距离。

2024-12-24 14:23:27 1065

原创 基于base64Captcha实现验证码功能

我们可能最初会想到使用redis数据库进行缓存,但是一般的使用场景中,我们其实只需要一个短暂的答案就可以了,所以并不需要,当然也可以。追问:在验证码进行验证的时候,我只是获取了用户的输入,就直接调用Verify方法进行验证了。那么之前生成的验证码的答案在哪里?答案:其实该库自己维护一个全局变量,当使用库时,就已经进行了初始化。MemoryStore用来短暂的存储当前生成的验证码。前端验证代码:(比较简陋,我直接把登录和注册放到一起,可以直接尝试)下面的代码中只有数字、字母、数字+字母的形式。

2024-12-18 22:10:24 699

原创 grpc补充机制

gRPC 进阶——Validator 验证器_protoc-gen-validate-CSDN博客。

2024-12-18 21:06:51 480

原创 gRPC拦截器

做过web开发的都知道拦截器,拦截器就是一个做事先或事后处理的一个机制,使得琐碎的其他业务得到自动化式的进行。在服务端和客户端,他们的拦截器的使用目的不同。客户端:我们可能会在请求发送之前,对请求的内容做进一步的补充,比如:添加认证信息(如 JWT 令牌)到请求头中,这样服务端在接收到请求后,就可以根据请求头中的认证信息来验证客户端的身份,从而实现安全的服务访问。日志记录、服务发现等服务端:拦截请求,对请求的数据校验?认证信息身份校验等等。

2024-12-17 21:44:29 462

原创 认识GO--gRPC的metadata

元数据。他就是我们的对数据进行封装的一个单位化数据。在某些理解上,他是一个。他们是一个整体。这么说有点抽象,举例说明吧:目前我们有一个请求,请求的数据是:用户名+密码。这就是我们常说的”数据“。那么请求的方法是什么?编码是什么?token呢?cookie呢?他们提供了有关其他数据的信息,用于描述数据的特征、来源、用途、关系等诸多方面。因此,我们将他们也封装到一起,打包成我们的metadata,一起发送,一起接收......那么在go语言中,metadata又是什么?

2024-12-16 22:25:23 1322

原创 protobuf进阶

我们这里提供了代码,以及代码中的注释来理解所有进阶知识点。下面将模拟远程调用:此时,我有两个项目:1. protobuf 2.protobuf_client。

2024-12-16 19:04:45 540

原创 初识RPC

RPC(Remote Procedure Call)即,是一种计算机通信协议。它允许一台计算机(客户端)上的程序调用另一台计算机(服务器)上的子程序或函数,就好像这个调用是本地的一样,而实际上涉及到网络通信来跨越不同的地址空间。与之对应的就是本地调用,最常见的就是 函数调用。然而,远程过程调用时会面临很多问题:(原本的本地函数放到另一个服务器上去运行。但是引入很多新问题)1. Call的id映射2. 序列化和反序列化3. 网络传输1. 将这个调用映射为 Call ID。

2024-12-10 14:39:22 849

原创 GO并发编程

无缓冲channel:本质是一种同步通道,他要求读写操作紧密进行。所以,在单channel下,如果在无缓冲channel中进行读写,此时就会在第一次操作处阻塞,发生死锁。

2024-12-09 19:10:21 1553 1

原创 GO--基于令牌桶和漏桶的限流策略

漏桶,顾名思义就是一个漏斗,漏斗嘴的大小是固定的,所以不管漏斗现容量多大,都不会影响漏斗出水的速度。类比到我们的web服务中,我们可以为web服务准备一个固定速率的请求处理器(漏桶),对我们的请求,如果此时桶内请求量超过了桶的最大容量,那么就执行特定的抛弃策略(直接丢弃或者阻塞请求)。与此同时,对我们的请求 ,进行固定速率的处理。这样就会形成一种限流的效果。令牌桶的原理其实和漏桶差不多,漏桶相当于在单位时间(比如1秒内处理多少个请求)。那么令牌桶就是表现的间接了点。

2024-12-06 18:31:48 1310

原创 使用GO--Swagger生成文档

在前后端分离的项目中,后端配置swagger可以很好的帮助前端人员了解后端接口参数和数据传输。 是一个功能全面且高性能的Go语言实现工具包,用于处理Swagger 2.0(即OpenAPI 2.0)规范。它提供了丰富的工具集,帮助开发者在Go环境中解析、生成、验证和操作API描述文件。(OpenAPI 2.0 :用于生成、描述、调用和可视化RESTful Web服务。它允许你使用YAML或JSON格式定义API接口,包括路径、参数、请求方法、响应类型等信息。)定制化支持: 具备强大的自定义能力,通过供应商扩

2024-12-06 15:33:09 1735

原创 图的创建和基础操作(数据结构实验作业)

上面是我的实验作业要求:(看不到的同学,移步:https://gitee.com/young-lion/picture-bed/raw/master/202412051939715.png)下面的代码使用的是go语言:上面代码的最后,我结合邻接矩阵和邻接表的特点,对图的操作做了一个简单的方法总结,如果对你有用,请点个赞?收个藏?或者加个关注?

2024-12-05 19:45:37 329

原创 jwt身份验证三方库

复习:jwt是一个三方库,提供了一系列方法(JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token 实现方式,目前多用于前后端分离项目和 OAuth2.0 业务场景下。用于生成token,解析token,加密token,解密token,生成token的payload,生成token的header,生成token的signature,生成token,验证token等。

2024-12-04 02:19:24 643

原创 雪花算法生成ID

雪花算法的组成:雪花算法是由64位组成:符号位(1)、时间戳(41)、机器码(5[数据中心]+5[机器ID])、计数器(12)下面将简单介绍雪花算法的简单应用和在web应用中的使用。

2024-12-01 19:06:43 944

原创 密码加密策略

其中,由于MD5安全性较低,所以我们可以将第一次生成的密码,加入到MD5的hash计算中,再次计算出MD5的哈希校验和(Sum),将sum格式化输出(%x)就是我们的密码字符串(二次加密)其中,md5相对不安全(但是也够用了)。bcrypt是专门为密码加密设计的算法。MD5和bcrypt。

2024-12-01 18:09:14 320

原创 viper——管理配置文件

是适用于Go应用程序的完整配置解决方案。设置默认值从JSONTOMLYAMLHCLenvfile和格式的配置文件读取配置信息实时监控和重新读取配置文件(可选)从环境变量中读取从远程配置系统(etcd或Consul)读取并监控配置变化从命令行参数读取配置从buffer读取配置显式配置值。

2024-11-24 20:47:19 997

原创 validate简单入门

场景:我们写代码发现:有好多验证字段的验证规则相同,虽然可以直接CV,但是还是不够优雅,这时我们可以利用起别名的方法提高代码复用性比如:// 注册别名​Username string `json:"username" validate:"required,min=4,max=20"` // 必填字段,限制长度Password string `json:"password" validate:"required"` // 必填字段。

2024-11-17 19:29:35 1421

原创 GO语言编程之旅

所以,当您在defer语句中使用参数时,重要的是要记住这些参数是在defer语句执行时立即求值的,而不是在defer函数实际调用时。这意味着在defer语句之后的任何对参数的修改都不会影响defer函数中的参数值。切片的长度是它包含的元素个数。切片的容量是从它的第一个元素开始数,到其底层数组元素末尾的个数。你可以通过len(s)获取切片的长度,通过cap(s)获取切片的容量。你可以通过重新切片来扩展一个切片的长度,只要不超过它的容量。切片的长度是它包含的元素个数。

2024-10-20 20:46:00 1154

原创 苍穹外卖随记(二)

这样,在请求到达 Controller 层之前,就可以先检查缓存,如果缓存命中,则直接返回缓存数据,不再调用后续的 Service 层和 Repository/DAO 层。情景:由于大量人员参与点餐,那么每一次查看商品(查看分类、查看菜品等),都会对应和数据库进行一次io,那么这样就会使得mysql数据库的负载增大,查询效率降低,数据显示的速度慢,也就是导致系统响应慢,客户的使用体验较差。不然压根就没有数据!在分类菜品的情况下,可以使用分类的ID或者名称作为Key的一部分,以确保它能够准确反映缓存的内容。

2024-09-17 21:26:13 1213

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除