日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络杂谈, Docker, MongoDB

發布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络杂谈, Docker, MongoDB 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://antkillerfarm.github.io/

網絡雜談

集線器&交換機&路由器

1.集線器,又名HUB。一般只起增強信號的作用,并不對流經的數據進行處理。數據轉發采用廣播方式,只適合少量終端設備的情況。

2.交換機。它會對轉發數據的數據鏈路層(OSI第二層)進行處理。

2.路由器。它會對轉發數據的網絡層(OSI第三層)進行處理。

以上都是一些原始定義,實際情況中,由于都是網絡數據交換設備,跨界的情況隨著硬件的升級,而屢見不鮮。比如現在的集線器,多數也有簡單的數據處理能力;而現在的交換機,有的也有第三層處理能力(比如三層交換機)。

以我的經歷為例,2003年左右,大學宿舍的兄弟們就使用集線器,進行聯網游戲。

2007年,換用交換機,和合租的同事,一起上網。

2010年,換用無線路由器,手機也可以wifi上網了。

XMPP

XMPP(Extensible Messaging Presence Protocol)和SIP(Session Initiation Protocol)都是應用層的數據交換協議。作為它們前輩的HTTP雖然取得很大成功,但也存在如下問題:

1.內容形式主要限定為html,對于傳輸非界面數據的應用來說,效率不高,也不專業。

2.HTTP基于Client發送請求,Server響應的模式。對于VOIP這樣的應用來說,Server主動發送數據的能力顯然更關鍵。

XMPP和SIP的特點如下表所示:

XMPPSIP
核心協議的目的服務于結構化的數據交換服務于連接的建立
核心外擴展添加Jingle協議支持面向連接的業務添加SIMPLE協議支持即時通信業務
應用支持和擴展性一般
數據格式XML,易解析文本,不易解析。
通道方式控制和數據通道是一體的,Clent只與Server建立連接,而Client與client之間是沒有連接的。Client之間傳送的通道是:Client1–>Server1–>Server2–>Client2。這種方式看起來擴展性差,Server壓力很大,但是能夠實現很好的業務功能,比如留言、廣播、群聊、狀態更新、Blog、微博、數據共享等等。連接建立通道與數據傳送通道是各自獨立的,連接建立在Client與Server之間,而數據傳送通道是在Client–>Client之間直接進行的。這個對視頻、語音和文件傳送業務很合適,但是不適合其他形式的應用。
底層協議TCP and TLS onlyUDP, TCP and TLS
連接方式單向連接,只有Client可以向Server發起連接請求,Server不會向Client發起連接。這樣便于NAT和firewall的穿越。雙向對稱,客戶端和服務器都可以主動發起連接請求并響應,這種對稱連接的方式在穿越NAT和firewall的時候,帶來很大的復雜性,無法保證穿越NAT。
前景開源實現眾多,應用廣泛。且被Google、MS、Facebook等巨頭支持,前景樂觀。核心外業務沒有起色。核心業務也遭到Jingle協議的挑戰。

參考文獻:

http://my.oschina.net/linuxhunter/blog/35370

基于loudmouth的XMPP客戶端DEMO

http://xmpp.org/xmpp-software/

這個網頁列出了XMPP的各種客戶端、服務器以及庫的實現。在我們的項目中,服務端使用Openfire,嵌入式客戶端使用gloox。

http://www.cnblogs.com/hoojo/archive/2013/03/29/openfire_plugin_chatlogs_plugin_.html

Openfire的聊天記錄插件開發。

Openfire

安裝

Openfire的官網是:

http://www.igniterealtime.org/projects/openfire/

從官網可下載源代碼包和可執行文件包,這里選用deb格式的安裝包。安裝之后的文件主要在:

1./etc/openfire。配置文件目錄

2./usr/share/openfire??蓤绦形募癹ar庫的目錄。

運行

可以使用以下命令:

/etc/init.d/openfire {start|stop|restart|status|condrestart|reload}

設置

web設置可訪問以下網址:

http://127.0.0.1:9090

Spark

Spark和Openfire都是Ignite Realtime的產品。Spark是一個Java寫的XMPP客戶端。注意,這個Spark和Hadoop生態圈的Spark不是同一個軟件。

我一開始直接下載二進制包,但無法運行,原因不詳。

于是改用源代碼編譯的方式。源代碼地址:

https://github.com/igniterealtime/Spark

編譯方法:

cd build

ant

可執行程序:arget/build/bin/startup.sh

登陸時的“服務器”一欄,要填寫服務器名稱,填IP地址是不行的。

osip & eXosip

osip是SIP協議的一個開源實現。其官網為:

http://savannah.gnu.org/projects/osip

eXosip在osip上封裝了一層,簡化了在多媒體會話方面SIP協議的使用。其官網為:

http://savannah.nongnu.org/projects/exosip/

IRC

最近,由于搗鼓VNC剪貼板沒有結果,我不得不尋找它的替代方案,這時IRC進入了我的視線。

IRC雖然沒有XMPP那么強的功能,但畢竟是20年前的東西了,各種資料和支持都比較完善,使用配置也沒有后者那么復雜,是個不錯的東西。

IRC Server

這里推薦兩款:

1.ircd-hybrid

http://ircd-hybrid.org/

2.unrealircd

https://www.unrealircd.org/

安裝教程:

http://soft.dog/2016/03/25/unrealircd-basic/

IRC Client

開始使用的是hexchat。官網:

https://hexchat.github.io

Windows版本做的不錯,但Linux版本老是運行不起來。。。

最后一氣之下,想到了emacs,而后者也不負所望。

M-x erc

IRC命令

常用IRC命令參見:

https://en.wikipedia.org/wiki/List_of_Internet_Relay_Chat_commands

注意細節如下:

1.join命令中輸入的channel名如果不存在,則會創建channel。相當于該命令既是加入命令,也是創建命令。

NTP

Network Time Protocol,是用來讓計算機之間實現時間同步的協議。

網上可用的NTP Server列表,可參見:

http://www.pool.ntp.org/en/

NTP的Client有很多,這里使用ntpclient軟件。它的官網:

http://doolittle.icarus.com/ntpclient/

調試的時候,可以使用如下命令設置時間:

sudo date -s 10:00:00

修改之后,可用date命令查看系統當前時間,確認修改的效果。

ntpd是NTP的另一個實現,既可以當Server,也可以當Client,已經被集成進busybox。

socket通信基本流程

TCP

服務器端 客戶端 1.創建socket 1.創建socket 2.bind 2.listen 4.accept ----等待客戶端連接---- 3.connect 5.讀數據(recv4.寫數據(send6.寫數據(send5.讀數據(recv7.關閉socket(closesocket) 6.關閉socket(closesocket)

UDP

服務器端: 客戶端 1.創建socket 1.創建socket 2.bind 2.bind 3.recvfrom ----等待連接---- 3.sendto 4.sendto 4.recvfrom 5.關閉socket(closesocket) 5.關閉socket(closesocket)

WIFI WPS

WPS分為PBC(BUTTON)和PIN兩種方式

PBC

按WPS按鈕實現WPS安全連接。

在AP中,在WPS設置中,設置為啟用。

按一下客戶端(無線網卡)上的WPS按鍵,搜索WPS網絡。

按一下AP上的WPS按鍵,WPS開始鏈接協商,片刻后WPS安全連接成功建立。

PIN

1.PIN(Internal Registra, 相對于AP而言):通過在路由器中輸入客戶端PIN碼來實現WPS安全連接。

在WPS設置中,把狀態設置為啟用。

打開客戶端WPS設置軟件,選擇在路由器中輸入PIN的方式連接,同時軟件上還會顯示客戶端當前的PIN碼。

打開路由器界面,在WPS模式里選擇PIN模式,然后輸入客戶端的PIN碼, 點添加新設備,一會兒后,WPS安全連接成功建立。

2.PIN(External Registra, 相對于AP而言):通過輸入AP的PIN碼實現WPS安全連接。

在AP中,在WPS設置中,設置為啟用。

記住AP的PIN碼,然后打開客戶端(無線網卡)WPS設置軟件,選擇以AP的PIN碼來進行連接。

輸入完PIN碼后,點下一步,一會兒后,WPS安全連接成功建立。

Zookeeper

http://zookeeper.apache.org/

bin/zkServer.sh status

http://www.cnblogs.com/lpshou/archive/2013/06/14/3136904.html

http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/index.html

Jetty

Jetty是一個Java Servlet容器。官網:

https://www.eclipse.org/jetty/

它與Tomcat的差異在于:

1.Jetty是Eclipse基金會的項目,而Tomcat是Apache基金會的項目。

2.Jetty是輕量級的Web Server,系統開銷小,而Tomcat是重量級的Web Server,功能更強大。

3.啟動方式不同。Jetty一般是嵌入Java程序中,在程序啟動之后,再啟動Jetty。而Tomcat是首先啟動自己作為后臺服務,然后再加載功能性的應用。

參考:

https://github.com/jasonish/jetty-springmvc-jsp-template

一個Jetty+Spring MVC+JSP的demo。

Docker

Docker是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

官網:

https://www.docker.com/

下圖顯示了Docker和VM之間的差別:

參考:

http://blog.csdn.net/colorant/article/details/20608157

快速理解Docker

http://www.cnblogs.com/zhangmingcheng/p/5730070.html

Docker數據管理

https://mp.weixin.qq.com/s/E4wKaIddq8_jRVx9q08qtg

Docker入門

MongoDB

MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。

官網:

https://www.mongodb.com/

安裝:

https://docs.mongodb.com/getting-started/shell/tutorial/install-mongodb-on-ubuntu/

參考:

https://docs.mongodb.com/manual/reference/sql-comparison/

這里提供了MongoDB查詢語法和SQL查詢之間的對應關系表。

https://docs.mongodb.com/manual/reference/sql-aggregation-comparison/

這是上面表格的高級版本,專門處理group by的情況。這種情況也叫做Aggregation。

Robomongo

Robomongo是一個開源的MongoDB的前端工具,基于Qt編寫。官網:

https://robomongo.org/

WebSocket

在瀏覽器中通過http僅能實現單向的通信。AJAX通過輪詢方式,達到全雙工通信,但效率不高。

面對這種狀況,HTML5定義了WebSocket協議(基于TCP),能更好的節省服務器資源和帶寬并達到實時通訊。

瀏覽器請求

GET /webfin/websocket/ HTTP/1.1Host: localhostUpgrade: websocketConnection: UpgradeSec-WebSocket-Key: xqBt3ImNzJbYqRINxEFlkg==Origin: http://www.sohu.comSec-WebSocket-Version: 13

服務器回應

HTTP/1.1 101 Switching ProtocolsUpgrade: websocketConnection: UpgradeSec-WebSocket-Accept: K7DJLdLooIwIG/MOpvWFB3y3FE8= 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的网络杂谈, Docker, MongoDB的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。