自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Go万字洗髓经】Golang中sync.Mutex的单机锁:实现原理与底层源码

详细分析了sync.Mutex的核心原理,重点探讨了锁从自旋到阻塞的升级过程,以及自旋+CAS机制和饥饿模式的设计与实现。深入剖析了sync.Mutex的底层源码,包括Mutex结构的定义、全局常量的作用,以及Lock和Unlock方法的具体实现逻辑。文章还探讨了第一次CAS加锁成功的前提条件、竞态检测的实现,以及lockSlow和unlockSlow方法中的关键逻辑,如局部变量的作用、新旧状态值的替换、阻塞挂起机制以及饥饿模式下的特殊处理。

2025-03-26 22:17:33 6378 2

原创 【Go万字洗髓经】Golang内存模型与内存分配管理

对Golang的内存模型和内存分配与管理进行了全面梳理,探究了一些核心组件,如mcache、mheap、mcentral,并且从GMP视角出发,研究了内存模型,借助对象分配流程,来梳理巩固内存模型的理解和概念。

2025-03-10 16:17:57 18885 1

原创 Protobuf原理与序列化

探究Protobuf的编码原理,更好的理解Varint编码方式、TLV格式。

2025-02-27 22:01:09 9165 1

原创 使用Ollama+Langchaingo+Gin通过定义prompt模版实现翻译功能

使用Ollama+Langchaingo+Gin通过定义prompt模版实现翻译功能

2025-03-30 18:38:49 3742

原创 Ollama+Langchaingo+Gin开发本地LLM简单应用

我的第一篇与llm有关的博客,使用ollama+langchaingo+gin快速构建简单应用。

2025-03-30 17:45:17 3782

原创 【Go | 从0实现简单分布式缓存】-7:增加etcd和gRPC功能

在GeeCache的基础上增加etcd和gRPC功能。

2025-03-12 21:33:00 4413

原创 【Go | 从0实现简单分布式缓存】-6:GeeCache总结

总结之前 GoCache 的实现过程,这是一个从零开始用 Go 语言实现的分布式缓存系统。详细介绍了缓存淘汰策略LRU、并发控制、一致性哈希算法、分布式节点通信、缓存击穿的解决方案以及优化方向。

2025-03-11 22:53:42 8657

原创 【GoTeams】-5:引入Docker

一直对docker的实战有点少,并且随着hub被封之后,也有点惧怕用docker这些,比如写docker-compose进行容器编排,写dockerfile文件编译镜像,编译go程序为可执行文件等,通过本次实战,熟悉了不少,也对整个部署运营有了了解,实战大于学习,之前看过再多的知识,不如自己实战效果更好一些,学习和收获会更大。勇于挑战才能进步。

2025-03-08 14:45:19 11019

原创 【GoTeams】-4:为项目引入etcd

大概梳理下etcd和gRPC之间的关系,但是感觉还不是很懂,后边挑个空再好好搞清楚。

2025-03-07 22:44:31 10888

原创 【GoTeams】-3:构建api、重构错误码

把系统构建api层,前端发起请求将通过api层,api又内部调用gRPC服务,使系统安全性和可拓展性都增加了,然后还进行了重构错误码。

2025-03-07 15:41:24 1064

原创 【GoTeams】-2:项目基础搭建(下)

本篇文章学习到了很多,比如gRPC的服务器生成、服务生成、服务注册,以及如何用闭包进行优雅的关闭,第一次感受到以前学过的知识串起来的感觉!收获颇多的一次代码实战!

2025-03-06 21:43:48 9286

原创 【GoTeams】-1:项目基础搭建

GoTeams:项目协同管理实战1-基础搭建(上)

2025-03-06 15:47:17 9162

原创 【Linux内核】如何编译并运行一个Linux内核

编译并运行一个Linux内核。

2025-03-04 17:24:16 9561

原创 【鸿蒙操作系统】- 1:实习阶段的一些总结

对实习阶段的一部分总结,主要是操作系统相关测试。

2025-03-03 22:04:42 1810

原创 【基于Raft的KV共识算法】-序:Raft概述

Raft概述,介绍任期、领导选举、日志同步等基础概念。

2025-03-02 22:51:25 1067

原创 【造个轮子】使用Golang实现简易令牌桶算法

50行代码手撕简易令牌桶算法

2025-02-28 13:32:20 948 1

原创 【Go | 从0实现简单分布式缓存】-5:使用Protobuf通信

本文为极客兔兔动手写分布式缓存GeeCache学习笔记。

2025-02-26 13:21:31 7315

原创 【Go | 从0实现简单分布式缓存】-4:使用singleflight防止缓存击穿

主要介绍如何使用singlefligth防止缓存击穿,途中涉及到了一些经典的函数,比如协程的wg.WaitGroup()函数应该在协程之间不需要消息传递的时候非常适用,还有对应的匿名函数的作用原理。

2025-02-26 11:24:21 1088

原创 【Go | 从0实现简单分布式缓存】-3:分布式节点通信

本节内容主要是完成了分布式节点通信,但是会随之而来对应的问题“缓存击穿”,所以我们需要进一步完善项目。

2025-02-25 20:36:23 930

原创 【Gin-Web】Bluebell社区项目梳理6:限流策略-漏桶与令牌桶

主要介绍如何在Gin框架中使用令牌桶算法进行实现限流策略。

2025-02-24 21:19:50 1089

原创 【Gin-Web】Bluebell社区项目梳理5:投票功能分析与实现

主要梳理投票功能流程与实现、Redis中ZSet有序集合的相关操作知识点。

2025-02-22 22:01:40 3681

原创 【Gin-Web】Bluebell社区项目梳理4:帖子相关接口开发及实现

梳理社区的中与帖子相关的接口基本功能与流程。

2025-02-22 17:08:16 1113

原创 【Gin-Web】Bluebell社区项目梳理3:社区相关接口开发

梳理项目的社区接口代码情况,以及Go语言中关于“值”类型和“引用”类型的相关知识。

2025-02-22 00:08:35 956

原创 【Gin-Web】Bluebell社区项目梳理2:JWT-Token认证

梳理项目中的JWT-Toekn认证相关代码和知识点。

2025-02-21 23:31:20 4513

原创 【Gin-Web】Bluebell社区项目梳理1:注册业务、登录业务流程及代码

分析和梳理了Gin的Web项目Bluebell的注册、登录两个业务的流程。

2025-02-21 21:46:51 1032

原创 【Gin】| 框架源码解析 :路由详解

解析了Radix Tree及一些Engine中有关路由的函数源码。

2025-02-20 11:35:00 7219

原创 【gRPC】:快速上手gRPC与protobuf

快速上手gRPC与protobuf简单demo实例

2025-02-18 19:31:50 5451 1

原创 【Gin】2:快速上手Gin框架(模版、cookie、session)

【Gin】2:快速上手Gin框架(模版、cookie、session)

2025-02-18 17:11:16 6958

原创 【Go | 从0实现简单分布式缓存】-2:HTTP服务端与一致性哈希

【Go | 从0实现简单分布式缓存】-2:HTTP服务端与一致性哈希

2025-02-18 13:38:56 7424

原创 【Go | 从0实现简单分布式缓存】-1:LRU缓存淘汰策略与单机并发缓存

商业世界里,现金为王;架构世界里,缓存为王。

2025-02-17 23:51:59 7451

原创 【Gin】Web框架开发快速入门

主要介绍go work工作区、Web路由、请求、响应等demo

2025-02-12 12:56:30 11427

原创 【C++高并发服务器WebServer】-18:事件处理模式与线程池

对Reactor、Proactor、同步IO模拟Proactor模式进行了概述介绍。

2025-02-10 13:11:06 4286

原创 【C++高并发服务器WebServer】-17:阻塞/非阻塞和同步/异步、五种IO模型、Web服务器

陈硕大神说过一句话:处理IO的时候,阻塞和非阻塞都是同步IO(都需要我们用户自己去操作数据),只有使用了特殊的API才是异步IO

2025-02-09 22:48:11 11696 1

原创 【C++高并发服务器WebServer】-16:UDP简单实现

指向sockaddr结构的指针,该结构包含了目的地址信息。:指向变量的指针,该变量在调用前应初始化为 src_addr 结构的长度。调用成功后,该变量将被更新为实际接收到的地址的长度。:指向 sockaddr 结构的指针,该结构用于存储发送方的地址信息。也可以设置特定的标志来改变发送的行为,如MSG_DONTROUTE(绕过路由器)。也可以设置特定的标志来改变接收的行为,如 MSG_DONTWAIT(非阻塞接收)。这个长度应该与dest_addr指向的结构的大小相匹配。:要发送的数据的长度(字节数)。

2025-02-09 21:19:20 6837

原创 【C++高并发服务器WebServer】-15:poll、epoll详解及实现

本文主要介绍了poll和epoll的实现,其中重点分析了epoll的函数、工作模式等。

2025-02-09 20:58:30 5171

原创 【C++高并发服务器WebServer】-14:Select详解及实现

本文主要内容是Select的函数详解及服务端与客户端的demo实现。

2025-02-09 18:41:47 11346

原创 【C++高并发服务器WebServer】-13:多线程服务器开发

探讨多线程服务器开发的关键技术,并详细分析了 TCP 状态转换过程。同时,文章重点讨论了端口复用技术,通过 SO_REUSEADDR 和 SO_REUSEPORT 选项的设置,解决了服务器快速重启和端口冲突的问题。

2025-02-08 23:29:52 11631

原创 【C++高并发服务器WebServer】-12:TCP详解及实现

欢迎来到Golinie的频道,这里是C++并发服务器专题。本篇文章主要围绕TCP通信展开,详细介绍了TCP通信流程以及关键的套接字函数,包括socket()、bind()、listen()、accept()和connect()。同时,通过server端和client端的代码示例,展示了并发服务器的实现过程。此外,还深入探讨了TCP三次握手、滑动窗口机制以及四次挥手过程,最后介绍了多进程并发服务器的设计思路。

2025-02-08 21:18:35 11688

原创 【Linux网络编程】谈谈网络编程中的select、poll、epoll、Reactor、Proactor模型(下)

这个模型也叫做基于线程架构的模型。

2025-02-07 18:33:50 5505

原创 【Linux网络编程】谈谈网络编程中的select、poll、epoll、Reactor、Proactor模型(上)

本文主要介绍BIO、NIO、IO多路复用(第一版:select、poll)。

2025-02-07 04:30:00 21652

空空如也

空空如也

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

TA关注的人

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