go 开源项目汇总

监控系统 序号 名称 项目地址 简介 1 OpenFalcon http://github.com/open-falcon/of-release OpenFalcon是一款小米监控系统。功能:*数据采集免配置:agent自发现、支持Plugin、主动推送模式; *容量水平扩展:生产环境每秒50万次数据收集、告警、存储、绘图,可持续水平扩展。*告警策略自发现:Web界面、支持策略模板、模板继承和覆盖 […]

Continue reading..go 开源项目汇总

go 框架使用问题

框架限定参数为结构体时,扩展出的方法传参数都要设置参数为该结构体,无法重命名。导致自己写的扩展方法无法利用与其他的地方。 框架限定函数类型时,扩展出的方法无法重命名 方法类型。导致自己实现的package都是这个框架的方法类型,导致自己的package不具有移植性。 go编程多态性实现,利用接口定义,传接口类型 golang方法重用,类似继承的实现, 多用组合,少实现继承

Continue reading..go 框架使用问题

golang html/template 简明教程

【模板标签】 模板标签用”{{“和”}}”括起来 【注释】 {{/* a comment */}} 使用“{{/*”和“*/}}”来包含注释内容 【变量】 {{.}} 此标签输出当前对象的值 {{.Admpub}} 表示输出Struct对象中字段或方法名称为“Admpub”的值。 当“Admpub”是匿名字段时,可以访问其内部字段或方法,比如“Com […]

Continue reading..golang html/template 简明教程

Golang开发支持平滑升级(优雅重启)的HTTP服务

使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑升级,需要以下几个步骤: 用新的可执行文件替换老的可执行文件(如只需优雅重启,可以跳过这一步) 通过pid给正在运行的老进程发送 特定的信号(kill -SIGUSR2 $pid) 正在运行的老进程,接收到指定的信号后,以子进程的方式启动 […]

Continue reading..Golang开发支持平滑升级(优雅重启)的HTTP服务

godoc 用法

godoc工具(第 3.6 节)在显示自定义包中的注释也有很好的效果:注释必须以 // 开始并无空行放在声明(包,类型,函数)前。godoc 会为每个文件生成一系列的网页。 例如: 在 doc_examples 目录下我们有第 11.7 节中的用来排序的 go 文件,文件中有一些注释(文件需要未编译) 命令行下进入目录下并输入命令: godoc -http=:6060 -goroot=&#8221 […]

Continue reading..godoc 用法

golang中的并发 sync.WaitGroup 和channel

并发的启动 这篇文章关于并发的启动我就一概而过了,如果要让一个函数并发运行,只需一个关键字”go“: func Afuntion(para1, para2, para3, …) { // Do some process // … } func main() { go Afuntion(para1, para2, para3, …) //只需加一个go前缀,Afu […]

Continue reading..golang中的并发 sync.WaitGroup 和channel

golang 反射调用函数

反射中调用函数 众所周知,golang中的函数是可以像普通的int、float等类型变量那样作为值的,例如: package main import “fmt” func hello() { fmt.Println(“Hello world!”) } func main() { hl := hello hl() } prints: hello world! 既然函数可以像普通的类型变量一样可以的话 […]

Continue reading..golang 反射调用函数

golang fmt 包学习

// Print 将参数列表 a 中的各个参数转换为字符串并写入到标准输出中。 // 非字符串参数之间会添加空格,返回写入的字节数。 func Print(a …interface{}) (n int, err error) // Println 功能类似 Print,只不过最后会添加一个换行符。 // 所有参数之间会添加空格,返回写入的字节数。 func Println(a …inter […]

Continue reading..golang fmt 包学习

GDB调试 快速简单教程

作者:liigo.com GDB是一个由GNU开源组织发布的、UNIX/Linux操作系统下的、基于命令行的、功能强大的程序调试工具。 GDB中的命令固然很多,但我们只需掌握其中十个左右的命令,就大致可以完成日常的基本的程序调试工作。  命令  解释  示例 file <文件名> 加载被调试的可执行程序文件。 因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。 (gd […]

Continue reading..GDB调试 快速简单教程

MySql 分区局限性总结

作者:joy696163 昨天晚上asers.z问我怎么样使得数据在搜索的时候和58.com差不多,而且展示数据的速度要快。我一直想着用mysql的分区表解决,而乔楚(乔大姐)则认为是采用sphinx来解决。 但后来我找了一个资料才发现,原来分区表还是有局限性的,比如他就不支持全文索引。我是看这里看到的。。 –START– Mysql5.1已经发行很久了,本文根据官方文档的 […]

Continue reading..MySql 分区局限性总结

go regexp 正则实例解释

文章来源于golang中国社区 英文进阶参考资料https://shapeshed.com/golang-regexp/ // 判断在 b 中能否找到正则表达式 pattern 所匹配的子串 // pattern:要查找的正则表达式 // b:要在其中进行查找的 []byte // matched:返回是否找到匹配项 // err:返回查找过程中遇到的任何错误 // 此函数通过调用 Regexp […]

Continue reading..go regexp 正则实例解释

使用Gulp构建网站小白教程

原文地址:https://www.h5jun.com/post/gulp-build 行业里有一种批评,说前端太浮躁,总是追逐新技术,感觉 grunt 还不熟悉,突然一夜之间满大街都在谈论 gulp 了。月影觉得不能怪技术发展太快,技术发展总是带来好处多于坏处,有时候我们确实需要鼓起勇气去“追求”技术潮流,当然理由是为了弄明白为什么有这些技术工具,而无关于什么浮躁之类的事儿。 也许是从业很多年有点 […]

Continue reading..使用Gulp构建网站小白教程

linux 安装 Shadowsocks 客户端

Ubuntu 使用如下命令安装即可,其他系统可使用 python 安装,具体请自行 Google apt-get install shadowsocks -y 安装完成后编辑配置文件,填写对应服务器地址 vim /etc/shadowsocks.json 服务器配置样例如下 { “server”:”1.1.1.1″, “server_port”:8383, “local_address”: “12 […]

Continue reading..linux 安装 Shadowsocks 客户端

mysql分区分表的原理以及区别

一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,具体请参考mysql分区功能详细介绍,以及实例 二,mysql分表和分区有什么区别呢 1,实现方式上 a),mysql的分表是真正的分表,一张表分成很多表后,每一个小表都是完 […]

Continue reading..mysql分区分表的原理以及区别

node实现图片服务器学习版

当我们开发一个Web项目的时候,为了将图片管理与web服务分离开,通常都会搭建一个图片服务器。 之所以选择nodejs是因为使用nodejs来搭建web项目相当简单而且快速,虽然这个图片服务器很简单,也有很多人会认为使用nodejs来当图片服务器不合适,但是当我们的应用没有达到非常大的程度的情况下,其实nodejs还是够用的。 会使用到的工具如下: nodejs express(nodejs mv […]

Continue reading..node实现图片服务器学习版