gopush-cluster 架构

前言 gopush-cluster是一套golang开发的实时消息推送集群,主要分享一下开发这套系统的想法和思路。 架构 主要分为三个模块来开发,comet/web/message。 comet 主要负责消息排队、消息推送以及和客户端的连接维护;整套系统依据是消息ID顺序原则获取消息(客户端本地获取最大的消息是1,那么之后获取的消息就是大于1的,获取离线消息的时候也要从上次最大消息ID来获取),因此消息推送以后需要在comet中排队然后发起RPC给message实现存储。 message  主...阅读全文

博客园 2014-03-06 21:48 bhtfg538

Golang的百科全书--the way to go

比较零乱的学了一段时间的golang,一直觉得条理化的信息太少。 最近看到《the way to go》,才发现这就是我所需要的营养大餐,以后再找一本Go的标准库详解就完美了。 本书居然有中文版@无闻 @unkown,这是真正的活雷锋,他还写了个Git服务器–Gogs,我已经在公司里给我个项目使用了。可惜中文版的进度有点慢,一般人等不及 好在此书英文版也不难看,示例代码足够多。另外,亚马逊上的书评也说此书的作者似乎不是以英文为第一母语的,所以里边的文笔不好,而这正好合适我等读者!阅读全文

开源中国博客 2014-08-02 21:26 max佩恩

学点go语言(收集记录)

胡乱中看到go语言作为服务端编程语言,在应付高并发等场景下有自己独特的间接,且作者之一也是c语言的作者,google产出的语言等一堆的理由,让自己不得不禁想学习一下,首先推荐一下许式伟的《go语言编程》了,且作者也是第一个“吃螃蟹”的人,在此还收集了一些电子资源,   GoLang.Org: http://go.hatter.me/ Play.GoLang.Org: http://hatter.me/go/play/ http://code.google.com/p/golang-china/ ...阅读全文

ITEYE博客 2013-04-25 14:05 xylong

windows下用notepad++配置go语言开发环境

我在前一篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/02/09/windowsGo.html)中介绍了怎么在windows下安装go语言,今天我要介绍的是怎么用notepad++配置go语言开发环境。 一、准备工作: 1、安装go语言; 2、将go/bin目录加入环境变量; 3、安装notepad++; 二、配置notepad++支持go语言语法高亮 1、下载notepad++的go语言支持包(http://notepad-pl...阅读全文

开源中国博客 2012-08-20 09:58 j_m

以io.Writer为例看go中的interface{}

阅读该文后的一些理解 1 io.Writer接口 io.Writer接口有如下定义 package io type Writer interface { Write(p []byte) (n int, err error) } //根据go中接口的特点,所有实现了Write方法的类型,我们都说它实现了io.Writer接口。 2 somepkg.abc类型实现了io.Writer接口 package somepkg type Abc struct { i...阅读全文

开源中国博客 2013-05-07 16:05 waynehu

golang 里面使用oracle驱动包访问oracle DB

1.首先在github上面下载包文件 https://github.com/tgulacsi/goracle 2.设置的编译环境 不设置编译环境,不然go build 会出现: # github.com/tgulacsi/goracle/oracle src/github.com/tgulacsi/goracle/oracle/connection.go:23:17: error: oci.h: No such file or directory src/github.com/tgulacsi/...阅读全文

新浪博客 (2013-12-26 00:51:53) 不高兴和没头脑

Let's go! (Ubuntu下搭建Go语言环境)

自2009年Go语言发布以来,我一直在关注Go语言,如今Go语言已经发展到1.2版本,而且也收到越来越多的人关注这门语言。Go语言设计的目的就是为了解决执行数度快但是编译数度并不理想(如C++)以及编译速度快但执行效率不佳(.NET、Java),或者开发难度低但执行速度一般的动态语言这一问题。所以说,Go语言的特点是:快速编译,高效执行,易于开发。 好了,跳过那些框框条条的craps, 让我们直接先从Go语言的环境搭建开始,由于最近偏爱Ubuntu,在加上作为一门开源语言,在Linux上从源代码...阅读全文

博客园 2014-02-16 02:11 Liar

mgo中DBRef-数据添加测试

2014-1-25   在设计mongo数据库时遇到这样一个问题,日志信息表需要引用人员信息表的数据.如果是结构化数据库,基本上不用想太多的东西.由于刚接触非结构化数据库,按着书上的理解由于日志数量较多,如果采用嵌入式数据的话会产生太多的可变因素(不知道这样说是不是合理,比如说人员经常在各个部门乱跳则会造成数据经常变更 ^_^!),所以需要用到引用数据方式.今天先写了个插入数据的测试DEMO,有时间再补上个查询. package main import ( "crypto/rand" "...阅读全文

博客园 2014-01-25 10:42 forrestsun

go - 变量和常量

1.定义变量 goLang中定义变量的方式很多 先声明再使用;如果定义的变量未使用编译时会报错 a.  /*定义单个变量*/ var varName type //定义一个 type 类型的变量 varName varName = value //给变量 varName 赋值 var varName type = value //定义变量并赋初始值 /*定义多个变量*/ var varName1, varName2 type /...阅读全文

博客园 2013-06-25 20:12 snake-hand

golang的apns证书文件转换(P12 to Pem)

golang 不支持p12解析,所以需要转换成pem 网上有一些,但都不能实现自动转换(非交互模式)。以下是非交互模式的转换: //生成临时文件cert.pem,注意passin 和 passout 选项 openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12 -passin pass:P12_PASS //生成临时文件key.pem openssl pkcs12 -nocerts -out key.pem -in cert.p12 ...阅读全文

新浪博客 (2013-08-28 17:09:56) 邮差小组

Ubuntu下安装go语言

Ubuntu下安装go语言   Go语言是Google开发的一个开源项目,目的之一是为了提高开发人员的编程效率。Go语言语法灵活,简洁,清晰,高效。它的并发特性可以方便的用于多核处理器和网络开发,同时灵活新颖的类型系统可以方便的编写模块化的系统。go可以快速编译,同时具有垃圾内存自动回收功能,并且还支持运行时反射。go十一个高效、静态类型,但是邮局有解释语言的动态类型特征的系统级语法。   由于只介绍Ubuntu下386的go语言安装方法,其他平台的可以到http://code.google....阅读全文

博客园 2014-10-04 19:26:28 sherlockhomles

go学习

go源代码开头都是package 开头, go 程序运行从main.main()开始,传入参数以os.Args变量保存,main()函数不带参数,也没有返回值。 go支持多返回值,并不是每个返回值都必须赋值,没有明确定义返回值的返回默认值。 go不能引入在文件中没有用到的包。声明的变量必须使用,不然会报错。 /****/进行块注释,//行注释 运行go程序:go run hello.go 编辑go程序:go build hello.go  go命令: go build 这个命令主要用于测试编译。...阅读全文

博客园 2012-12-28 21:18 atyou

Golang学习之GOROOT、PATH、GOPATH及go get

1. GOROOT GOPATH 及 PATH 设置 a.添加系统变量GOROOT:安装完Go第一件事就是设置GOROOT。例如我的Go安装在C:\Go目录,则要设置 GOROOT = C:\Go b.修改环境变量PATH:将%GOROOT%\bin加到环境变量PATH里面,这样就可以直接在dos命令模式下任意目录运行%GOROOT%\bin目录下的程序 如:go.exe godoc.exe c.添加系统变量GOPATH:GOPATH是用来设置包加载路径的重要变量。可以设置多个...阅读全文

开源中国博客 2013-12-24 20:08 yearnfar

【原】Go语言及Web框架Beego环境无脑搭建

本文涉及软件均以截至到2013年10月12日的最新版本为准 1、 相关软件准备: 1) go1.2rc1.windows-386.msi,对应32位windows系统安装使用 下载地址: https://code.google.com/p/go/downloads/detail?name=go1.1.2.windows-386.msi 2) go1.2rc1.windows-amd64.msi,对应32位windows系统安装使用 下载地址: https://code.goog...阅读全文

开源中国博客 2013-10-15 08:32 temptation_inte 等

go与众不同的类型

用go写了几个应用之后,对它的几个类型理解得可以说也比较到位。     数组     它跟C语言的数组一样,有固定的长度,声明之前必须很设定其长度。由于受C语言的影响,我一直把它当作指针来看待。其实,go的数组是个值类型,当把一个数组赋值给另一个数组时,是复制了本身给另一个数组。也就是说,当把数组当作参数进行传递时,会拷贝整个数组,当然也就与C语言的数组指针引用相比了,效率也就大打折扣了。go数组有一点必须知道,就是它的类型是包括了长度的。一个数组包含了长度,储存类型,实际值三个参数。[3]in...阅读全文

博客园 2012-12-10 22:42 descusr

go-mysql,一个易用的mysql接口框架实现

介绍 go-mysql是一个用go写的mysql driver,使用接口类似于go自身的database sql,但是稍微有一点不同,现阶段还不支持集成进go database/sql中,但实现难度并不大,后续可能会接入。 go-mysql最先开始于mixer(一个用go实现的mysql proxy)中,随着mixer的演化,我觉得有必要将其mysql模块独立出来使用。对于mixer,后续我会详细介绍。 为什么要自己实现一套新的接口,而不是go自身的sql接口呢?最主要的原因在于我很...阅读全文

开源中国博客 2014-05-11 16:30 siddontang

webqq go语言的实现

最近开始学习go语言,觉得非常有趣,便从http入手,写了个web挂机程序。适用go版本r59-201108最新版本,低版本编译通不过。 // webQQ.go /* *GO语言讨论群:102319854 *GO语言官网:www.golang.org *作者: 不死爬虫 *主页: http://www.gososo.org http://www.daohang361.com/news/index.html *见证的轨迹 *乱码的解决方法 * 1、dos执行chcp 65001 //...阅读全文

ITEYE博客 2011-08-17 18:04 naner3344

Ubuntu下安装go语言

Go语言是Google开发的一个开源项目,目的之一是为了提高开发人员的编程效率。Go语言语法灵活,简洁,清晰,高效。它的并发特性可以方便的用于多核处理器和网络开发,同时灵活新颖的类型系统可以方便的编写模块化的系统。go可以快速编译,同时具有垃圾内存自动回收功能,并且还支持运行时反射。go十一个高效、静态类型,但是邮局有解释语言的动态类型特征的系统级语法。   由于只介绍Ubuntu下386的go语言安装方法,其他平台的可以到http://code.google.com/p/golang-chin...阅读全文

博客园 2012-02-10 11:14 loulijun

google go 安装经历

参考 http://golang.org/doc/install.html 参考google官方文档,并结合自己的经历,算是一半翻译,一般原创把,其中有许多不懂的地方,请高手指点   1,    设置环境变量 $GOROOT    :go的根目录,一般设为$HOME/go,也可设为其他目录 $GOOS          :目标操作系统目前他的选项有linux, darwin (注:Mac OS X 10.5 or 10.6)和nacl (注:Native Client, an incomplet...阅读全文

博客园 2009-11-19 21:08 chengxuan