原创 『大型網站技術架構』(四):可伸縮架構

『大型網站技術架構』(四):可伸縮架構 “大型“定義: Facebook: 大量用戶及大量訪問,10億用戶。 騰訊: 功能複雜,產品衆多,1600+種產品。 Google:大量服務器,100w臺服務器。 一、網站架構的伸縮性設計

原创 在Python Web項目中使用Jenkins進行持續集成

在一個項目的開發過程中,往往會有一些需要反覆執行的操作,比如編譯、測試、部署。具體於Flask項目,我一般使用nose執行單元測試、fabric進行部署、pylint執行代碼質量檢測等。這些頻繁需要執行的步驟,是非常枯燥的,那何不交給機

原创 大型網站技術架構』(六):安全性架構

『大型網站技術架構』(六):安全性架構 一、網站應用攻擊與防禦 1. XSS攻擊 跨站腳本攻擊(Cross Site Script, XSS)指攻擊者通過篡改網頁,注入惡意HTML腳本,在用戶瀏覽網頁時,控制用戶瀏覽器進行惡意操作

原创 用Jenkins CI構建持續集成的flask項目

持續集成 持續集成是敏捷開發流程中重要的一環,其存在的價值包括: 通過每天多次的集成,儘早的發現bug減少測試,部署等過程中大量的重複性操作快速反饋,能讓團隊即時的跟蹤到產品的狀態 在做項目的持續集成時,一般會依賴版本控制工具、自動

原创 100萬併發連接服務器筆記之Java Netty處理1M連接會怎麼樣

前言 每一種該語言在某些極限情況下的表現一般都不太一樣,那麼我常用的Java語言,在達到100萬個併發連接情況下,會怎麼樣呢,有些好奇,更有些期盼。 這次使用經常使用的順手的netty NIO框架(netty-3.6.5.Final)

原创 100萬併發連接服務器筆記之測試端就緒

重新編寫測試端程序 測試端程序需要增加綁定本機IP和本地端口的功能,以儘可能的向外發出更多的tcp請求。需要對client1.c重構,增加參數傳遞。 下面是client2.c的代碼 #include <sys/types.h> #

原创 100萬併發連接服務器筆記之處理端口數量受限問題

第二個遇到的問題:端口數量受限 一般來說,單獨對外提供請求的服務不用考慮端口數量問題,監聽某一個端口即可。但是向提供代理服務器,就不得不考慮端口數量受限問題了。當前的1M併發連接測試,也需要在客戶端突破6萬可用端口的限制。 單機端口

原创 100萬併發連接服務器筆記之1M併發連接目標達成

第四個遇到的問題:tcp_mem 在服務端,連接達到一定數量,諸如50W時,有些隱藏很深的問題,就不斷的拋出來。 通過查看dmesg命令查看,發現大量TCP: too many of orphaned sockets錯誤,也很正常,下

原创 【Akka筆記】0. Actor介紹

任何過去做過多線程開發的開發人員都知道管理多線程應用有多麼困難,多麼痛苦。這兒說的是“管理”,因爲多線程開始開發還是蠻簡單,並且看到有性能提升時還是蠻有趣的一件事。但是當你沒有簡單方式能夠從子任務中的錯誤中恢復,或者你發現的殭屍Bug很

原创 多維數據模型

在做BIEE的數據挖掘之前必須瞭解一下的這些概念,前車之鑑,望各位志同道合之兄共勉之!(所有的本人遇到的感覺重要的名詞解釋都使用使用紅色標記了。) 1.基本概念       數據倉庫和數據倉庫技術是基於多維數據模型的。這個模型把

原创 100萬併發連接服務器筆記之Erlang完成1M併發連接目標

前言 使用Erlang語言也寫一個測試和前面大同小異的測試,在100萬個併發連接用戶情況下,就是想觀察一下極顯情況下的表現。 這個測試使用了優秀的Erlang界的明星框架cowboy,加單易用的接口,避免了我們對HTTP棧再次進行閉門

原创 『大型網站技術架構』(五):可擴展架構

『大型網站技術架構』(五):可擴展架構 擴展性和伸縮性: 擴展性(Extensibility): 指對現有系統影響最小的情況下,系統功能可持續擴展或提升的能力。目標是當系統新增功能時,不需要對現有系統的結構和代碼進行修改。 伸縮性(

原创 孤兒進程與殭屍進程[總結]

1、前言   之前在看《unix環境高級編程》第八章進程時候,提到孤兒進程和殭屍進程,一直對這兩個概念比較模糊。今天被人問到什麼是孤兒進程和殭屍進程,會帶來什麼問題,怎麼解決,我只停留在概念上面,沒有深入,倍感慚愧。晚上回來googl

原创 讓進程安全地退出

終止一個進程有很多方法(咱只說linux環境):前臺運行的進程,如果沒有提供退出功能,我們通常會Ctrl+C進行終止;後臺或守護進程,如果也沒有提供退出命令啥的,咱通常會kill掉;此外還有類似關機或重啓之類的特殊情況,也會導致進程終止

原创 『大型網站技術架構』(二):高性能架構

『大型網站技術架構』(二):高性能架構 一、不同視角下的網站性能 用戶視角 關注點: 關注響應時間,包括瀏覽器和服務器通信時間 + 服務器處理時間 + 瀏覽器構造請求和解析響應的時間; 優化手段: 前端架構優化 開發人員視