随笔分类 -  go

Golang的 signal
摘要:在实际项目中我们可能有下面的需求:1、修改了配置文件后,希望在不重启进程的情况下重新加载配置文件;2、当用 Ctrl + C 强制关闭应用后,做一些必要的处理; 这时候就需要通过信号传递来进行处理了。golang中对信号的处理主要使用os/signal包中的两个方法:一个是notify方法用来监听收 阅读全文

posted @ 2019-10-20 21:30 ExplorerMan 阅读(337) 评论(0) 推荐(0) 编辑

golang channel 使用总结
摘要:不同于传统的多线程并发模型使用共享内存来实现线程间通信的方式,golang 的哲学是通过 channel 进行协程(goroutine)之间的通信来实现数据共享: Do not communicate by sharing memory; instead, share memory by commu 阅读全文

posted @ 2019-10-20 21:25 ExplorerMan 阅读(1062) 评论(0) 推荐(1) 编辑

glide包管理工具
摘要:上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步。 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依赖的库。 php项目中使用composer,javascript项目中使用npm,那么在go项目中, 阅读全文

posted @ 2019-10-20 18:08 ExplorerMan 阅读(404) 评论(0) 推荐(0) 编辑

Golang开源项目
摘要:谷歌官方维护了一个基于go语言的开源项目列表: https://github.com/golang/go/wiki/Projects 其中有非常多的优秀项目值得学习,有几百行代码适合新手阅读的项目,也有大型如nsq、docker等的项目。 下面推荐几款适合学习的项目: 1、cache2go http 阅读全文

posted @ 2019-10-19 21:20 ExplorerMan 阅读(750) 评论(0) 推荐(0) 编辑

GitHub上优秀的Go开源项目
摘要:近一年来,学习和研究Go语言,断断续续的收集了一些比较优秀的开源项目,这些项目都非常不错,可以供我们学习和研究Go用,从中可以学到很多关于Go的使用、技巧以及相关工具和方法。我把他们整理发出来,大家有兴趣可以根据自己的爱好选择一些进行研究和阅读,提升自己的能力,更好的使用Go语言,开发出更优秀的项目 阅读全文

posted @ 2019-10-19 21:16 ExplorerMan 阅读(3378) 评论(0) 推荐(0) 编辑

mgo连接池
摘要:package main import ( "log" "sync" "time" "gopkg.in/mgo.v2" ) var sizeMax = 50 var size = 0 var sizeMu = sync.Mutex{} var pool = make(chan *mgo.Sessio 阅读全文

posted @ 2019-09-29 16:26 ExplorerMan 阅读(334) 评论(0) 推荐(0) 编辑

Python flask 与 GO WEB服务器性能对比
摘要:测试环境: 系统: CentOS 7.1 Mem: 8G CPU: 虚拟机16核 Python版本: python3.6 Flask版本: 0.12.2 Golang版本: 1.6.3 测试结果:Flask 总耗时 88.441秒,平均每秒处理1130个请求Gunicorn多进程时耗时 15.842 阅读全文

posted @ 2019-09-20 15:55 ExplorerMan 阅读(998) 评论(0) 推荐(0) 编辑

go语言20小时从入门到精通(六、工程管理)
摘要:在实际的开发工作中,直接调用编译器进行编译和链接的场景是少而又少,因为在工程中不会简单到只有一个源代码文件,且源文件之间会有相互的依赖关系。如果这样一个文件一个文件逐步编译,那不亚于一场灾难。 Go语言的设计者作为行业老将,自然不会忽略这一点。早期Go语言使用makefile作为临时方案,到了Go 阅读全文

posted @ 2019-09-18 11:25 ExplorerMan 阅读(266) 评论(0) 推荐(0) 编辑

从gopath到go mod的一次尝试
摘要:windows下的尝试: gomod初尝试下载官方包1.11(及其以上版本将会自动支持gomod) 默认GO111MODULE=auto(auto是指如果在gopath下不启用mod)go mod help查看帮助go mod init<项目模块名称>初始化模块,会在项目根目录下生成 go.mod文 阅读全文

posted @ 2019-09-18 11:10 ExplorerMan 阅读(933) 评论(0) 推荐(0) 编辑

告别GOPATH,快速使用 go mod(Golang包管理工具)
摘要:如果你还在使用 GOPATH 模式来开发Golang程序,那么你可以参考本文来告别 GOPATH,并带给你一个方便的包管理工具。 关于 go mod 的说明和简单使用,可以参考: 1、Go1.1.1新功能module的介绍及使用 2、Introduction to Go Modules 3、Go 1 阅读全文

posted @ 2019-09-17 20:11 ExplorerMan 阅读(352) 评论(0) 推荐(0) 编辑

Golang中基础的命令行模块urfave/cli
摘要:前言相信只要部署过线上服务,都知道启动参数一定是必不可少的,当你在不同的网络、硬件、软件环境下去启动一个服务的时候,总会有一些启动参数是不确定的,这时候就需要通过命令行模块去解析这些参数,urfave/cli是Golang中一个简单实用的命令行工具。 安装通过 go get github.com/u 阅读全文

posted @ 2019-09-17 17:10 ExplorerMan 阅读(1866) 评论(0) 推荐(0) 编辑

Golang的一个CLI框架
摘要:因为机缘巧合,因为希望能在VPS中使用百度网盘,了解到了一个开源的项目BaiduPCS-Go,可以用来直接存取访问百度网盘,做的相当不错 而且看ISSUES,作者可能还是个学生,很强的样子。稍微看了下代码,发现了一个很不错的用来写命令行程序CLI的框架,也是在Github上开源的,因为Golang主 阅读全文

posted @ 2019-09-17 17:08 ExplorerMan 阅读(618) 评论(0) 推荐(0) 编辑

Beego开启热升级
摘要:1、打开配置 2、写入pid 程序入口main()函数里写入pid 3、测试热升级 1、编写代码,在beego应用的controller中Get方法实现大概如下: 2、打开两个终端一个终端输入:ps -ef | grep 应用名一个终端输入请求:curl "http://127.0.0.1:8080 阅读全文

posted @ 2019-09-16 15:04 ExplorerMan 阅读(788) 评论(0) 推荐(0) 编辑

Beego框架的一条神秘日志引发的思考
摘要:公司目前的后台是用Beego框架搭的,并且为了服务的不中断升级,我们开启了Beego的Grace模块,用于热升级支持。一切都跑井然有序,直到有一天,领导甩出一些服务日志,告知程序一直报错: 2018/03/08 17:49:34 20848 Received SIGINT.2018/03/08 17 阅读全文

posted @ 2019-09-16 12:00 ExplorerMan 阅读(763) 评论(0) 推荐(0) 编辑

go语言的defer语句
摘要:go语言defer语句的用法 defer的语法 defer后面必须是函数调用语句,不能是其他语句,否则编译器会出错。 这个例子中defer后面使用的是n++指令,不是一个函数调用语句,编译器就报错: defer的基本功能 defer后面的函数在defer语句所在的函数执行结束的时候会被调用;我们查看 阅读全文

posted @ 2019-09-14 22:23 ExplorerMan 阅读(390) 评论(0) 推荐(0) 编辑

GO-REDIS的一些高级用法
摘要:1. 前言 说到Golang的Redis库,用到最多的恐怕是redigo 和 go-redis。其中 redigo 不支持对集群的访问。本文想聊聊go-redis 2个高级用法 2. 开启对Cluster中Slave Node的访问 在一个负载比较高的Redis Cluster中,如果允许对slav 阅读全文

posted @ 2019-09-09 19:02 ExplorerMan 阅读(1968) 评论(0) 推荐(0) 编辑

go使用go-redis操作redis 连接类型,pipline, 发布订阅
摘要:内容: 一 . 客户端Client(普通模式,主从模式,哨兵模式)二. conn连接(连接, pipline, 发布订阅等)三. 示例程序(连接, pipline, 发布订阅等)客户端Client 普通模式的客户端go redis依据用途提供了多种客户端创建的函数, 如下: func NewClie 阅读全文

posted @ 2019-09-09 17:54 ExplorerMan 阅读(5966) 评论(0) 推荐(0) 编辑

聊聊GO-REDIS的一些高级用法
摘要:1. 前言 说到Golang的Redis库,用到最多的恐怕是redigo 和 go-redis。其中 redigo 不支持对集群的访问。本文想聊聊go-redis 2个高级用法 2. 开启对Cluster中Slave Node的访问 在一个负载比较高的Redis Cluster中,如果允许对slav 阅读全文

posted @ 2019-09-09 16:18 ExplorerMan 阅读(448) 评论(0) 推荐(0) 编辑

Golang- import 导入包的几种方式:点,别名与下划线
摘要:包的导入语法 在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用 fmt.Println("hello world") 上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块,当然G 阅读全文

posted @ 2019-09-09 11:36 ExplorerMan 阅读(10089) 评论(0) 推荐(1) 编辑

接口文档神器之apidoc
摘要://@desn:apidoc linux环境 windows环境使用 //@desn:码字不宜,转载请注明出处 //@author:张慧源 <turing_zhy@163.com> //@date:2018/5/6 正文: windows版安装: 1.安装nodejs (nodejs环境) 32 位 阅读全文

posted @ 2019-09-06 16:45 ExplorerMan 阅读(322) 评论(0) 推荐(0) 编辑

导航