# nsqTest **Repository Path**: jiangluu/nsqTest ## Basic Information - **Project Name**: nsqTest - **Description**: No description available - **Primary Language**: Kotlin - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-07-14 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README nsqTest =============================== [nsq](https://github.com/nsqio/nsq)是一个消息队列服务。有很高的star数:9800+。 本项目是通过其java语言的驱动[JavaNSQClient](https://github.com/brainlag/JavaNSQClient)来使用nsq的一个简单例子;同时也对性能进行了一个简单的测试。 ## bench 性能测试用不同的配置进行了两组:第一组的producer和consumer是使用[JavaNSQClient](https://github.com/brainlag/JavaNSQClient)的java代码;第二组的producer是[http_load](http://git.oschina.net/jiangluu/http_load)。http_load是一个传统的http压力测试工具,使用它向nsq的服务直接发送http请求。 consumer是nsq自带组件nsq_to_file,它把收到的消息写磁盘文件。 两组的性能差别不大,都在 3000~4000 QPS之间浮动。 ## 重点 经过例子代码和测试发现2个非常重要的点需要重点说明。 - nsq是推模式(push)。即nsq服务器会直接把消息推到nsq客户端,并唤起客户端事先注册好的回调函数 - 有多线程问题。例子代码中每次收到消息会给一个全局计数器+1。一开始未对这个计数器加锁,计数器的值总是不对。后来给计数器加锁,计数器的值才完全等于producer发送的消息数量