Java nats-server

一、下载

curl -L https://github.com/nats-io/nats-server/releases/download/v2.12.1/nats-server-v2.12.1-linux-amd64.tar.gz -o nats-server.tar.gz

二、安装

tar -xvzf nats-server.tar.gz

三、配置(在此目录新配置文件 simple.conf   内容如下)

# Simple config file

server_name: testing_server

listen: 4222

http: 8222

# Enable TLS on reload
#tls {
#    cert_file: "../test/configs/certs/server-cert.pem"
#    key_file: "../test/configs/certs/server-key.pem"
#    ca_file: "../test/configs/certs/ca.pem"
#    verify: true
#}


authorization {
#  users = [
#      {user: alice, password: foo}
#      {user: bob,   password: bar}
#  ]
  user:     myUser
  password: myPassword
  timeout:  1
}

# logging options
debug:   true
trace:   true
logtime: true
#syslog: true
#remote_syslog: "udp://foo.com:33"

# pid file
pid_file: "/tmp/nats-server.pid"

# prof_port
#prof_port: 6543

# max_connections
max_connections: 100

# max_subscriptions (per connection)
max_subscriptions: 1000

# max_pending
max_pending: 10000000

# maximum control line
max_control_line: 2048

# maximum payload
max_payload: 65536

# ping interval and no pong threshold
ping_interval: "60s"
ping_max: 3

# how long server can block on a socket write to a client
write_deadline: "3s"

lame_duck_duration: "4m"

# report repeated failed route/gateway/leafNode connection
# every 24hour (24*60*60)
connect_error_reports: 86400

# report failed reconnect events every 5 attempts
reconnect_error_reports: 5

四、启动服务

nohup /home/nats-server-v2.2.0/nats-server -c /home/nats-server-v2.2.0/simple.conf &

查看服务是否启动成功:

ps -ef|grep nats

五、发布客户端

package test.nats;

import java.nio.charset.StandardCharsets;

import io.nats.client.Connection;
import io.nats.client.Nats;
import io.nats.client.Options;

/**
 * 发布消息
 *
 */
public class Publish {


     public static void main(String[] args) throws Exception {
         Options o = new Options.Builder()
                 .server("nats://47.107.**.***:4222")
//               .server("nats://servertwo:4222")
                 .userInfo("myUser".toCharArray(), "myPassword".toCharArray())
                 .maxReconnects(-1).build();
         Connection nc = Nats.connect(o);
         nc.publish("subject", "replyto", "hello world 测试内容!{\"name\":\"张三\"}".getBytes(StandardCharsets.UTF_8));
         nc.close();
     }

}

六、接收客户端

package test.nats;

import java.nio.charset.StandardCharsets;

import io.nats.client.Connection;
import io.nats.client.Dispatcher;
import io.nats.client.Nats;
import io.nats.client.Options;

/**
 * 消息订阅
 *
 */
public class Subscribe {

    public static void main(String[] args) throws Exception {
        Options o = new Options.Builder()
                .server("nats://47.107.**.***:4222")
//                .server("nats://servertwo:4222")
                .userInfo("myUser".toCharArray(), "myPassword".toCharArray())
                .maxReconnects(-1).build();
        Connection nc = Nats.connect(o);
 
        Dispatcher d = nc.createDispatcher((msg) -> {
            String response = new String(msg.getData(), StandardCharsets.UTF_8);
            System.out.println("response=="+response);
        });

        d.subscribe("subject");
 
//        nc.close();
    }
    
}

 

posted @ 2025-10-15 15:20  都是城市惹的祸  阅读(2)  评论(0)    收藏  举报