這是什么?
我的意思是,一個網絡組件在接受新連接后,先以文本協議等候消息,以實現支持telnet查看的功能。
telnet查看功能
- echo value。
網絡組件收到消息后,像echo服務器那樣直接返回value。value還可以是組件預置的變量,如$time返回服務器的當前時間。
- name value。
網絡組件收到消息后,將當前連接綁定到value這個名字上,其目的是為下一條heartbeat指令提供操作對象。
- heartbeat value。
網絡組件收到消息后,向value綁定的連接發起一個心跳檢測,將回執通知telnet端。
這有什么用?
以往telnet在開發中的作用就是ping具體的服務器地址和端口,無法進一步使用。有時候想實時的從服務器中了解一些簡單的連接信息,但是網絡組件只處理專有的二進制消息,只能實現一個不通用的客戶端。
若網絡組件在接收二進制消息之前能夠處理一些簡單的文本協議,那么telnet就可進一步使用,查看組件狀態甚至簡單調試組件。
還有一種就是服務器程序監控服務,通常這種監控服務只能判斷服務器程序是否運行或者掛掉,但是無法判斷服務器是否遇上死鎖而無法提供服務。當網絡組件支持這種文本協議之后,監控服務就能夠通過echo和heartbeat兩種消息檢測網絡組件listen方和connect方是否卡死。
內置一個http服務器不是更好?
其實在網絡組件中內置一個http服務器不是更好,可以通過wget,curl甚至瀏覽器進行操作,可視化程度也比較高。
我不這么認為。其實內置一個http服務器有點大了,搞不好比組件本身還大。再者http服務是和業務連接共用一個端口呢還是擁有獨立的服務端口,獨立的服務端口增加了太多的配置,共用端口的話從HTTP協議變遷到二進制協議是不是太麻煩了點。
posted on 2011-06-12 22:44
LOGOS 閱讀(2366)
評論(5) 編輯 收藏 引用