一、从nsq官网下载类库
地址:https://nsq.io/clients/client_libraries.html,下载 名称为nsq-j的jar包,点开nsq_j的连接后,可以看到依赖包
<dependency>
<groupId>com.sproutsocial</groupId>
<artifactId>nsq-j</artifactId>
<version>0.9.4</version>
</dependency>
二、jar下载完成后,项目中代码如下发布消息(生产)
public static void main(String[] args) {
//发布消息
Publisher publisher = new Publisher("192.168.138.128");//你的nsq服务器ip地址,如果是分布式,可以是多个地址,如new Publisher("192.168.138.128","192.168.138.x")
for(int i=0;i<100;i++){
byte[] data = ("Hello_nsq"+i).getBytes();//要发送的消息
publisher.publish("test1", data);//test1为主体topic
}
}
三、接收消息(消费)
public class CusExample implements MessageHandler{
@Override
public void accept(Message paramMessage) {
//接收到的消息
System.out.println("Received:" + new String(paramMessage.getData()));
paramMessage.finish();//标记已消费
}
public static void main(String[] args) {
Subscriber subscriber = new Subscriber("192.168.138.128");//nsq服务器ip,也可以配置多个
CusExample data=new CusExample();//实现MessageHandler接口的accept方法的类
subscriber.subscribe("test1", "nsq_to_file1", data);
//对应上面一行的代码:订阅消息,test1是主体topic,与发布的主体要对应,
//nsq_to_file1是通道channel,自定义,如果nsq服务器上没有该通道,会自动创建此通道
}
}
这样接可以发布和订阅消息了。