nsq nsqlookupd代码解析(二) 发布时间: 2021-10-19 07:34:50 评论数: 0
nsqlookupd.go Main里主要是侦听两个服务tcp 服务和http 服务 代码片段 github.com\nsqio\nsq\nsqlookupd\nsqlookupd.go func (l *NSQLookupd) Main() { ctx := &Context{l} //监听tcp tcpListener, err := net.Listen("tcp", l.opts.TCPAddress) if err != nil { l.logf(LOG_FATAL, "listen (%s) faile ......
RWMutex是读写锁 发布时间: 2021-10-17 04:17:01 评论数: 0
最近在看nsq源码,其中看到了下面的代码 代码清单 github.com/nsqio/nsq/nsqlookupd/nsqlookupd.go type NSQLookupd struct { sync.RWMutex opts *Options tcpListener net.Listener httpListener net.Listener waitGroup util.WaitGroupWrapper DB *RegistrationDB } RWMutex是读写互斥锁。 ......
nsq消息队列安装测试 发布时间: 2021-10-14 17:35:37 评论数: 0
nsq是go语言实现的消息队列 PS.nsq安装必须是go版本1.6之上,要安装gpm nsq源码安装 yum install gpm gpm install go get github.com/nsqio/nsq/...   cd $GOPATH/src/github.com/nsqio/nsq/ ./test.sh 这个test.sh的脚本会自动检测和编译nsq项目,我在本地虚拟机里执行就没有成功在阿里云的机子上执行成功的 PS.nsq还有docker,这个可以到docker官方去搜索 nsqd节点维护进程 nsqlookupd & nsqd节点进程 nsqd -- ......
Go语言中的字符串处理 发布时间: 2021-10-11 10:34:52 评论数: 0
1 概述字符串,string,一串固定长度的字符连接起来的字符集合。Go语言的字符串是使用UTF-8编码的。UTF-8是Unicode的实现方式之一。Go语言原生支持字符串。使用双引号(“”)或反引号(``)定义。双引号:””, 用于单行字符串。反引号:``,用于定义多行字符串,内部会原样解析。示例:// 单行 "心有猛虎,细嗅蔷薇" // 多行 ` 大风歌 大风起兮云飞扬。 威加海内兮归故乡。 安得猛士兮守四方! `字符串支持转义字符,列表如下:\r  回车符(返回行首)\n  换行符(直接跳到下一行的同列位置)\t  制 ......
nsq nsqlookupd代码解析(一) 发布时间: 2021-10-08 01:29:55 评论数: 0
之前的文章nsq安装【推荐阅读:nsq消息队列安装测试】,最后执行了./test.sh,这个脚本其实就遍历文件夹build go程序,具体遍历了apps和bench文件夹的程序 这里主要讲nsqlookupd build这个github.com/nsqio/nsq/apps/nsqlookupd/nsqlookupd.go程序 这个文件主要使用了go-svc的包 github地址:https://github.com/judwhite/go-svc 运行一下他的Example我猜测Init方法应该跟init方法等同,之后执行Start方法,当执行关闭的时候执行Stop方法 代码清单g ......
go开发工具推荐 发布时间: 2021-10-06 13:41:53 评论数: 0
程序的开发工具直接影响到开发的效率,下面我来推荐一款go语言的开发工具vs code 之前用sublime+gosublime,感觉不是很好 主要问题 1 代码不提示不全,比如我定义一个struct,struct这个单词不提示 2 我输入一个包不自动加载一个包 3 不能在使用的包上查看包 4 鼠标移到方法上面没有提示 下面我开始介绍vs code 官方网站 # 有人搞了一个中文版 http://www.vscode.org/ 有时候被墙 下面用截图来展示 这些功能大大方便了开发 ......
Go包管理工具godep 发布时间: 2021-10-04 23:06:54 评论数: 0
godep是go的包管理工具 github:https://github.com/tools/godep 安装方式 go get github.com/tools/godep 使用godep包管理工具不能在使用go run和go build,如果直接使用还是会到GOPATH目录下去找第三方库 正确做法 godep go run godep go build 项目目录下执行执行godep save,此时会生成Godeps文件夹,同时会把所需的包放到vendor文件夹中 ......
Go 编译应用软件相关设置 Golang的跨平台编译程序 发布时间: 2021-10-02 06:22:18 评论数: 0
各平台的GOOS和GOARCH参考OSARCHOS versionLinux386 / amd64 / arm>= Linux 2.6darwin386 / amd64OS X (Snow Leopard + Lion)freebsd386 / amd64>= FreeBSD 7Windows386 / amd64>= Windows 2000编译方法例如linux的64位软件CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o 存放位置 ./main.gomac的64位就是CGO_ENABLED=0 GOOS=d ......
go fmt String接口 发布时间: 2021-09-30 11:39:53 评论数: 0
之前看到一段代码,输出接口让我无法理解,如下 package main import "fmt" type Person struct { Name string Age int } func (p Person) String() string { return fmt.Sprintf("%v (%v years)", p.Name, p.Age) } func main() { a := Person{"Arthur Dent", 42} z := Person{"Zaphod Beeblebrox" ......
go cache2go源码分析 发布时间: 2021-09-28 11:23:38 评论数: 0
今天看了cache2go源码,cache2go是一个用Go实现的并发安全的缓存库,主要是代码量少,学习一下 cache2go github地址: # 从开始使用的代码开始分析 github上有examples目录,写的是使用的demo,examples/callbacks/callbacks.go,我开始从这个文件开始分析 代码清单 1-1 examples/callbacks/callbacks.go 11行 cache := cache2go.Cache("myCache") 使用了cache2go库中的Cache,返回一个CacheTable的地址 代码清单 2-1 cache ......
go 切片 发布时间: 2021-09-26 08:56:24 评论数: 0
今天看到一个切片代码,结果跟我预估的不一样,于是仔细看了一下切片的章节 slice:=make([]int,3,5) 长度为3容量为5 如图 slice:=[]int{10,20,30,40,50} newSlice:=slice[1:3] newSlice 长度=3-1 容量=5-1 newSlice结果为 [20 30] PS.slice和newSlice 切片都共享同一个底层数组,如果其中一个切片修改了值,另一个切片都会修改 ......
go html/template模板输出html 发布时间: 2021-09-23 06:21:47 评论数: 0
我在学习go语言,并且尝试写一个博客,数据库用的还是wordpress的数据库,没有使用go语言的框架,想用原生的go写 在使用html/template 模板包的时候发现没有办法输出html,主要我想把博客的内容输出来,结果显示 html竟然转义了 查看官方的说明文档 官方说明 # 比如你想输出 Hello, <b>World</b>! 网页上源码上会显示 Hello, &lt;b&gt;World&lt;b&gt;! 解决方法 template.HTML("<b>World</b>") 在写的是这段 ......
go代码interface转map 发布时间: 2021-09-21 02:16:30 评论数: 0
今天遇到一个问题如下代码,我要通过rs去打印出ddd package main import "fmt" func main() { var rs interface{} rss := make(map[string]string) rss["aaa"] = "ddd" rs = rss fmt.Println(rs) } 从上面的代码中我们可以看出来,rs已经是一个map了,但是按照map的打印方式,就是报错 message: 'invalid operation: rs["ddd"] (type interface ......
go 上传EXCEL并解析 发布时间: 2021-09-19 05:16:08 评论数: 0
用php来做文件的上传并解析EXCEL,在实际的开发中是很常见的,比如订单的批量导入,用php也能处理,但在实际的开发中你进程遇到,导入文件只导入版,解析EXCEL只处理了一半,如果不检查数据可能发现不了这个问题,如果用go来做这个功能就大大提高了处理能力 下面是我写的一个测试 使用的是github.com/xuri/excelize来解析EXCEL 安装方式: go get github.com/xuri/excelize package main import ( "fmt" "io" "net/http" "os" "path" "time" ......
go 条件编译 发布时间: 2021-09-17 22:39:17 评论数: 0
最近在看nsq 的nsqlookupd 其中用到了go-svc包,于是顺带看了一下代码,其中有一点不是很明白,就是一个包里出现了相同的方法,程序也没有报错, svc_other.go文件和svc_windows.go文件都实现了Run方法 终于知道他是怎么实现的 原因在于是 svc_other.go文件最上面 // +build !windows svc_windows.go文件最上面 // +build windows 这个是go语言的条件编译,之前没有遇到过,所以要写文章记录一下 // +build !windows 这个是不在windows下可以编译 // +build win ......
go语言的iota 发布时间: 2021-09-16 17:15:16 评论数: 0
网上看了看iota.反正是没看大懂.给个例子自己悟吧package main import ( "fmt" ) const ( TestMin = -1 TestA TestB = iota TestC ) func main() { fmt.Printf("TestMin:%d\n", TestMin) fmt.Printf("TestA:%d\n", TestA) fmt.Printf("TestB:%d\n", TestB) fmt.Printf("TestC:%d\n", TestC) }输出结果TestMin:- ......
nsq nsqlookupd中的go-svc包 发布时间: 2021-09-13 07:03:53 评论数: 0
nsqlookupd使用go-svc包来启动的 github地址:https://github.com/judwhite/go-svc 这个包我看到了类似于守护进程的方式运行程序,下面是一个demo,go-svc也是使用了这个方法 package main import ( "fmt" "os" "os/signal" "syscall" ) func main() { c := make(chan os.Signal, 1) sig := []os.Signal{syscall.SIGINT, syscall ......
排序算法入门 — GO 语言实现 发布时间: 2021-09-10 05:37:09 评论数: 0
排序算法是一种采用列表或数组并以特定顺序对其元素进行重新排序的算法。有几十种不同的排序算法,如果你已经学习了计算机科学,那么你至少熟悉了其中的一些算法。 它们也是很受欢迎的面试问题,所以在重要面试前不要因为它而伤心。这是一个大多数常见的排序算法的小型引擎,实例采用 Golang 实现。冒泡排序冒泡排序是最基本的就地排序算法,几乎每个人都很熟悉。 它具有 O(n²) 最坏情况和平均时间复杂度,这使得它在大型列表中效率低下。它的实现非常简单。在循环中,从第一个元素到第 n 个(n = len(items))迭代数组。比较相邻的值,如果它们的顺序错误,交换它们。 您可以通过在每次迭代后将 n 递减 ......
docker linux namespace系统资源隔离 发布时间: 2021-09-07 22:16:28 评论数: 0
linux namespace是Kernel的功能,它会隔离系统的资源,如PID,UTS,IPC,UserID,Network,docker也用到了这部分的内容,下面是go代码只要实现了这功能 package main import ( "log" "os" "os/exec" "syscall" ) func main() { cmd := exec.Command("sh") cmd.SysProcAttr = &syscall.SysProcAtt ......
go语言学习资料 发布时间: 2021-09-06 09:26:47 评论数: 0
最近有在看go语言,网上的资料还不是很多,现在把有用的资料分享一下,发现还有新的资源会持续更新 Go Web 编程 # Go语言圣经(中文版) # Go入门指南 # Go 编程基础(视频) # Go Web基础(视频) # 我还买了本《go 语言实战》刚开始看了两章,感觉还不做 ......


友情链接: php5000技术知识分享 github 码云 开源中国 csdn linux中国 阿里云 unix技术网 composer中文网 php packagist php python 安卓软件 大众源码 DevStore 猪八戒威客网 人人都是产品经理 PHPwind论坛 互联网的一些事 新客网 黑马程序员 火星时代 hao123it ThinkSNS 开源社区 51CTO学院 办事儿网 IT论坛 java教程 最代码 程序员客栈 大数据培训 小程序开发 微信小程序 php开发新闻 微信小程序 java学习 微信小程序 Linux书籍 网站ip流量 xw素材网 新浪云 腾讯云 华为云 百度 新浪 网易 淘宝 腾讯 1688 搜狐 优酷 房天下 hao123 携程 天涯社区