3 Star 12 Fork 1

Gitee 极速下载/NSQ-Proxy

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/changba/nsqproxy
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

NSQProxy

NSQProxy是Golang开发的NSQ和Worker之间的中间件,根据数据库配置,负责消息转发。NSQProxy启动后,接受NSQD队列内容,然后通过HTTP/FastCGI/CBNSQ等协议转发给Worker机执行。在唱吧内部使用2年,高效稳定的处理着每日数十亿条消息。

go report card MIT license Downloads Release

解决的问题

  • 各Topic执行机器可配
  • 各Topic消费速度可配
  • 各Worker机协议可配
    • HTTP:将消息发送给配好的URL。
    • FastCGI:将消息发送给配置的服务端,如PHP-FPM。
    • CBNSQ:自定义的基于TCP的文本协议。
  • 可视化界面管理
  • 队列积压超出阈值报警
  • 散乱在各处的消费者集中化管理
  • 通过网络分发,无需安装.so等扩展库,因此无需修改线上环境

有图有真相

流程图

消费者管理

worker机管理

使用

请先部署好NSQLookupd、NSQd、MySQL

启动NSQLookupd nsqlookupd -broadcast-address="0.0.0.0" -http-address="0.0.0.0:4161" -tcp-address="0.0.0.0:4160"

启动NSQD nsqd -broadcast-address="0.0.0.0" -lookupd-tcp-address="0.0.0.0:4160" -tcp-address="0.0.0.0:4150" -http-address="0.0.0.0:4151"

启动MySQL

安装

二进制安装

  • 下载最新版本的压缩包 https://github.com/changba/nsqproxy/releases
  • 解压
  • 启动(注意替换为自己的MySQL信息) ./nsqproxy -dbHost=127.0.0.1 -dbPort=3306 -dbUsername=root -dbPassword=rootpsd -dbName=nsqproxy -logLevel=debug -nsqlookupdHTTP=127.0.0.1:4161
  • 命令行 curl http://0.0.0.0:19421/status 输出ok
  • 浏览器打开 http://0.0.0.0:19421/admin

源码安装

  • 要求Go1.13及以上
  • 下载本项目 go get github.com/changba/nsqproxy
  • cd nsqproxy
  • export GO111MODULE=on
  • 编译 make build
  • 启动(注意替换为自己的MySQL信息) ./bin/nsqproxy -dbHost=127.0.0.1 -dbPort=3306 -dbUsername=root -dbPassword=rootpsd -dbName=nsqproxy -logLevel=debug -nsqlookupdHTTP=127.0.0.1:4161
  • 命令行 curl http://0.0.0.0:19421/status 输出ok
  • 浏览器打开 http://0.0.0.0:19421/admin

快速开始

二次开发

前端

使用VUE开发,所有源码均在/web/vue-admin目录中,开发完成后需要编译,编译后的文件存放在/web/public/目录中。使用开源项目statik将静态文件/web/public/变成一个go文件internal/statik/statik.go,这样前端的静态文件也会被我们编译到同一个二进制文件中了。

  • 启动go服务 make run
  • 安装VUE make vue-install(如果国内被墙可以使用淘宝的源进行安装:make vue-install-taobao)
  • 开启VUE开发环境 make vue-dev
  • 浏览器打开 http://0.0.0.0:9528/admin
  • 开发前端相关功能
  • 编译VUE make vue-build
  • 前段文件转换为一个go文件 make statik
  • 编译go服务 make build
  • 浏览器打开 http://0.0.0.0:19421/admin

接口文档

TODO LIST

  • 协议增加protobuf
  • 后台增加用户权限管理
  • 报警HOOK
  • 日志按天分割

License

© Changba.com, 2020~time.Now

Released under the MIT License

MIT License Copyright (c) 2020 changba Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

NSQ Proxy NSQ Proxy是Golang开发的NSQ和Worker之间的中间件,根据数据库配置,负责消息转发 展开 收起
JavaScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/mirrors/NSQ-Proxy.git
git@gitee.com:mirrors/NSQ-Proxy.git
mirrors
NSQ-Proxy
NSQ-Proxy
main

搜索帮助

Cb406eda 1850385 E526c682 1850385