随笔分类 -  go

上一页 1 2 3 4 5 6 ··· 16 下一页

Go mod常用与高级操作
摘要:环境 Windows10 GO:1.13 1. 开启Go module 1.11和1.12版本 将下面两个设置添加到系统的环境变量中 GO111MODULE=on GOPROXY=https://goproxy.io 1.13版本之后 需要注意的是这种方式并不会覆盖之前的配置,有点坑,你需要先把系统 阅读全文

posted @ 2022-03-14 16:14 ExplorerMan 阅读(550) 评论(0) 推荐(0) 编辑

Go语言缓存LRU库"github.com/hashicorp/golang-lru"
摘要:Golang 第三方库golang-lru基于双向链表实现了三种LRU及变种Cache:LRU,Q2,ARC。LRU算法:若数据已经在缓存中,将其移到队首,并返回结果。若数据不在缓存中,将新记录添加到队首。若缓存超长,清理队尾缓存数据。 2Q算法有两个缓存队列,一个是FIFO队列,用于保存最近访问的 阅读全文

posted @ 2022-03-08 19:35 ExplorerMan 阅读(932) 评论(0) 推荐(0) 编辑

Golang 限流器 time/rate 使用介绍
摘要:本主题为系列文章,分上下两篇。本文主要介绍 time/rate 的具体使用方法,另外一篇文章 《Golang 限流器 time/rate 实现剖析》 则着重介绍其内部实现原理。 限流器是后台服务中的非常重要的组件,可以用来限制请求速率,保护服务,以免服务过载。限流器的实现方法有很多种,例如滑动窗口法 阅读全文

posted @ 2022-03-02 14:44 ExplorerMan 阅读(409) 评论(0) 推荐(0) 编辑

gorm.Clause()子句分析之ON DUPLICATE KEY UPDATE
摘要:一、背景介绍 最近看到一段代码,使用到了gorm的Clause()子句,大概如图所示。之前由于没用过Clause()子句,所以本文对Clause()子句先进行研究,然后分析sql语句。 二、Clause()子句 GORM 内部使用 SQL builder 生成 SQL。对于每个操作,GORM 都会创 阅读全文

posted @ 2022-02-24 11:25 ExplorerMan 阅读(347) 评论(0) 推荐(0) 编辑

Hystrix熔断器的使用_Golang
摘要:Hystrix熔断器的使用_Golang下载hystrix-go go get github.com/afex/hystrix-go1正常使用 // 超时代码 // import github.com/afex/hystrix-go/hystrix // 1.配置config configA := 阅读全文

posted @ 2022-02-23 11:33 ExplorerMan 阅读(160) 评论(0) 推荐(0) 编辑

详解 hystrix-go 使用与原理 
摘要:下面由golang教程栏目给大家介绍关于golang封装一个bash函数,用于执行bash命令析,希望对需要的朋友有所帮助!开篇这周在看内部一个熔断限流包时,发现它是基于一个开源项目 hystrix-go 实现了,因此有了这篇文章。HystrixHystrix 是由 Netflex 开发的一款开源组 阅读全文

posted @ 2022-02-22 21:26 ExplorerMan 阅读(272) 评论(0) 推荐(0) 编辑

使用 Prometheus 对 Go 应用程序进行监测
摘要:监测服务级别的指标能让团队成员更清晰的看到你的程序表现如何,你的程序如何被使用,并且可以帮助定位潜在的性能瓶颈。 Prometheus 是一个开源的监测解决方案,原生的服务发现支持让它成为动态环境下进行服务监测的一个完美选择。Prometheus 支持从 AWS, Kubernetes, Consu 阅读全文

posted @ 2022-02-18 11:07 ExplorerMan 阅读(1076) 评论(0) 推荐(0) 编辑

gorm 更新
摘要:Save 会保存所有的字段,即使字段是零值 db.First(&user)user.Name = "jinzhu 2"user.Age = 100db.Save(&user)// UPDATE users SET name='jinzhu 2', age=100, birthday='2016-01 阅读全文

posted @ 2021-12-09 17:42 ExplorerMan 阅读(939) 评论(0) 推荐(0) 编辑

gorm系列-创建记录及字段默认值
摘要:目录 Gorm创建记录及字段默认值 创建 默认值 使用指针方式实现零值存入数据库 使用Scanner/Valuer接口方式实现零值存入数据库 Gorm创建记录及字段默认值 CRUD通常指数据库的增删改查操作 创建 package main import ( "fmt" "github.com/jin 阅读全文

posted @ 2021-11-28 23:44 ExplorerMan 阅读(355) 评论(0) 推荐(0) 编辑

Golang 之 casbin(权限管理)
摘要:1. 权限管理 Casbin是用于Golang项目的功能强大且高效的开源访问控制库。 1.1.1. 特征 Casbin的作用: 以经典{subject, object, action}形式或您定义的自定义形式实施策略,同时支持允许和拒绝授权。 处理访问控制模型及其策略的存储。 管理角色用户映射和角色 阅读全文

posted @ 2021-11-19 19:07 ExplorerMan 阅读(1409) 评论(0) 推荐(0) 编辑

golang源码分析:redcon基于redis协议的框架
摘要:https://github.com/tidwall/redcon 是一个 Go实现 的 Redis 兼容服务器框架。它实现了redis协议,封装了网络连接,我们可以基于这个库快速实现一个基于redis协议的服务器。简单的redis服务器https://github.com/redis-go/red 阅读全文

posted @ 2021-11-18 19:47 ExplorerMan 阅读(289) 评论(0) 推荐(0) 编辑

Go 每日一库之 cast
摘要:简介今天我们再来介绍 spf13 大神的另一个库cast。cast是一个小巧、实用的类型转换库,用于将一个类型转为另一个类型。最初开发cast是用在hugo中的。 快速使用先安装: $ go get github.com/spf13/cast后使用: package main import ( "f 阅读全文

posted @ 2021-11-16 20:16 ExplorerMan 阅读(338) 评论(0) 推荐(0) 编辑

golang context的一些思考
摘要:前言 因为goroutine,go的并发非常方便,但是这也带来了另外一个问题,当我们进行一个耗时的异步操作时,如何在约定的时间内终止该操作并返回一个自定义的结果?这也是大家常说的我们如何去终止一个goroutine(因为goroutine不同于os线程,没有主动interrupt机制),这里就轮到今 阅读全文

posted @ 2021-11-16 20:13 ExplorerMan 阅读(221) 评论(0) 推荐(0) 编辑

Go语言(golang)新发布的1.13中的Error Wrapping深度分析
摘要:2019.09.03日,Golang 1.13版本发布,这次更新算是比较大的了,有大家期待的GOPROXY和GOPRIVATE等,具体的可以去看这个版本的 Go 1.13 Release Notes。 Go 1.13发布的功能还有一个值得深入研究的,就是对Error的增强,也是今天我们要分析的 Er 阅读全文

posted @ 2021-11-04 15:05 ExplorerMan 阅读(290) 评论(0) 推荐(0) 编辑

Golang 函数耗时统计
摘要:1.朴素方法 在函数起始位置计算当前时间,在函数结束位置算出耗时。 package main import ( "fmt" "time" ) func sum(n int) int { startT := time.Now() //计算当前时间 total := 0 for i:=1; i <= n 阅读全文

posted @ 2021-11-02 19:25 ExplorerMan 阅读(801) 评论(0) 推荐(0) 编辑

go micro metrics 接入Prometheus、Grafana
摘要:本文介绍go micro中加入metric, 并接入Prometheus、Grafana 1.go micro中间件加载prometheus plugins go micro中提供了prometheus plugins github.com/micro/go-plugins/wrapper/moni 阅读全文

posted @ 2021-10-24 23:39 ExplorerMan 阅读(359) 评论(0) 推荐(0) 编辑

go module使用教程:使用go mod的方法.报错go: cannot determine module path for source directory
摘要:使用go mod的方法 单独从大工程里拷出小文件想新建新文件工程时,部分文件路径名报红,出现报错go: cannot determine module path for source directory E:\tttttt (outside GOPATH, no import comments)1. 阅读全文

posted @ 2021-10-18 20:05 ExplorerMan 阅读(1537) 评论(0) 推荐(0) 编辑

golang三大基础mock大法
摘要:一、使用gomonkey来mock函数和方法 1、mock函数 gomonkey.ApplyFunc(target,double) 其中target是被mock的目标函数,double是用户重写的函数。 注意点:重写的函数要和原函数入参和出参保持一致,否则会报错。 2、mock方法 gomonkey 阅读全文

posted @ 2021-10-13 14:16 ExplorerMan 阅读(2047) 评论(0) 推荐(0) 编辑

用vscode开发调试golang超简单教程
摘要:目录 一、下载并安装vscode 二、安装Go插件 三、下载调试工具 四、打开现有go工程文件夹或新建go项目即可进行调试 五、问题处理 首先安装golang开发环境,这个不用说。 到这个页面下载golang 的安装包 https://studygolang.com/dl ,再安装就可以了。 一、下 阅读全文

posted @ 2021-10-12 21:25 ExplorerMan 阅读(4577) 评论(0) 推荐(0) 编辑

go语言 判断一个实例是否实现了某个接口interface
摘要:package main import "fmt" type Animal interface { run() walk() } type Dog struct { Id int } func (dog Dog) run() { fmt.Printf("I am Dog,I can Run!\n") 阅读全文

posted @ 2021-10-09 17:53 ExplorerMan 阅读(130) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 16 下一页

导航