Go
文章平均质量分 60
black_OX
这个作者很懒,什么都没留下…
展开
-
Golang 中"泛型"的支持
Golang不支持一般的类似java中的标记式泛型。很多人因此而十分不满,认为没有泛型增加了很多工作量。而目前由于泛型支持的复杂性,Golang的设计和实现者并没有把这个泛型支持作为紧急需要增加的特性。但是,如果真的没有泛型,就一定不行了么?答案当然是否定的。没有泛型也可以,而且我觉得代码更简单,直接,有趣(个人观点,勿喷)。我们这里打算以一些例子来讲解Golang中如何处理这个问题。转载 2016-06-08 17:01:56 · 9179 阅读 · 0 评论 -
golang实现base62编码
package mainimport ( "fmt" "math")var base = []string {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G",原创 2016-07-05 14:15:05 · 2222 阅读 · 1 评论 -
go利用x/net/html包实现的蜘蛛
看了网上很多个spider版本, 几乎都是使用regexp包正则匹配实现.其实使用DOC, 性能更好, 也更优雅package mainimport ( "fmt" "net/http" "os" "golang.org/x/net/html")func visit(links []string, n *html.Node) []string {原创 2016-07-21 10:46:05 · 4150 阅读 · 0 评论 -
NSQ的安装运行以及编程实践
NSQ的安装运行以及编程实践配置Golang环境下载标准安装包https://golang.org/dl/解压到/usr/local目录sudo tar -xzvf go1.5.2.linux-amd64.tar.gz /usr/local在$HOME目录下创建文件夹gopath在~/.bashr转载 2016-09-14 11:45:28 · 3508 阅读 · 0 评论 -
go 数据库操作
Golang支持DB操作位于database包下,支持基本CRUD操作、事务和Prepared Statement,本文以MySQL为例。MySQL驱动安装 使用数据库之前,必须安装相关MySQL数据驱动[1],如果未安装驱动或者没有引入驱动库会报以下错误: failed to open database: sql: unknown driver "mysql" (forgotte转载 2017-07-18 11:49:35 · 1000 阅读 · 0 评论 -
go 数据库操作2
golang本身没有提供连接MySQL的驱动,但是定义了标准接口供第三方开发驱动。这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/MySQL这个驱动,更新维护都比较好。下面演示下具体的使用,完整代码示例可以参考最后。下载驱动sudo go get github.com/go-sql-driver/mysql如转载 2017-07-18 13:46:55 · 1393 阅读 · 0 评论 -
Golang热重启
什么是热重启:新老程序(进程)无缝替换,同时可以保持对client的服务。让client端感觉不到你的服务挂掉了。 比如重新加载配置文件,需要重启一下,替换老程序需要重启一下,就需要用到热重启。但使用Golang的场景,其实直接在http proxy层面做切流量更方便.原理通过发送signal(信号)与进程间交互。 信号可以自己定义,指定拦截系统的信号,改变系统默认行为来自定义操作转载 2017-09-06 17:50:35 · 7158 阅读 · 1 评论 -
热重启golang服务器(graceful restart golang http server)
服务端代码经常需要升级,对于线上系统的升级常用的做法是,通过前端的负载均衡(如nginx)来保证升级时至少有一个服务可用,依次(灰度)升级。而另一种更方便的方法是在应用上做热重启,直接升级应用而不停服务。原理热重启的原理非常简单,但是涉及到一些系统调用以及父子进程之间文件句柄的传递等等细节比较多。处理过程分为以下几个步骤:监听信号(USR2)收到信号时fork子进程(使转载 2017-09-06 17:51:11 · 6672 阅读 · 1 评论 -
echo框架使用:获取与配置
运行环境 1Linux :CentOS 7.0Go :go version go1.8 linux/amd64GOPATH :/root/sdk/go/lib运行环境 2Windows10Go :go version go1.8 windows/amd64GOPATH :C:\Go\lib安装 gityum insta转载 2017-09-08 12:19:31 · 4595 阅读 · 0 评论