golang微服务框架kratos实现Socket.IO服务的方法
目录Socket.IO如何工作客户端服务端Socket.IO的限制Kratos服务端参考资料 (Reference)Socket.IO 是一个面向实时 web 应用的 实时通讯库。它使得服务器和客户端之间实时双向...
目录Socket.IO如何工作客户端服务端Socket.IO的限制Kratos服务端参考资料 (Reference)Socket.IO 是一个面向实时 web 应用的 实时通讯库。它使得服务器和客户端之间实时双向...
目录测试环境与方法测试结果原理分析三种方式的优缺点总结在 Golang 中,有多种方式可以进行数组的拷贝。本文将对其中的三种方式进行性能分析,并比较它们的优缺点。测试环境与...
目录1.背景:2.代码:总结1.背景:平时开发项目时打印日志用到logrus包,但是觉得logrus配置比较麻烦,于是想着直接使用go自带的log包输出日志,其提供了一些配置,比如SetPrefix(), 可以...
目录1. 引言2. init 函数的特点2.1 自动执行2.2 在包级别变量初始化后执行2.3 执行顺序不确定3. init 函数的用途3.1 初始化全局变量3.2 执行一些必要的验证操作4. init 函...
目录环境常识注意点环境Go 1.20Windows 11常识1.定义通道变量:ch := make(chan int) // 可存放int类型数据,缓冲为0ch := make(chan any) // 可存放任意类型数据,缓冲为0ch :=...
目录一、什么是 Goroutine ?二、使用 Goroutine单个 goroutine多个 goroutinesync.WaitGroup 的使用三. 结束语一、什么是 Goroutine ?在java/c++中我们要实现并发编程的时...
目录0. 简介1. 常见的GC算法1.1 引用计数法1.2 标记-清除1.3 分代收集2. Golang GC原理2.1 算法选择2.2 三色标记2.2.1 标记-清除算法2.2.2 三色标记算法2.2.3 屏障技术3. G...
目录一. 简介二. 问题引入三. 基本使用3.1 基本定义3.2 使用方式3.3 使用例子四. 实现原理4.1 设计初衷4.2 基本原理4.3 代码实现五. 使用注意事项5.1 注意off值在base和lim...
目录获取局域网ip获取客户端ip网络上的答案获取的ip是服务器的ip或者获取本地ip,然后通过ip获取详细地址,要么报错,要么或者客户端的位置不正确…直接给我整麻了~网络答...
目录背景本文相关代码的验证环境一. 常见的坑1.1 数据结构1.2 Go语言特性相关二. 高性能Go编程2.1 数据结构2.2 内存管理2.3 并发编程背景代码的稳健性、高性能、可读性是我...
目录strconv.Atoi 和 strconv.Itoastrconv.Parse 系列函数strconv.Format 系列函数strconv.Append 系列函数strconv.IsPrint 和 strconv.IsGraphicstrconv.Quote 和 strconv...
目录遵循规则WithCancelWithDeadlineWithTimeoutWithValue很多 Go 项目的源码,在读的过程中会发现一个很常见的参数 ctx,而且基本都是作为函数的第一个参数。为什么要这么写呢...
目录Python 上下文管理器Go 中资源释放问题在 Go 中实现上下文管理器总结P.S.熟悉 Python 的同学应该知道 Python 中的上下文管理器非常好用,在对数据库进行读写、访问文件等...
目录什么是heapHeap的数据结构如何实现优先级队列为什么需要使用优先级队列优点和缺点优点缺点heap PriorityQueue实现实现思路数据结构初始化优先级队列对象生产者推送任务...
在使用 Golang 操作 Kafka 时,你可以使用 Sarama 库来设置消息的失效时间。以下是一个示例代码,演示如何在生产者端设置数据失效时间:package mainimport ( "log" "time" "gith...
目录Go语言打印堆栈errors包1、安装2、使用2.1 New()函数2.2 WithMessage()函数2.3 WithStack()2.4 Wrap()函数3、总结Go语言打印堆栈errors包因为Go语言提供的错误太简单了...
目录Go 享元模式讲解和代码示例概念示例dressFactory.go: 享元工厂dress.go: 享元接口terroristDress.go: 具体享元对象counterTerroristDress.go: 具体享元对象player.go:...
目录背景原有方式转化为 map[string]interface预定义结构体 struct推荐: GJSON 处理总结 背景作为一种强数据类型的语言, Golang 对 json 的处理很麻烦。已知 json 的数据类型...
目录简介实现轮子令牌桶,go语言创建和使用令牌桶什么是令牌桶基本使用在开发中使用总结简介在网络中传输数据的时候时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀...
目录一、结构体标签介绍二、json标签三、gorm标签四、form标签五、binding标签六、ini标签总结一、结构体标签介绍结构体的字段除了名字和类型外,还可以有一个可选的标签(tag):...
目录errors.Newerrors.Iserrors.ASerrors.Unwrap小结errors.Newfunc New(text string) error错误处理是开发过程中必不可少的,使用 errors.New 函数可以创建一个表示特定错误...
目录引言defer 常见用法新提案:defer 代码块反对的声音总结引言在 Go 语言里,defer 关键字是大家很爱用的。因为他有着 defer+recover+panic 的组合拳打法,还有种各种 defer cl...
目录println()函数:fmt.println()函数: 总结区别:作为一个刚刚接触Go的萌新,在学习Go语言的时候发现demo用了两种用法输出语句:package mainimport "fmt"func main() {...
目录写在前面:1. vscode必备插件1.Go、Code Runner2.Markdown All in One、Markdown Preview Enhanced、Paste Image3. vscode-icons2. vscode最常用快捷键3. vscode快速生成...
目录基本时间操作特定日期时间格式自定义日期时间格式解析不同格式的日期时间字符串获取指定日期时间基本时间操作首先,我们来看一些基本的时间操作。获取当前时间可以使用ti...
目录sync.Pool作用写入和读取sync.Pool注意点大规模Goroutine的瓶颈原理和作用sync.Pool作用对象重用机制,为了减少GC,sync.Pool是可伸缩的,并发安全的两个结构体type Pool s...
目录1. 引言2. 介绍2.1 基本定义2.2 使用说明3. 实现原理4. 使用场景5. 总结1. 引言io.discard是Go语言标准库提供一个结构体类型,其在丢弃不需要的数据场景下非常好用。本文...
目录背景数据加解密方案具体实现过程1. 准备工作2. 初始化Vault客户端3. 登录认证4. Token续租5. 加密6. 解密总结本文是《基于Vault的敏感信息保护》的姊妹篇,文中涉及的配...
目录一、通道介绍1、声明通道2、创建通道二、channel操作1、发送2、接收3、关闭三、无缓冲通道四、有缓冲的通道1、有缓冲通道声明2、阻塞条件五、循环读取信道六、关闭通道...
目录1. 引言2. 基本说明2.1 基本定义2.2 使用示例3. 实现原理4. 注意事项4.1 注意关闭源Reader和目标Writer4.2 考虑性能问题5. 总结1. 引言io.Copy 函数是一个非常好用的函...
目录应用闭包学习并理解以下程序的工作原理:应用闭包在程序 function_return.go 中我们将会看到函数 Add2 和 Adder 均会返回签名为 func(b int) int 的函数:func Add2() (fun...
目录01 什么是Error02 创建error的方式2.1 通过errors.New方法创建2.2 通过fmt.Errorf方法创建2.3 自定义实现了error接口的结构体03 errors.Is和errors.As总结01 什么是Err...
目录前言定时器的基本使用总结:前言在平时写代码的时候,我们经常会遇到在将来某个时间点或者间隔一段时间重复执行函数。这个时候我们就可以考虑使用定时器。本片文章主要介绍...
目录SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安...
目录匿名函数(Anonymous Functions)闭包(Closures)小结在讲解闭包之前先看一下 Golang 中的匿名函数。匿名函数(Anonymous Functions)匿名函数也可以称为函数字面量、lambda 函数...
目录序workerWrapperinterruptrunstopjoin小结序本文主要研究一下tunny的workerWrapperworkerWrappertype workerWrapper struct { worker Worker interruptCh...
目录GO的GC里程碑v1.3以前:STWv1.3:Mark STW & Sweepv1.5:三色标记v1.8:混合写屏障(hybrid write barrier)GO的GC三色标记混合写屏障增量和并发增量收集并发收集GC的时机GO的GC里...
目录一、RPC简介及原理介绍1.1、背景1.2、本地过程调用1.3、问题及解决方法1.4、RPC简介1.5、RPC设计组成1.6、RPC原理及调用步骤1.7、RPC涉及到的相关技术二、Go语言实现RP...
目录golang rate令牌桶实现令牌桶令牌桶算法的原理time/rate实现创建限流器Allow 判断是否运行通过advance计算产生的令牌数总结golang rate令牌桶实现高并发三板斧:限流、缓...
目录题引解决方法题引github.com/stretchr/testify@v1.7.1: Get "https://proxy.golang.org/github.com/stretchr/testify/@v/v1.7.1.zip": dial tcp 172.217.163.49:443: c...
目录简单装饰器装饰器实现中间件总结熟悉 Python 的同学想必对装饰模式都不会太陌生,Python 从语法上原生支持装饰器,大大提高了装饰模式在 Python 中的应用。而在 Go 语言中,...
目录简介GC的基本流程整体工作流程:GC回收的对象总结一下发生逃逸的结论:以下使用代码示例说明:传值还是传指针的问题:几个总结简介每个版本的Golang的垃圾回收都在不断优化中,而...
目录1、代码2、总结2.1、字符串 与 int 互转2.2、字符串 与 int64 互转2.3、int 与 int64 互转最简单总结1、代码package mainimport ( "fmt" "reflect" "strconv")func mai...
目录1. 引言2. 基本说明3. 为什么使用 ioutil.ReadAll 需要注意4. 为什么这么消耗内存5. 替换操作5.1 文件读取5.2 网络IO读取6. 总结1. 引言当我们需要将数据一次性加载到...
目录序WorkerclosureWorkercallbackWorkerPoolProcessSetSizeClose实例小结序本文主要研究一下tunnyWorkertype Worker interface { // Process will synchronously perf...
目录饿汉式懒汉式支持并发的单例双重锁定Gopher 惯用方案总结饿汉式饿汉式实现单例模式非常简单,直接看代码:package singletontype singleton struct{}var instance = &singl...
对Golang10进制转16进制的几种方法做了一些总结,一切尽在代码中:func main() { // 以下为10进制转16进制的几种方式: //1 手撸 hex := toHex(di) //2 内置的string...
前言本文介绍两点:如何在golang中使用copyin如何对特殊字符jsonb进行插入(需要显式强制转化为string类型)package mainimport ( "fmt" "github.com/jinzhu/gorm...
目录1. 引言2. 基本说明2.1 基本定义2.2 使用示例3. 实现原理4. 注意事项4.1 注意无限等待情况的出现4.2 确保 buf 的大小足够容纳至少 min 个字节的数据5. 总结1. 引言io.R...
目录一、背景二、源代码三、实现原理一、背景最近在写自动化配置程序(七镜将来会将其开源),网上没找着简单明了的实现复制文件夹到另一个文件夹的golang实现方法,于是七镜自己实...