随笔分类 -  go

如何用 Go 实现热重启
摘要:热重启 热重启(Zero Downtime),指新老进程无缝切换,在替换过程中可保持对 client 的服务。 原理 父进程监听重启信号 在收到重启信号后,父进程调用 fork ,同时传递 socket 描述符给子进程 子进程接收并监听父进程传递的 socket 描述符 在子进程启动成功之后,父进程 阅读全文

posted @ 2019-07-18 11:26 生活费 阅读(801) 评论(0) 推荐(0) 编辑

golang学习之旅:使用go语言操作mysql数据库
摘要:1.下载并导入数据库驱动包 官方不提供实现,先下载第三方的实现,点击这里查看各种各样的实现版本。这里选择了Go-MySQL-Driver这个实现。地址是:https://github.com/go-sql-driver/mysql/。 然后按照里面的说明下载驱动包: 最后导入包即可: 2.连接至数据 阅读全文

posted @ 2019-04-04 15:53 生活费 阅读(964) 评论(0) 推荐(0) 编辑

golang协程池设计
摘要:Why Pool go自从出生就身带“高并发”的标签,其并发编程就是由groutine实现的,因其消耗资源低,性能高效,开发成本低的特性而被广泛应用到各种场景,例如服务端开发中使用的HTTP服务,在golang net/http包中,每一个被监听到的tcp链接都是由一个groutine去完成处理其上 阅读全文

posted @ 2019-02-20 11:29 生活费 阅读(1173) 评论(0) 推荐(0) 编辑

GoLang-字符串
摘要:初始化 字符串操作 编码过程中避免不了中文字符,那我们该如何提取一个中文呢?首先我们要知道string[index]获取的是字符byte,就无法像C#中"老虞"[0]来取到‘老’,在Go中需要将字符串转换成rune数组,runne数组中就可以通过数组下标获取一个汉字所标识的Unicode码,再将Un 阅读全文

posted @ 2018-09-11 11:40 生活费 阅读(264) 评论(0) 推荐(0) 编辑

基础知识 - Golang 中的正则表达式
摘要:Golang中的正则表达式 用法: 单一: . 匹配任意一个字符,如果设置 s = true,则可以匹配换行符 [字符类] 匹配“字符类”中的一个字符,“字符类”见后面的说明 [^字符类] 匹配“字符类”外的一个字符,“字符类”见后面的说明 \小写Perl标记 匹配“Perl类”中的一个字符,“Pe 阅读全文

posted @ 2018-09-11 11:30 生活费 阅读(228) 评论(0) 推荐(0) 编辑

Golang学习 - regexp 包
摘要:// 函数 // 判断在 b(s、r)中能否找到 pattern 所匹配的字符串 func Match(pattern string, b []byte) (matched bool, err error) func MatchString(pattern string, s string) (ma 阅读全文

posted @ 2018-09-11 11:28 生活费 阅读(273) 评论(0) 推荐(0) 编辑

golang gc 优化思路以及实例分析
摘要:一个即将上线的go 写的高频服务,压测的时候发现 gc 特别高,高到10%-15% 左右了,本文记录下优化 gc 的过程和和思路。线上环境1.10. 首先,查看gc 是否有异常,我们可以使用 gctrace 跟踪实时的gc 。执行下面命令可以看到gc 的实时信息。 输出结果如下: gc 45:表示第 阅读全文

posted @ 2018-04-09 12:30 生活费 阅读(3662) 评论(0) 推荐(0) 编辑

golang bufio、ioutil读文件的速度比较(性能测试)和影响因素分析
摘要:前言 golang读取文件的方式主要有4种: 使用File自带的Read方法 使用bufio库的Read方法 使用io/ioutil库的ReadAll() 使用io/ioutil库的ReadFile() 关于前3种方式的速度比较,我最早是在 GoLang几种读文件方式的比较 看过,但在该blog的评 阅读全文

posted @ 2018-03-21 10:28 生活费 阅读(4486) 评论(0) 推荐(0) 编辑

Golang 新手可能会踩的 50 个坑
摘要:前言 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。 如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的 阅读全文

posted @ 2018-03-16 17:18 生活费 阅读(26884) 评论(2) 推荐(7) 编辑

golang 解决 TCP 粘包问题
摘要:什么是 TCP 粘包问题以及为什么会产生 TCP 粘包,本文不加讨论。本文使用 golang 的 bufio.Scanner 来实现自定义协议解包。 协议数据包定义 本文模拟一个日志服务器,该服务器接收客户端传到的数据包并显示出来 协议定义部分没有什么好讲的,根据具体的业务逻辑定义即可。 数据打包 阅读全文

posted @ 2018-03-07 15:40 生活费 阅读(1031) 评论(1) 推荐(1) 编辑

gf框架之grpool - 高性能的goroutine池
摘要:Go语言中的goroutine虽然相对于系统线程来说比较轻量级,但是在高并发量下的goroutine频繁创建和销毁对于性能损耗以及GC来说压力也不小。充分将goroutine复用,减少goroutine的创建/销毁的性能损耗,这便是grpool对goroutine进行池化封装的目的。例如,针对于10 阅读全文

posted @ 2018-02-05 10:53 生活费 阅读(1970) 评论(0) 推荐(0) 编辑

Golang IO包的妙用
摘要:Golang 标准库对 IO 的抽象非常精巧,各个组件可以随意组合,可以作为接口设计的典范。这篇文章结合一个实际的例子来和大家分享一下。 背景 以一个RPC的协议包来说,每个包有如下结构 其中TotalSize是整个包除去TotalSize后的字节数, Magic是一个固定长度的字串,Payload 阅读全文

posted @ 2018-01-22 17:18 生活费 阅读(399) 评论(0) 推荐(0) 编辑

一分钟上手, 让 Golang 操作数据库成为一种享受
摘要:gorose, 最风骚的 go orm, 拥有链式操作, 开箱即用, 一分钟上手等八大风骚, 让 golang 操作数据库成为一种享受, 妈妈再也看不到我处理数据的痛苦了, 下面就来为大家一一讲解 gorose 的风情。 风骚一 开箱即用, 一分钟上手 风骚二 链式操作, 尽显妩媚之姿 get sq 阅读全文

posted @ 2018-01-17 17:55 生活费 阅读(1162) 评论(0) 推荐(0) 编辑

go post 上传文件的例子
摘要:go post 上传文件 package main import ( "bytes" "fmt" "io" "mime/multipart" "net/http" "os" ) func postFile(filename string, target_url string) (*http.Resp 阅读全文

posted @ 2017-10-27 10:18 生活费 阅读(8408) 评论(0) 推荐(0) 编辑

Golang Redis操作
摘要:1. Redis简介 Redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。 1.1 特点 支持更多数据类型 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(so 阅读全文

posted @ 2017-07-05 12:05 生活费 阅读(3548) 评论(0) 推荐(1) 编辑

RabbitMQ安装|使用|概念|Golang开发
摘要:手册:http://www.rabbitmq.com/getstarted.html 安装:http://www.rabbitmq.com/download.html 参考:http://blog.csdn.net/whycold/article/details/41119807 一.介绍 AMQP 阅读全文

posted @ 2017-07-04 15:14 生活费 阅读(1368) 评论(0) 推荐(0) 编辑

GOLANG IMPORT使用入门
摘要:总结的很好,《golang web 编程》作者维护的golang博客:http://beego.me/ 。。。。。。。。。。。。。。。。 我们在写Go代码的时候经常用到import这个命令用来导入包文件,而我们经常看到的方式参考如下: import( "fmt" ) 然后我们代码里面可以通过如下的方 阅读全文

posted @ 2016-05-30 10:15 生活费 阅读(447) 评论(0) 推荐(0) 编辑

导航