Docker与Golang的巧妙结合

下面的文章假定你已经安装了Docker。不必是最新版本(这篇文章不会使用Docker任何花哨的功能)。没有go的Go…意思是:“不用安装go就能使用Go”。如果你写Go代码,或者你对Go语言有一点点兴趣,你肯定要安装了Go编译器和Go工具链,所以你可能想知道:“重点是什么?”;但有些情况下,你想不安装Go就来编译Go。机器上依旧有老版本Go 1.2(你不能或不想更新),不得不使用这个代码库,需要一个高版本的工具链。想使用Go1.5的交叉编译功能(例如,确保能从一个Linux系统创建操作系统X的二...阅读全文

2016-10-19 08:45 u012798391
阅读:1579 评论:0

golang在windows下安装和使用protobuf

安装部分 1.在windows下安装好GO包,下载地址http://www.golangtc.com/download 2.设置GOPATH的环境变量,从github上获取的protobuf会下载到GOPATH目录下 3.安装GIT包,https://git-scm.com/downloads/ 4.在PATH变量中添加GIT.exe的路径D:\Program Files\Git\bin(自己选择自己安装的路径) 5.在CMD中分别运行git和go命令,看看能不能识别这两个命令,如果不行,应该是...阅读全文

2016-10-10 16:15 easy_mind
阅读:7521 评论:1

CentOS 6.8 配置GO语言开发环境

Go语言是谷歌2009发布的第二款开源编程语言,Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 鉴于越来越多的开源项目都采用Go为开发语言,本文介绍Linux(CentOS 6.8)下GO开发环境的搭建与使用。 一、Go安装使用 1、下载Go源码包 https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz 上传到/usr/local/src目...阅读全文

阅读:1059 评论:0

golang实现权重轮询调度算法(Weighted Round-Robin Scheduling)

最近在看golang连接mysql数据库的例子(Go-MySQL-Driver),但是想到连接数据库肯定会有连接多从库的需求,而且每个从库的权重也会不一样,参考<<权重轮询调度算法(Weighted Round-Robin Scheduling)>>这篇文章写了一个golang版本的权重轮询调度算法,请大家指教,不多说了直接上代码: package main import ( "fmt" "time" ) var slaveDns = map[int]map[string]interface{}...阅读全文

阅读:4394 评论:0

为什么选择使用Go语言

为什么选择使用Go语言 国内很多云创业公司都会选择把Go作为首要语言,例如DaoCloud。为什么会选择Go呢?与其他语言的应用相比,它有什么优点呢? 1、学习曲线 它包含了类C语法、GC内置和工程工具。这一点非常重要,因为Go语言容易学习,所以一个普通的大学生花一个星期就能写出来可以上手的、高性能的应用。在国内大家都追求快,这也是为什么国内Go流行的原因之一。 2、效率 Go拥有接近C的运行效率和接近PHP的开发效率,这就很有利的支撑了上面大家追求快速的需求。 3、出身名门、血统纯正 之所以说...阅读全文

阅读:2078 评论:0

Golang MongoDB 驱动 mgo 的若干问题

mgo 是 MongoDB 的 Golang 驱动。 连接池 我们通过 Dial 函数创建一个新的 session: session, err := mgo.Dial(url) 创建的 session 能够和 MongoDB 集群中的所有服务器通讯。需要注意的是,对于一个集群只需要调用一次 Dial,通过此 Dial 返回的 session 的 New 和 Copy 方法能够创建更多的 session 出来,这些 session 共用底层的连接池(Dial 创建的多个 session 之间使用不...阅读全文

阅读:4732 评论:0

go语言实战向导

版权声明:本文由魏佳原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/173 来源:腾云阁 https://www.qcloud.com/community 使用go语言做后台服务已经有3年了,通过项目去检验一个又一个的想法,然后不断总结,优化,最终形成了自己的一整套体系,小到一个打印对象的方法,大到一个web后台项目最佳实践指导,这一点一滴都是在不断的实践中进化开来。以下内容将是一次整体的汇报,各位看官如有兴致,请移步G...阅读全文

2016-11-09 12:07 qian_xiaoqian
阅读:1489 评论:0

原 用go实现跨平台Autoit和按键精灵功能示例代码

Robotgo v0.40.0对鼠标键盘操作进行了大幅度的完善,由于跨平台切换测试麻烦(合并几个平台的代码到对比上传代码都浪费了不少时间)和C代码生产效率与Go和JavaScript不在一个级别上,没有支持窗口和进程对应窗口的选择和Bounds,将在下一个版本完善,键盘操作可能在某些输入法上有些问题请切换到系统输入法(目前优先完成窗口句柄的问题,后面会解决该问题). 项目地址:https://github.com/go-vgo/robotgo OSC@GIT:https://git.oschin...阅读全文

阅读:3269 评论:0

为Go Web App 创建一个主页面

大多数web 都有一个相同的布局。这个布局可能包含一个header或者footer,甚至可能包含一个导航菜单。Go的标准库提供一个简单的方式来创建这些基本元素,通过被不同的页面重用,创建出模板页的效果。 这个简单的例子来解释如何实现的: 让我们来创建一个简单的包含两个view的web ,一个是 main 一个是about。这两个view都有相同的header和footer。 header模板的代码如下: {{ define "header" }} <!DOCTYPE html> <html> <...阅读全文

2016-10-02 17:55 qq_36290329
阅读:1273 评论:0

【GoLang】Web工作方式

我们平时浏览网页的时候,会打开浏览器,输入网址后按下回车键,然后就会显示出你想要浏览的内容。在这个看似简单的用户行为背后,到底隐藏了些什么呢? 对于普通的上网过程,系统其实是这样做的:浏览器本身是一个客户端,当你输入URL的时候,首先浏览器会去请求DNS服务器,通过DNS获取相应的域名对应的IP,然后通过IP地址找到IP对应的服务器后,要求建立TCP连接,等浏览器发送完HTTP Request(请求)包后,服务器接收到请求包之后才开始处理请求包,服务器调用自身服务,返回HTTP Response...阅读全文

2016-11-26 01:30 teng_ontheway
阅读:2190 评论:0

golang加载css和js

├── main.go ├── static │ ├── css │ │ └── main.css │ └── js │ └── main.js └── view └── index.html 若有如上目录结构 // main.go func main() { http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) // 启动静态文件服务 // ... } <!-- in...阅读全文

阅读:3382 评论:1

TODO:一不顺眼就换字体Go之代码篇

TODO:一不顺眼就换字体Go之代码篇 image包实现了一个基本的2D图像库,该包中包含基本的接口叫做image,这个里面包含color,这个将在image/color中描述;新增字体font,进行字体编辑。早在几年前Go image包出来的时候就有人实现了图片式水印处理,处理起来很方便,有兴趣的朋友可以用搜索引擎搜索一下。本文主要实现的功能是用Golang的image的font实现水印功能,实现了字体的大小、像素、坐标。有兴趣的朋友可以拷贝到本地测试看看。由于一些平台的代码兼容不好,所以本文...阅读全文

阅读:2873 评论:0

go语言之并发

简介 多核处理器越来越普及,那有没有一种简单的办法,能够让我们写的软件释放多核的威力?答案是:Yes。随着Golang, Erlang, Scale等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式需要有一个极其简洁的内核,还有在此之上丰富的外延,可以解决现实世界中各种各样的问题。本文以GO语言为例,解释其中内核、外延。 并发模式之内核 这种并发模式的内核只需要协程和通道就够了。其中协程负责执行代码,通道负责在协程之间传递事件。 并发编程一直以来都...阅读全文

2016-12-10 23:00:02 黑神领主
阅读:1863 评论:0

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

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑升级,需要以下几个步骤: 用新的可执行文件替换老的可执行文件(如只需优雅重启,可以跳过这一步) 通过pid...阅读全文

2016-12-15 16:00:15 一曲
阅读:2971 评论:0

Go调试利器

package main import ( "os/signal" "os" "syscall" "fmt" "runtime" "time" ) // kill -SIGUSR1 pid func main() { time.Sleep(time.Hour) } func dumpStacks() { buf := make([]byte, 16384) buf = buf[:runtime.Stack(buf, true)] fmt.Printf("=== BEGIN goroutine s...阅读全文

2017-01-05 18:00:01 Kevin-air
阅读:1336 评论:1

docker(8):使用alpinelinux 构建 golang http 看看能有多小

1,alpine linux 非常小 首先 alpine 非常的小,安装上了bash 之后也才 5mb。 golang 不需要其他的依赖,想看看是不是能在 alpine 上面跑呢。 搭建一个golang的环境,而不是把golang的环境放到alpine上面。 2,首先在centos 搭建golang环境 https://golang.org/doc/install 下载然后解压缩: tar -C /usr/local -xzf go1.7.4.linux-amd64.tar.gz 设置环境变量:...阅读全文

2016-12-13 22:37 freewebsys
阅读:1758 评论:0

使用Go语言完成文件夹的MD5计算

案例需求:我们的监测系统会定期的检查配置文件的变动,这些配置文件放置在一个独立的文件夹下面,我们可以通过对于整个的文件夹内所有文件进行md5的计算来完成监测,本文就通过Go语言实现了一个命令行工具,完成上述的需求。 1. 单一文件的md5计算 我们首先将需求任务进行分解,既然需要计算文件夹下的所有文件md5值,我们必须先考虑如何实现单一文件的md5值计算。 下面就是一个简单的md5求值程序,这里我们通过参数传递进去需要计算的文件,然后调用go语言提供的内置的crypto包中的函数来完成取值,计算...阅读全文

阅读:4146 评论:2

golang 的url模块示例

package main import "fmt" import "net/url" import "strings" func main() { //我们将解析这个 URL 示例,它包含了一个 scheme,认证信息,主机名,端口,路径,查询参数和片段。 s := "postgres://user:pass@host.com:5432/path?k=v#f" //解析这个 URL 并确保解析没有出错。 u, err := url.Parse(s) if err != nil { panic(e...阅读全文

2017-01-15 23:00:11 面码
阅读:2184 评论:0