NATS伺服器部署及測試

2021-09-19 21:53:50 字數 2805 閱讀 2011

nats的伺服器是使用golang語言開發的,其可執行檔案的名字為gnatsd,表示go nats daemon。nats伺服器是乙個開源軟體,基於mit許可證發布。

nats server有linux版、mac版、windows版。下面以linux版為例,詳述其部署過程。

nats server當前的最新版本為0.7.2版,有三種二進位制發布包,詳見:

雖然nats server是用go語言開發的,但執行gnatsd無需安裝golang環境。gnatsd非常的輕量級,發布包只有2mb多,啟動時可以無需任何引數,直接執行即可。

gnatsd接受命令行引數作為控制手段。主要的伺服器引數如下。

1)伺服器選項

2)日誌選項

3)授權認證選項

4)tls安全選項

5)集群選項

6)常規選項1)解壓

# tar zvxf /home/gnatsd-v0.7.2-linux-amd64.tar.gz 

./license

readme.md

gnatsd

2)執行
# ./gnatsd 

[10787] 2016/03/28 23:22:18.472500 [inf] starting gnatsd version 0.7.2

[10787] 2016/03/28 23:22:18.472716 [inf] listening for client connections on 0.0.0.0:4222

[10787] 2016/03/28 23:22:18.473127 [inf] gnatsd is ready

3)檢視執行
# ps -ef |grep gnatsd

root 10787 10296 0 23:22 pts/0 00:00:00 ./gnatsd

root 10795 10669 0 23:22 pts/2 00:00:00 grep --color=auto gnats

4)遠端登入

在遠端機器上(我的是win 8.1),執行telnet登入:

c:\> telnet ***.***.***.*** 4222
連上後telnet立刻輸出:

info
可見,gnatsd使用了golang 1.5.2版開發。再次按下回車鍵,telnet斷開連線,顯示:

-err 'unknown protocol operation'

-err 'parser error'

遺失對主機的連線。

同樣,gnatsd伺服器端也會輸出這樣的資訊:

[10787] 2016/03/28 23:31:47.050594 [err] ***.***.***.***:58007 - cid:2 - error reading from client: client parser error, state=0, i=0: proto='"\r"...'
使用兩個客戶端進行驗證。在遠端windows主機上開兩個cmd命令列環境,均使用命令「c:> telnet ***.***.***.*** 4222」連上gnatsd伺服器。為了以示區別,這裡命名為客戶端a和客戶端b,a表示發布者,b表示訂閱者。

1)訂閱者b執行

訂閱者b使用萬用字元foot.*註冊主題id為90的主題,訂閱成功,gnatsd伺服器返回+ok訊息。

sub foo.* 90

+ok

2)發布者a執行

發布者a發布一條訊息到主題foo.bar,訊息有效負載的長度為5,按下回車。訊息發布成功,gnatsd伺服器返回+ok訊息。

pub foo.bar 5

hello

+ok

3)訂閱者b顯示
sub foo.* 90

+okmsg foo.bar 90 5

hello

前兩行是之前的內容,後兩行是新獲得的推送訊息。可見,發布/訂閱的訊息通訊成功。

4)發布者a繼續執行

發布者a繼續執行以下命令,訊息發布成功,gnatsd伺服器返回+ok訊息。

pub foo.bar optional.reply.subject 5

hello

+ok

5)接收者b繼續顯示
msg foo.bar 90 5

hello

ping

msg foo.bar 90 optional.replay ly.subject 5

hello

後面三行都是新增的訊息內容,其中ping是維持連線的訊息。

6)接收者b執行

接收者b執行取消訂閱命令,命令訊息傳送成功,gnatsd伺服器返回+ok訊息。

unsub 90

+ok

7)發布者a執行

發布者a再次發布一條訊息到主題foo.bar,訊息有效負載的長度為5,按下回車。訊息發布成功,gnatsd伺服器返回+ok訊息。

pub foo.bar 5

hell2

+ok

此時接收者b收不到訊息,因為訂閱已經取消了。

客戶端發出心跳命令訊息ping(用小寫ping也是同樣的),gnatsd伺服器返回pong訊息。

ping

pong

ping

pong

NATS伺服器部署及測試

nats的伺服器是使用golang語言開發的,其可執行檔案的名字為gnatsd,表示go nats daemon。nats伺服器是乙個開源軟體,基於mit許可證發布。nats server有linux版 mac版 windows版。下面以linux版為例,詳述其部署過程。nats server當前的...

伺服器部署及安裝

安裝python3.7的安裝包 yum y groupinstall development tools yum y install zlib devel bzip2 devel openssl devel ncurses devel sqlite devel readline devel tk d...

伺服器部署

cd 回到根目錄 cd 回到 root目錄 cd 返回上一級 cp file1 file2 複製檔案file1,生成轉殖檔案file2 cp命令詳解url find name filename foldername find命令詳解url ps ef grep nginx ps命令詳解url net...