NSQ 安装指南
来源:互联网 发布:c语言机器人编程 编辑:程序博客网 时间:2024/06/05 11:47
NSQ 安装指南
假设我们的服务器安装下面要求编排。
nsqlookup 集群列表
192.168.234.77192.168.234.36192.168.234.39
nsq 节点
192.168.234.117192.168.234.118
nsqadmin 节点
192.168.234.119
安装前准备
下载最新的二进制包,命令行操作如下:
tar -xvf nsq-0.3.8.linux-amd64.go1.6.2.tar.gz mv nsq-0.3.8.linux-amd64.go1.6.2 nsq
构建环境变量
设置nsq的环境变量,假设nsq的bin路径在/usr/local/software/nsq下。运行命令如下:
vi /etc/profileexport NSQ_HOME=/usr/local/software/nsqexport PATH=$PATH:$NSQ_HOME/bin. /etc/profile
构建运行脚本
创建执行脚本,分别创建start-nsqlookup.sh, start-nsq.sh和 start-nsqadmin.
start-nsqlookup.sh
#nsqlookupeval nsqlookupd --verbose > nsqlookup.log 2>&1 "&"
start-nsq.sh
#nsq
eval nsqd –data-path=/usr/local/software/nsq/data –lookupd-tcp-address=192.168.234.77:4160,192.168.234.36:4160,192.168.234.39:4160 > nsqd.log 2>&1 “&”
start-nsqadmin.sh
#nsqadmin
eval nsqadmin –lookupd-http-address=192.168.234.77:4161,192.168.234.36:4161,192.168.234.39:4161 > nsqadmin.log 2>&1 “&”
运行脚本
首先需要安装次序运行上面的脚本,必选先运行nsqlookup集群,在运行start-nsqadmin.sh或者start-nsq.sh.
在对应服务器上执行对应的脚本。
nsqlookup节点
#192.168.234.77#192.168.234.36#192.168.234.39sh start-nsqlookup.sh
nsq节点上
#192.168.234.117
#192.168.234.118
sh start-nsq.sh
nsqadmin节点上
#192.168.234.119
sh start-nsqadmin.sh
查看运行效果,可以直接访问nsqadmin节点http://192.168.234.119:4171/。
创建Producer
package mainimport ( "log" "github.com/bitly/go-nsq" "io/ioutil" "strconv")var nullLogger = log.New(ioutil.Discard, "", log.LstdFlags)func sendMsg(message string){ //init default config config := nsq.NewConfig() w, _ := nsq.NewProducer("192.168.2.117:4150", config) err := w.Ping() if err != nil { //192.168.2.117:4150,192.168.2.68:4150 log.Fatalln("error ping 10.50.115.16:4150", err) // switch the second nsq. You can use nginx or HAProxy for HA. w, _ = nsq.NewProducer("192.168.2.68:4150", config) } w.SetLogger(nullLogger, nsq.LogLevelInfo) err2 := w.Publish("a-test", []byte(message)) if err2 != nil { log.Panic("Could not connect nsq") } w.Stop()}func main() { for i := 0; i < 2; i ++ { sendMsg("msg index "+ strconv.Itoa(i + 10000)) }}
恭喜,你已经成功发送两个消息到nsq节点。
创建Consumer
package mainimport ( "log" "github.com/bitly/go-nsq" "fmt")func doSimpleConsumerTask(){ config := nsq.NewConfig() q, _ := nsq.NewConsumer("a-test", "ch", config) q.AddHandler(nsq.HandlerFunc(func(message *nsq.Message) error { log.Printf("message: %v", string(message.Body)) message.Finish() return nil })) lookupAddr := []string { "192.168.234.77:4161", "192.168.234.36:4161", "192.168.234.39:4161", } err := q.ConnectToNSQLookupds(lookupAddr) if err != nil { log.Panic("Could not connect") } <-q.StopChan stats := q.Stats() fmt.Sprintf("message received %d, finished %d", stats.MessagesReceived, stats.MessagesFinished)}func main(){ doSimpleConsumerTask()}
程序运行输出:
2017/02/23 09:07:50 message: msg index 100002017/02/23 09:07:50 message: msg index 10001
消费者持续接受发送来的信息,运行程序后端。
欢迎订阅微信公众号
- NSQ 安装指南
- nsq安装及初探
- nsq
- nsq
- CentOS 7下安装nsq
- ubuntu下nsq的安装
- ubuntu nsq安装与配置
- nsq简单安装以及测试
- ubuntu nsq安装与配置
- NSQ的安装运行以及编程实践
- NSQ如何在windows上安装
- Linux安装及部署NSQ消息队列
- 小白linux centos安装配置nsq全过程
- centos 下安装nsq,配置开机启动服务
- nsq 学习
- NSQ简介
- CentOS 7上安装nsq,并配置系统服务、开机启动
- nsq系统架构
- osg::Group派生类速查
- Quartz2.x学习笔记(一)
- spring事务传播属性和隔离级别
- 近5年133个Java面试问题列表
- linux下 java 创建中文文件名乱码问题
- NSQ 安装指南
- MongoDB的初次相遇(三)
- 蓝桥杯 01字串 C语言
- 微博模拟登陆
- 关于Android获取版本号(versionCode)一直是1的问题
- CS1656号错误是什么
- c++11-语言运行期的强化
- 天津圣安医院住院收费合理
- 在iOS 8中使用UIAlertController