NSQ 免费消息队列软件
基于GO的开源和实时分布式消息队列
NSQ是一个开源实时分布式消息队列,没有单点故障。这是一项可靠的消息传递服务,具有高可用性。
概述
NSQ是一个规模上的实时分布式消息平台操作。它每天处理大量消息,提供可靠的消息传递,提供容错和高可用性。它提供分布式和分散的拓扑,而无需单点故障。在操作上,NSQ最佳消息队列易于安装,配置和部署。 NSQ消息可以是JSON,MSGPACK,协议缓冲区或其他任何数据格式,以实现最大的灵活性。还提供官方GO和Python客户库。 NSQ消息队列系统的设计目标之一是绑定存储在内存中的消息的数量。主题,不同的数据和渠道流,流的逻辑分组或订阅给定主题的消费者是NSQ的核心基础。 NSQ消息排队服务由3个守护程序组成:NSQD是接收,缓冲区并向客户端传递消息的守护程序。 NSQLookupd服务客户端请求,以查找主题位置并管理群集元数据。它为消费者提供了运行时一致的发现服务,以找到特定主题的NSQD生产者。 NSQADMIN是用于NSQ群集集群实时管理任务的Web服务UI。
特征
NSQ消息队列软件的一些关键功能如下: *支持分布式拓扑,没有SPOF *消息可以在持久模式下配置
- NSQ采用内存和硬盘的模式 *当服务器重新启动时,消息在内存中持续存在 *每条消息至少一次传递一次 *水平可扩展 *基于低延迟推动的消息传递 *主要是内存消息队列
- TLS运输层安全 *运行时发现服务以查找生产者 *数据格式不可知论 *强大的群集给药界面 *开源
安装说明
**在Ubuntu上安装NSQ **
NSQ是最佳消息经纪人,易于启动实时分布式消息平台。首先,确保已安装NSQ的所有量访问套件并在您的系统上最新。 NSQ所有参数均在命令行上指定,并且编译的NSQ二进制文件没有运行时依赖关系。下面的指南涵盖了Debian和Ubuntu上的NSQ安装,包括基于它们的分布。以下以下说明将在本地计算机上运行NSQ群集。 NSQ使用GO模块来生成可靠的构建,因此在下面使用命令进行编译和设置NSQ:
git clone https://github.com/nsqio/nsq
cd nsq
make
需要安装和运行三个单独的二进制文件NSQLOOKUPD,NSQD和NSQADMIN。因此,在一个外壳中,使用:
nsqlookupd
在终端的第二个外壳中,使用:
nsqd --lookupd-tcp-address=127.0.0.1:4160
您还可以添加-broadcast-address = 127.0.0.1。大多数调试,分析和给药都是通过NSQADMIN完成的。因此,通过运行:在新外壳中启动NSQADMIN:
nsqadmin --lookupd-http-address=127.0.0.1:4161
接下来,使用以下方式发布一条初始消息:
curl -d 'hello world 1' 'http://127.0.0.1:4151/pub?topic=test'
用命令在另一个外壳中启动nsq_to_file:
nsq_to_file --topic=test --output-dir=/tmp --lookupd-http-address=127.0.0.1:4161
最后,向NSQD发布更多消息,例如:
curl -d 'hello world 2' 'http://127.0.0.1:4151/pub?topic=test'
curl -d 'hello world 3' 'http://127.0.0.1:4151/pub?topic=test'
用于终端中的测试运行命令:
./test.sh
对于实时调试和监视,下面的命令也非常有效:
watch -n 0.5 "curl -s http://127.0.0.1:4151/stats"
最后,在您喜欢的Web浏览器中,打开http://127.0.0.1:4171/验证和查看NSQADMIN UI并查看统计信息。还请检查写入 /tmp目录的日志文件(测试*。log)的内容。 恭喜!您已成功在Ubuntu系统上安装了NSQ。享受!
常见问题
什么是NSQ?
NSQ是一个开源实时分布式消息平台,每天处理数百万条消息。它提供可靠的消息,没有容错性和高可用性。
是NSQ开源吗?
NSQ是最佳的开源消息队列和实时分布式消息平台。 NSQ源代码存储库可在github上获得。
NSQ免费吗?
NSQ是免费使用和Dowload分布式消息队列平台。
什么是NSQ与Kafka?
NSQ和KAFKA都是消息排队服务。 NSQ更容易配置,并且更容易部署消息队列平台,而KAFKA则确保了严格的保证和可靠性,而无需数据丢失。
编写了哪种语言?
NSQ用GO编程语言编写。