Go操作各大消息队列教程(RabbitMQ、Kafka)

目录1 RabbitMQ1.1 概念①基本名词②常见模式1.2 搭建(docker方式)①拉取镜像②创建并启动容器③web界面创建用户和virtual host1.3 代码操作①RabbitMQ struct:包含创建、消费...

更换GORM默认SQLite驱动出现的问题解决分析

目录GORM简介安装快速开始GORM使用更换第三方SQLite驱动解决问题解决方案:更换GORM默认的SQLite驱动代价GORM简介GORM 是 Go 语言中最受欢迎的 ORM 库之一,它提供了强大的功能...

Go语言实现可选参数的方法小结

目录方法1:可变长参数(Variadic Args)方法2:使用Map方法3:使用结构体(Structs)方法4:函数选项模式(Functional Options Pattern)总结我们编程时,常会遇到:一个函数在大多数情况下只需要...

一文掌握gorm简介及如何使用gorm

目录gorm简介什么是gorm?gorm的特点如何使用gorm?总结gorm简介什么是gorm?gorm是一个强大的Go编程语言中的ORM(对象关系映射)库。ORM是一种技术,它将数据库表中的数据映射到面向对...

一文了解Go语言的并发特性

目录Goroutines: 轻量级线程Channels: 数据的并发安全传递Select: 多路复用实例:使用Go并发特性实现一个简单的并发模型总结补:go语言高并发特性应用场景应用示例代码Go语言自...

Golang使用pprof检查内存泄漏的全过程

目录前言测试代码发送请求分析内存查看内存分配比较内存分配查看启动以来的内存分配前言pprof 是golang提供的一款分析工具,可以分析CPU,内存的使用情况,本篇文章关注它在分析...

golang压缩与解压缩文件的示例代码

目录压缩核心处理解压缩压缩入口压缩函数useBasePathInZip参数:为 false 相当于全文件视图,zip中没有目录
为 true表示保留源文件的路径(srcPaths如果是相对路径,则压缩后zip文...

Go语言实现lru淘汰策略和超时过期

目录lru淘汰策略超时淘汰代码实现实例化缓存添加数据删除缓存获取缓存定期删除测试lru淘汰策略缓存的大小是有限的,当添加数据发现剩余缓存不够时,需要淘汰缓存中的部分数据。...

使用Go语言实现心跳机制

目录Go 实现心跳心跳程序Go 实现心跳心跳最典型的应用场景是是探测服务是否存活,比如在 Zookeeper 中,会使用心跳探测服务是否存货,如果服务已经死亡,会将服务从注册表中删除,避...

Go有效获取变量类型多种方法探索

目录Go语言中,如何快速获取一个变量的类型?Go 的类型系统类型获取使用 fmt.Printf类型选择类型选择反射 reflect.TypeOf其他注意点错误处理性能考量总结Go语言中,如何快速获取...

详解如何在Golang中执行shell命令

目录使用 exec.Command() 运行简单的 shell 命令是否可以在不存储输出的情况下执行shell命令为什么我们不应该使用 exec.Command() 函数在后台执行 shell 命令并等待其完成...

go货币计算时如何避免浮点数精度问题

目录为什么是问题下一个问题 — 传递你的钱我们的选择是什么简单的例子结论在开发的初始阶段,我们经常会遇到“浮点数精度”和“货币值表示”的问...

一文详解Golang使用接口支持Apply方法的配置模式

目录Golang使用接口支持Apply方法的配置模式示例解析Golang使用接口支持Apply方法的配置模式Golang 中,可以使用接口(interface)来实现一种配置模式,其中配置对象实现一个接口,并...

Go打印结构体提升代码调试效率实例详解

目录引言定义结构体使用 fmt.Printf实现 String 方法json.MarshalIndentreflect 包打印复杂结构性能压测三方库go-spewpretty结语引言不知道大家是否遇到打印复杂结构的需求...

浅析Golang中make和new的用法区别

目录相同点不同点1.传递的参数不一样2.返回的参数类型不一样3.使用场景不一样总结相同点都是内建函数,都是在堆上分配内存,都需要传递类型参数不同点1.传递的参数不一样new函...

golang如何实现三元运算符功能

目录使用 if-else 语句一行表达式If 函数奇淫巧技:基于 map为什么 Go 没有三元运算符总结今天来聊聊在 Go 语言中如何实现类似三元运算符的功能。首先,什么是三元运算符?在其他...

详解Golang如何监听某个函数的开始执行和执行结束

如果想监听函数(方法)开始执行和执行结束,你需要设置两个通道:chanStarted: 用于发送开始执行信号。chanFinished: 用于发送执行结束信号。同时,为了保证监听方能实时得知“...

golang防止内存逃逸的方法小结

在Go语言中,内存逃逸是指在函数中分配的变量在函数结束后仍然被引用,从而导致变量的生命周期延长,被分配在堆上而不是栈上。防止内存逃逸有助于提高程序的性能,因为栈上分配的内...

Golang实现IP地址转整数的方法详解

目录IPv4转整数IPv6转换为整数在 Go 语言中,将 IP 地址转换为整数涉及到解析 IP 地址并处理其字节表示,IPv4 地址由 4 个字节组成,可以直接转换为一个 32 位整数。IPv6 地址更...

深入浅出Go语言:手把手教你高效生成与解析JSON数据

目录一、JSON解析到结构体1.JSON名称/值对2.JSON值3.JSON数据4.JSON对象5.JSON数组6.JSON布尔值7.JSON nullJson解析到结构体二、JSON转map三、生成JSON一、JSON解析到结构...

Golang使用Zookeeper实现分布式锁

目录什么是分布式锁Zookeeper 与 Redis 的分布式锁对比实现方式特性适用场景可靠性为什么 Zookeeper 可以实现分布式锁使用 Golang 实现 Zookeeper 分布式锁创建 zookeeper...

Go语言构建流数据pipeline的示例详解

目录什么是pipelineSquaring numbers 平方数扇入和扇出短暂的停顿Explicity cancellation 显示取消Digesting a tree 对树进行摘要并行计算摘要有界的并行总结什么是pipelin...

golang通过cgo调用C++库源码示例

目录思路C ++ 相关文件目录列表源码示例some.hsome_wrapper.hsome_wrapper.cpp将 C++ 库包装成 C 库Golang CGO 调用 C 库参考总结 思路将 C++ 库包装成 C 库 -> golang 通...

Golang中crypto/rand库的使用技巧与最佳实践

目录引言:为什么选择 crypto/randcrypto/rand 基本概念与原理1. 加密安全的伪随机数生成器(CSPRNG)2. 操作系统的随机数源3. 应用场景如何使用 crypto/rand:基础示例1. 生成随机...

Golang实现按行读取文件的方法小结

目录引言准备一个文本文件基于 bufio.Reader使用 Reader.ReadLine使用 Reader.ReadString使用 bufio.Scanner如何读取大行缓冲区逻辑扩展思路分割规则定义不得不说结论引言...

返回顶部
顶部