网站首页 成长录 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。
Go tool pprof性能监控调试工具基本使用说明
JackLiu'sGithub地址:[https://github.com/iotd/jackliu-golang-notes/blob/master/zh_CN/tool-pprof.md](https://links.jianshu.com/go?to=https%3A%2F%2Fgithub.com%2Fiotd...
阅读全文
Go在酷狗数据库中间件的应用
本次分享主要围绕Go在数据库中间件应用这方面展开;首先会聊一下程序开发的需求,具体会参考Go的特性是否满足这些需求;接下来会介绍一下近期采用Go语言开发的mysql中间件这个项目,整体方案,分表路由、故障切换、平滑扩容,系统运维,主要从以上这五个方面进行展开。程序开发需求程序开发对开发语言的要求,简单概括如下几点:语言...
阅读全文
go语言反射的总结
首先巴拉巴拉一下golang反射机制的三个定律*1.反射可以从接口类型到反射类型对象*2.反射可以从反射类型对象到接口类型*3.修改反射类型变量的内部值需要保证其可设置性reflect的基本使用*reflect.ValueOf(obj)返回obj的Value(如果要对obj进行修改的话传入变量地址)*reflect.T...
阅读全文
go 文件操作
如果使用http操作文件可以参考:File建立File内存地址__//打开一个文件,如果没有就创建f,err:=os.Create("D:\\测试\\a.txt")//返回文件的内存地址os.NewFile(fd,name)打开文件__//返回File的内存地址,错误信息,通过os库调用funcOpen(namestr...
阅读全文
Golang unsafe包使用
unsafe包提供了访问底层内存的方法。是用unsafe函数可以提高访问对象的速度。通常用于对大数组的遍历。unsafe内容介绍__funcAlignof(xArbitraryType)uintptrfuncOffsetof(xArbitraryType)uintptrfuncSizeof(xArbitraryType...
阅读全文
CGo--go语言与C语言互相调用
在以前的认识中,不同语言的相互交流大概只能靠网络依靠json来传递数据。下面来了解一个新的方法:嵌入式开发首先巴拉巴拉一下C++吧*C++是一种**静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程**这是C++简介上对C++的定义。(以前一直以为c++是面向过程的语言...
阅读全文
创建DB连接
创建DB对象*mysql驱动__import(_"github.com/go-sql-driver/mysql""database/sql")db,err:=sql.Open("mysql",Username+":"+PassWord+"@tcp(localhost:3306)/"+dbname+"?charset=u...
阅读全文
b2db的使用操作
__b2db是一个dao层的框架,现在网络上有好多golangDao的框架,比如beegoo.rm、beedb;在使用过程中感觉beegoo.rm太大了,而beedb不支持事物以及一对一,多对多查询。刚开始的的时候无聊更改了beedb的代码,增接了事物这个功能,后来有时间了就重新写了b2db。下面来说b2db的使用吧:...
阅读全文
go 网络请求封装
HTTP简单demo__url:="http://www.xiaohuar.com"//定义一个URl。resp,err:=http.Get(url)//获取url的内容。iferr!=nil{//如果有异常就打印异常log.Fatal(err)}deferresp.Body.Close()//在方法运行完后关闭连接,...
阅读全文
go语言HTTP server端如何验证client端证书的内容
在前一篇文章"go语言实现双向TLS认证的RESTService"中介绍了如何实现client和server端之间的双向TLS认证,这里再介绍如何在server端获取client证书的内容。比如如何获取证书里的Subject属性等。__packagemainimport("net/http""encoding/json...
阅读全文
go语言gRPC简单例子
一个简单的用go语言开发gRPC程序例子。安装gRPCgRPC的安装需要3块内容1\.安装gRPC环境这个环境包括gRPC编译运行时刻需要的库。`$gogetgoogle.golang.org/grpc`2\.安装ProtocolBuffersv3这个是protoc编译器,用来编译.proto文件生成gRPC服务的go...
阅读全文
go语言实现TCP端口转发
有些时候项目会碰到需要端口转发的需求,比如:1.一个服务发布在公共端口上,客户端进来的请求需要转发到另一个本地端口,或者另一台主机;或者2.一个公共服务需要转到到多台内部服务上,轮询,按优先级等;或者3.一个服务请求进来之前需要做请求检查,例如安全功能参数等检查,类似网关功能,只有验证通过的请求才能发送给实际服务器。4...
阅读全文
go语言RSA API使用示例
go语言RSAAPI使用示例第零步:常用的包__import("os""fmt""log""errors""io/ioutil""crypto/rsa""crypto/rand""crypto/x509""crypto/sha256""encoding/pem""encoding/base64")第一步:生成RSA密钥...
阅读全文
go语言为什么没有min/max(int, int)函数
golang为什么没有min/max(int,int)函数我们知道go语言math包里面定义了min/max函数,但是是float64类型的,而并没有整数类型的min/max。go语言的math包里面定义的min/max函数如下:__math.Min(float64,float64)float64math.Max(fl...
阅读全文
go语言build和install, 以及包名的关系
这篇文件介绍gobuild与goinstall的用法,包括包和可执行文件的关系,包的命名关系。用法`$gobuild/install`说明:是从$GOPATH/src路径下面的目录名,例如:1.$goinstalllib编译安装packagelib2.$goinstalllib2lib/util同时编译安装lib2和l...
阅读全文