Golang
文章平均质量分 75
go语言
思月行云
吾求吾失且不暇,何暇论人哉?!
君子性非异也,善假于物也。
展开
-
GORM中事务的使用
事务 | 教程 |《GORM 中文文档 v2》| Go 技术论坛禁用默认事务 为了确保数据一致性,GORM 会在事务里执行写入操作(创建、更新、删除)。如果没有这方面的要求,您可以在初始化时禁用它,这将获得大约 30%+ 性能提升。// 全局禁用 db, err := gorm.Open(sqlite.Ope...转载 2024-03-29 11:13:41 · 362 阅读 · 0 评论 -
详解golang中的context
上述代码中,当拿到请求后,我们通过req 获取traceId, 并记录在ctx中,在调用RPC,DB等时,传入我们构造的ctx,在后续代码中,我们可以通过ctx拿到我们存入的traceId,使用traceId 记录请求的日志,方便后续做问题定位。这里可以看到,当执行cancel时,除了会关闭当前的cancel外,还做了两件事,① 所有的child 都调用cancel方法,② 由于该上下文已经关闭,需要从父上下文中移除当前的上下文。其他的 Context 都是基于已经构造好的 Context 来实现的。转载 2023-09-04 09:28:16 · 445 阅读 · 0 评论 -
使用gorm自动生成数据库表Model(结构体定义)
【代码】使用gorm自动生成数据库表Model(结构体定义)原创 2023-08-29 11:46:39 · 2171 阅读 · 0 评论 -
vscode - golang环境launch.json配置
【代码】vscode - golang环境launch.json配置。原创 2023-08-29 11:14:31 · 2452 阅读 · 0 评论 -
go-http解决跨域问题
今天中午在部署golang与vue搭建的一个项目时,因为将项目部署到了云端的Docker容器内期间涉及到了一些跨域问题,本以为在后端配置一下跨域即可,没想到最后是因为非简单请求跨域的规范导致出错本文章会介绍跨域的基础概念,解决跨域的方法都有什么,golang如何解决跨域问题,简单与非简单请求的基本概念及规定。转载 2023-02-15 13:56:32 · 1041 阅读 · 0 评论 -
Golang如何实现排序
sort.Interface 接口 这个接口是 sort 包的核心,它有3个方法。这是 Golang 很酷的一个特性,只要数据类型满足 sort.Interface 接口,就可以用sort包的函数进行排序。Example1Example2sort转载 2022-07-07 10:07:27 · 2698 阅读 · 0 评论 -
go mod tidy用途以及拉取etcd依赖包报错解决
go mod tidy的作用转载 2022-06-01 15:00:03 · 2312 阅读 · 0 评论 -
Go Modules笔记
Go Modules笔记大爬虫Go Modules笔记 - SegmentFault 思否Go Modules笔记 介绍 module是go官方推出的模块管理工具,每个模块就相当于java中的一个包。 每个 module 中都包含一个 go.mod 文件,反之:没有go.mod文件,...https://segmentfault.com/a/1190000020448047Go Modules笔记介绍module是go官方推出的模块管理工具,每个模块就相当于java中的一个包。每个转载 2022-05-17 15:50:52 · 199 阅读 · 0 评论 -
Golang中GoPath和GoModule模式的区别
参考:一文搞懂 Go Modules 前世今生及入门使用https://www.cnblogs.com/wongbingming/p/12941021.htmlgolang中使用GOPATH模式和GoModule(gomod)模式的区别_SunkingYang的博客-CSDN博客_gopath和gomodulehttps://blog.csdn.net/y601500359/article/details/118990215前言在说他们之间的区别时,我们需要先了解了解GoMoudle的前世今生。转载 2022-05-03 08:18:38 · 870 阅读 · 0 评论 -
go module的使用方法及原理(附实例)
go module是什么?怎么用?(附使用示例)go module是什么?怎么用?(附使用示例)-Golang-PHP中文网https://www.php.cn/be/go/487470.html本文由golang教程栏目给大家介绍关于go module的使用方法,希望对需要的朋友有所帮助!go module 使用go module 在 go 1.14 版本之后被推出一、go module 使用介绍go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13转载 2022-05-03 08:07:19 · 2121 阅读 · 0 评论 -
浅析 golang module
浅析 golang module老虎来了浅析 golang module - 知乎什么是 module?module 解决了什么问题?module 代表一个版本管理单元,它包括一个或者多个 packages。 一般来说,一个版本控制仓库(比如 golang.org/x/text )包含一个 module(也可以包含多个 module,但是通常…https://zhuanlan.zhihu.com/p/59549613什么是 module?module 解决了什么问题?module 代表一个转载 2022-04-25 14:24:23 · 385 阅读 · 0 评论 -
golang的CSP模型
Go语言的CSP模型路由器没有路https://www.zhihu.com/people/lu-you-qi-mei-you-lu-37Go语言的CSP模型 - 知乎前言go语言的最大两个亮点,一个是goroutine,一个就是chan了。二者合体的典型应用CSP,基本就是大家认可的并行开发神器,简化了并行程序的开发难度,我们来看一下CSP。 一、CSP是什么CSP 是 Communicating Sequen…https://zhuanlan.zhihu.com/p/313763247前转载 2022-04-18 18:00:07 · 1530 阅读 · 0 评论 -
Go1.18泛型使用详解(附最新gocode)
原文地址:Go1.18版本泛型详解_耀一世风光的博客-CSDN博客_go 泛型go1.18泛型详解https://blog.csdn.net/qq_52582768/article/details/1219841571. 泛型简介今天是2021年12月16日, 前天, 也就是14号, Golang官方发布了go1.18的Beta版本, 其中最重磅的更新, 当属万众瞩目的泛型(Generics)泛型是什么? 有些小伙伴也许并不清楚其中的概念, 实际上, 泛型就是和C++中模板等位的产品例如:转载 2022-04-07 13:57:27 · 467 阅读 · 0 评论 -
golang博客推荐
作者:无忌链接:https://www.zhihu.com/question/281186541/answer/2320616550来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。在学习Go语言的过程中,整理了我个人觉得非常有价值的Go技术博客和网站,分享出来,希望可以帮助到有需要的同学。同时在本文后面附上值得参考的Go书籍和Go视频教程。Go博客本人博客:Jincheng's Blog,长期分享Go相关技术栈。 Go语言官方团队负责人:Russ Cox.转载 2022-03-21 10:12:40 · 719 阅读 · 4 评论 -
golang两种更好的控制协程自然释放的方法
go - How to stop a goroutine - Stack OverflowGenerally, you could create a channel and receive a stop signal in the goroutine.There two way to create channel in this example. channel context. In the example I will democontext.WithCancel The .转载 2022-01-14 14:36:04 · 590 阅读 · 0 评论 -
Kubernetes的Service外部访问方式:NodePort和LoadBalancer
Kubernetes的Service外部访问方式:NodePort和LoadBalancerKubernetes的Pod的寿命是有限的,它们不会复活,因此尽管每个Pod都有自己的IP地址,但是这些IP地址是不可靠的,会随着Pod的消亡而消失。这就带来一个问题,如果一些Pod的集合(称之为backends)为集群的其他的Pod(称之为frontends),这些frontends应该如何找到并...转载 2019-02-05 02:14:42 · 38532 阅读 · 18 评论 -
记录一次游戏服务器的压测调优记录(Golang语言)
记录一次游戏服务器的压测调优记录(Golang语言)来自:烧书煮石_记录一次游戏服务器的压测调优记录(Golang语言) - 简书 (jianshu.com)前言辛苦开发了一年的服务,终于要上线了,进入了关键的质检阶段--压力测试环节。目标值:一千个用户,300rps问题因开发节奏的紧张,初期并没有注重优化,果不其然,一压测就爆炸了,主要问题有如下:RPS太低,1000个用户下,rps初期仅100 随着时间的推移,rps逐步降低 服务器随时闪崩很明显,压测后感觉我们的转载 2021-11-03 16:33:40 · 409 阅读 · 0 评论 -
golang超时控制
前言日常开发中我们大概率会遇到超时控制的场景,比如一个批量耗时任务、网络请求等;一个良好的超时控制可以有效的避免一些问题(比如goroutine泄露、资源不释放等)。Timer在 go 中实现超时控制的方法非常简单,首先第一种方案是Time.After(d Duration):func main() { fmt.Println(time.Now()) x := <-time.After(3 * time.Second) fmt.Println(x)}outpu...转载 2021-10-29 14:16:25 · 2855 阅读 · 2 评论 -
并发机制:CSP vs Actor模型以及Golang实现
作者:花与火山石原文链接:https://blog.csdn.net/qq_32702033/article/details/104415434CSP & Actor Model本文将简单介绍CSP和Actor模型俩流行的并发机制,并比较他们的优缺点,并通过Golang中CSP并发机制实现FutureTask.并行机制有很多像是多线程,CSP,Actor等等.拿多线程来说,就有诸多问题,譬如:死锁,可扩展性差,共享状态.就像共享状态会产生很多问题,它涉及到内存的变化。只有一个进程发生变化没..转载 2021-07-02 10:31:50 · 587 阅读 · 0 评论 -
如何使用go读写excel
go读写excel文件首先,需要安装golang用来操作excel文档的类库:go get github.com/Luxurioust/excelize一、excel文件创建与写入 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 .转载 2021-05-14 11:26:49 · 6367 阅读 · 2 评论 -
golang解析嵌套yaml配置(局部解析)
golang中解析yaml配置文件版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/Raily_Qi/article/details/96333773解析简单的Yaml文件首先看一个简单的例子,现在我们有一个config.yaml的配置文件,内容为:username: railypassword: 123a那么我们可以像下边这样解析:type Config struc转载 2021-03-22 11:30:19 · 2679 阅读 · 0 评论 -
一个专家眼中的Go与Java垃圾回收算法大对比
https://blog.csdn.net/weixin_45583158/article/details/100143135导读:GC 是大部分现代语言内置的特性,本文作者针对 Go 语言声称的 10ms 以下的 GC 停顿进行了深入分析,还同 Java 的垃圾收集器做了对比。Go GC 是否已经足够成熟,请看高可用架构志愿者翻译的文章。我最近看过一堆宣传 Go 语言的最新垃圾收集器的文章。 其中一些文章来自 Go 项目本身。 他们声称 GC 技术发生了根本性的突破。以下是 201..转载 2020-12-14 10:47:53 · 349 阅读 · 0 评论 -
Java和Go的GC差异
https://www.zhihu.com/question/403065438/answer/1300295527作者:逃出黑洞的光线链接:https://www.zhihu.com/question/403065438/answer/1426765597来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。首先要知道怎么标记垃圾(引用计数,根可达两种标记),再就是常用的垃圾回收算法(golang使用三色标记法,jvm使用分代回收法),然后关于写屏障有两种写屏障及.转载 2020-12-14 10:28:43 · 1955 阅读 · 0 评论 -
go语言垃圾回收机制详解
Golang GC 垃圾回收机制详解独一无二的小个性https://blog.csdn.net/u010649766/article/details/80582153摘要在实际使用 go 语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究。本文对研究的结果进行一下总结。什么是垃圾回收?曾几何时,内存管理是程序员开发应用的一大难题。传统的系统级编程语言(主要指C/C++)中,程序员必须对内存小心的进行管理操作,控制内存的申请及释放。稍有..转载 2020-12-14 10:39:33 · 800 阅读 · 0 评论 -
图解Golang的GC算法
图解Golang的GC算法原创RyuGou程序猿菜刚RyuGou2019-03-10来源:https://mp.weixin.qq.com/s/_h0-8hma5y_FHKBeFuOOyw虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。以下是Golang GC算法的里程碑: v1.1 STW v1.3 Mark STW, Sweep 并行 v1.5 三色标记法 v1.8 hy...转载 2020-12-11 15:24:38 · 742 阅读 · 0 评论 -
golang 使用 consul 做服务发现
原文地址:golang 使用 consul 做服务发现当我们服务越来越多,如果服务配置了弹性伸缩,或者当服务不可用时,我们需要随时动态掌握可以使用的服务数量,并向可提供响应的服务发送请求。这时我们需要服务发现功能,当新增服务时,服务可以自动向consul注册,客户端直接向consul发送请求,获取可用服务的地址和端口;当服务不可用时,动态的更新consul,删除该服务在consul中的列表docker安装consuldocker run --name consul1 -d -p 8500:.转载 2020-12-04 16:25:58 · 1408 阅读 · 0 评论 -
golang编译之vendor机制
原文地址:golang编译之vendor机制 Go 1.5引入了vendor 机制,但是需要手动设置环境变量 GO15VENDOREXPERIMENT= 1,Go编译器才能启用。从Go1.6起,,默认开启 vendor 目录查找,vendor 机制就是在包中引入 vendor 目录,将依赖的外部包复制到 vendor 目录下,编译器在查找外部依赖包时,优先在 vendor 目录下查找。整个查找第三方包的流程如下:如果当前包下有vendor目录,则从其下查找第三方的包,如果没有找到,则继续...转载 2020-08-05 09:15:39 · 5504 阅读 · 0 评论 -
kubernetes 客户端client-go 使用及常用api
kubernetes 客户端client-go 使用及常用api————————————————版权声明:本文为CSDN博主「逆月林」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/niyuelin1990/article/details/79076805client-go 是kubernetes 的go语言客户端简单易用,但需要小心区分kubernetes的API版本。简单例子import (转载 2020-07-03 10:20:27 · 3376 阅读 · 0 评论 -
go mod 几个常用命令
go mod 生成 vendorgo mod可以使项目从GOPATH的强制依赖中独立出来,也就是说你的项目依赖不再需要放在在GOPATH下面了,每个工程的依赖包、版本可由当前工程独立管理!GO111MODULE GO111MODULE有三个值:off,on和auto(默认值)。 GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。 GO111MODULE=on,go命令行会使用modul..转载 2020-07-01 17:07:22 · 4060 阅读 · 0 评论 -
Kubernetes的client-go库介绍
https://www.jianshu.com/p/d17f70369c35Kubernetes的client-go库介绍client-go的作用github上client-go官方项目工程基本介绍Kubernetes官方从2016年8月份开始,将Kubernetes资源操作相关的核心源码抽取出来,独立出来一个项目Client-go,作为官方提供的Go client。Kubernetes的部分代码也是基于这个client实现的,所以对这个client的质量、性能等方面还是非常...转载 2020-06-26 23:56:17 · 614 阅读 · 2 评论 -
精选的 Go 框架,库和软件的精选清单
来自:https://learnku.com/articles/41230精选的 Go 框架,库和软件的精选清单概述这是一个 Go 相关的框架,库和软件的精选清单,引用自awesome-go项目,并翻译补充而来这是一个 Go 相关的框架,库和软件的精选清单,引用自awesome-go项目,并翻译补充而来如果看到不再维护的项目,请及时联系发帖者或留言,谢谢!*音频和音乐用于处理音频的库。 EasyMIDI-EasyMidi 是一个简单可靠的库,用于处理标准 Midi...转载 2020-05-09 11:24:30 · 7544 阅读 · 2 评论 -
在生产中使用Istio,我们学到了什么?
在生产中使用Istio,我们学到了什么?灵雀云https://www.jianshu.com/p/cf4d4258b7f6首先,给大家简单介绍一下Istio,Istio是一个Service Mesh的开源框架,来自Google,大部分使用Go语言来开发,是Service Mesh的集大成者。Istio数据层面主要使用envoy,Istio开发了一些 filter 扩展envoy的功...转载 2020-05-07 17:59:21 · 1013 阅读 · 0 评论 -
调用Kubernetes SDK实现二次开发
版权声明:本文为CSDN博主「you can make it」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/haohzhang/article/details/86578310Kubernetes对外暴露了很多REST API,有些公司会使用这些API来二次开发或者结合自身的系统进行一些二次开发,...转载 2020-04-16 09:49:31 · 1610 阅读 · 0 评论 -
用 Go 语言给 Lua/OpenResty 写扩展
用 Go 语言给 Lua/OpenResty 写扩展https://www.lbbniu.com/3477.html背景最近的一个lua项目中需要解析wbxml,WBXML是XML的二进制表示形式,Exchange与手机端之间的通讯采用的就是该协议,我需要解析到手机端提交过来的数据,以提高用户体验。但是lua没有现成的Wbxml解析库,从头撸一个势必要花费大量造轮子的时间,在网上...转载 2020-04-10 10:56:19 · 1230 阅读 · 0 评论 -
关于Go1.14,你一定想知道的性能提升与新特性
作者:绘你一世倾城链接:https://juejin.im/post/5e3f9990e51d4526cc3b1672来源:掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Go官方团队将在今年2月份发布1.14版本。相比较于之前的版本升级,Go1.14在性能提升上做了较大改动,还加入了很多新特性,我们一起来看一下Go1.14都给我们带来了哪些惊喜吧!1...转载 2020-03-17 13:39:05 · 886 阅读 · 0 评论 -
golang协程池设计
https://segmentfault.com/a/1190000018193161Why Poolgo自从出生就身带“高并发”的标签,其并发编程就是由groutine实现的,因其消耗资源低,性能高效,开发成本低的特性而被广泛应用到各种场景,例如服务端开发中使用的HTTP服务,在golangnet/http包中,每一个被监听到的tcp链接都是由一个groutine去完成处理其上下文的,...转载 2019-11-07 11:08:16 · 557 阅读 · 0 评论 -
让shell终端和goland控制台输出彩色的文字
让shell终端和goland控制台输出彩色的文字版权声明:本文为 Elonjelinek原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/Charliewolf/article/details/84771983终端输出彩色文字在终端输出这段命令,将的到一个红色背景、绿色文字,并不停闪烁的输出...转载 2019-10-22 16:29:01 · 1424 阅读 · 1 评论 -
golang控制台颜色输出(for windows)
Go语言:控制台输出有颜色的字https://www.jianshu.com/p/24b1bec99d76本方法只限用于Windows系统应用场景需要输出大量信息的运行日志(一般是服务器,Windows系统的) 某类客户端的调试界面(一般是游戏,特别是有第三方模组的)代码示例package mainimport ( "syscall")var (...转载 2019-10-22 16:26:24 · 6308 阅读 · 1 评论 -
Go语言中的复合类型及面向对象思想
1、结构体 struct定义格式:type 结构体名称 struct { 属性1 类型 属性2 类型 ...}结构体的初始化可以使用new关键词和var关键词,不同的是如果使用new,则返回类型是一个指针,使用var,则是结构体自身。type User struct { name string age int}转载 2015-08-22 11:01:15 · 2207 阅读 · 0 评论 -
Go语言中Tcp协议粘包问题处理
在用golang开发人工客服系统的时候碰到了粘包问题,那么什么是粘包呢?例如我们和客户端约定数据交互格式是一个json格式的字符串:{"Id":1,"Name":"golang","Message":"message"}当客户端发送数据给服务端的时候,如果服务端没有及时接收,客户端又发送了一条数据上来,这时候服务端才进行接收的话就会收到两个连续的字符串,形如:{"Id":1,"Name转载 2015-08-22 11:08:08 · 13440 阅读 · 2 评论