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(); } }
    有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!
                    
                
                
            
        
浙公网安备 33010602011771号