go语言nsq源码解读一-基本介绍
简单介绍一下nsq.
参考 http://feilong.me/2013/05/nsq-realtime-message-processing-system 的介绍:NSQ是由知名短链接服务商bitly用Go语言开发的实时消息处理系统,具有高性能、高可靠、无视单点故障等优点,是一个非常不错的新兴的消息队列解决方案。
nsq易于配置和部署,所有参考都通过命令行指定,编译好的二进制文件,没有其它依赖项。而且支持多种消息格式。
源码下载地址:
本系列文档下载的源码为0.2.27版本。
为更好的理解源码,最理想的起步当然是先了解nsq的用法。所以接下来会先讲解nsq的安装、使用。
安装nsq
1、安装golang环境。
2、安装godep,在命令行执行:
1 go get github.com/kr/godep
如果在使用go get 安装过程中报错,可以参考另一篇文章:关于go get安装git golang项目时报错的处理办法
安装之后,在%GOPATH%/bin目录下会看到有godep.exe,然后记得将%GOPATH%/bin配置到环境变量里,以后在命令行就可以直接输入godep命令来执行一些操作了。
3、安装assert,在命令行执行:
1 go get github.com/bmizerany/assert
4、接下来开始获取nsg的代码并编译。
在命令行执行:
1 godep get github.com/bitly/nsq/...
注意:后面有三个点不能少。
执行之后在%GOPATH%/bin下会有很多nsq打头的exe文件存在。
至此安装就结束了。
使用nsq
总共需要打开五个命令行窗口。
第一个执行:
1 nsqlookupd
第二个执行:
1 nsqd --lookupd-tcp-address=127.0.0.1:4160
第三个执行:
1 nsqadmin --lookupd-http-address=127.0.0.1:4161
第四个执行:
1 curl -d "hello world 1" "http://127.0.0.1:4151/put?topic=test"
第五个执行:
1 nsq_to_file --topic=test --output-dir=F:\tmp --lookupd-http-address=127.0.0.1:4161
这个命令中的output-dir参数,表示数据文件保存在目录,可以根据需要修改。
再回到第四个窗口,执行
1 curl -d "hello world 2" "http://127.0.0.1:4151/put?topic=test"
1 curl -d "hello world 3" "http://127.0.0.1:4151/put?topic=test"
经过这一串操作后,可以开始看成果了:
浏览器访问:http://127.0.0.1:4171/,
可以看到数据统计分析的页面。
打开output-dir参数设置的目录,如本例中的F:\tmp,打开里面的一个记事本文件,看到有三行:
hello world 1
hello world 2
hello world 3
至此,安装和使用就结束了。
到目前为止,我们还停留在知其然,不知其所以然的地步。完全搞不懂上面这些使用的命令行在干什么,也没理解nsq的使用价值在哪里。不过本篇呢,还是要结束了,欲知后事如何,且听下回分解。
go语言nsq源码解读一-基本介绍的更多相关文章
- go语言nsq源码解读八 http.go、http_server.go
这篇讲另两个文件http.go.http_server.go,这两个文件和第六讲go语言nsq源码解读六 tcp.go.tcp_server.go里的两个文件是相对应的.那两个文件用于处理tcp请求, ...
- (转)go语言nsq源码解读二 nsqlookupd、nsqd与nsqadmin
转自:http://www.baiyuxiong.com/?p=886 ---------------------------------------------------------------- ...
- go语言 nsq源码解读三 nsqlookupd源码nsqlookupd.go
从本节开始,将逐步阅读nsq各模块的代码. 读一份代码,我的思路一般是: 1.了解用法,知道了怎么使用,对理解代码有宏观上有很大帮助. 2.了解各大模块的功能特点,同时再想想,如果让自己来实现这些模块 ...
- go语言nsq源码解读七 lookup_protocol_v1.go
本篇将解读nsqlookup处理tcp请求的核心代码文件lookup_protocol_v1.go. 1234567891011121314151617181920212223242526272829 ...
- go语言nsq源码解读二 nsqlookupd、nsqd与nsqadmin
nsqlookupd: 官方文档解释见:http://bitly.github.io/nsq/components/nsqlookupd.html 用官方话来讲是:nsqlookupd管理拓扑信息,客 ...
- go语言nsq源码解读九 tcp和http中channel、topic的增删
通过前面多篇文章,nsqlookupd基本已经解读完毕了,不过在关于channel和topic的增删上还比较模糊,所以本篇将站在宏观的角度来总结一下,tcp.go和http.go两个文件中关于chan ...
- go语言nsq源码解读六 tcp.go、tcp_server.go
本篇讲nsqlookupd中tcp.go.tcp_server.go tcp_server.go位于util目录下. 12345678910111213141516171819202122232425 ...
- go语言 nsq源码解读四 nsqlookupd源码options.go、context.go和wait_group_wrapper.go
本节会解读nsqlookupd.go文件中涉及到的其中三个文件:options.go.context.go和wait_group_wrapper.go. options.go 123456789101 ...
- go语言nsq源码解读五 nsqlookupd源码registration_db.go
本篇将讲解registration_db.go文件. 1234567891011121314151617181920212223242526272829303132333435363738394041 ...
随机推荐
- 代码托管工具 git
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- Spring Aop中,获取被代理类的工具
在实际应用中,顺着过去就是一个类被代理.反过来,可能需要逆向进行,拿到被代理的类,实际工作中碰到了,就拿出来分享下. /** * 获取被代理类的Object * @author Monkey */ p ...
- Js 浅克隆详解
浅克隆:不仅赋值,而且赋予了内存地址深度克隆:赋值,内存地址不同var a = [1,2,3]; var b = a; a = [4,5,6]; alert(b); //[1,2,3] 面试时被问到这 ...
- Retrofit 2.0 超能实践,完美支持Https传输
http://blog.csdn.NET/sk719887916/article/details/51597816 前阵子看到圈子里Retrofit 2.0,RxJava(Android), OkHt ...
- ssh运行环境搭建及测试
一.运行环境 1.Spring环境 Spring是一站式开发框架,在SSH中主要有以下作用,就像一个大管家: 控制反转(Inversion of Control):类不再自己进行类创建,而是交给Spr ...
- 学习AD、DA的体会
AD转换器的转换是指模拟信号输入转化为数字信号输出,而DA转换器是把数字信号转换为模拟信号,在ADC0832.TLC549和TLC5615程序设计中,通过使用中断服务函数每0.5s对ADC0832进行 ...
- 洛谷 P1450 解题报告
P1450.硬币购物 题目描述 硬币购物一共有\(4\)种硬币.面值分别为\(c1,c2,c3,c4\).某人去商店买东西,去了\(tot\)次.每次带\(d_i\)枚\(c_i\)硬币,买\(s_i ...
- Python_从字符串中提取号码
import re telNumber = '''Suppose my Phone No. is 0535-1234567,yours is 010-12345678,his is 025-87654 ...
- .net自定义错误页面实现
前言: 在实际的web开发中,经常会遇到以下情况,导致给用不好的体验: a.程序未处理的异常,直接输出显示到用户页面 b.用户访问的资源不存在,直接显示系统默认的404页面 c.其它以下请求错误状态的 ...
- 更新版PowerBI发布了-- Power BI Report Server Update – March 2018
新版的PowerBI server 和 Desktop 终于发布了. 详细增加功能见以下链接: 下载最新版PowerBI Report Server: https://powerbi.microso ...

