分布式架構設計:
1、橫向分層,將系統在橫向維度上切分成幾個部分,每個部分負責一部分相對比較單一的職責,例如:mvc經典模式。
2、縱向分割,將系統功能模組歸類切分成幾個部分,包裝成高內聚低耦合的模組單元,不同功能模組直接通過遠端呼叫協助工作。
3、快取技術,將是改善系統效能的第一手段,從上到下依次:瀏覽器快取、反向**快取、靜態檔案快取、資料層快取。
4、非同步處理,將乙個複雜業務操作分成幾個階段,每個階段之間通過共享資料的方式進行非同步執行。
5、事件驅動,通過在低耦合的模組之間傳輸事件訊息,以保持模組的鬆散耦合,並借助事件訊息的通訊完成模組之間的合作。發布-訂閱模式,新增業務,只要對該類訊息感興趣,即可訂閱該訊息,對原有系統沒有任何影響。
6、資料儲存,關聯式資料庫、nosql、日誌檔案。
考慮問題
效能問題
1、web端,負載降低服務處理請求壓力,使用瀏覽器快取,磁碟啟用壓縮,**設計上css放在上面、js放在下面,先渲染樣式。減少cookie傳輸,推薦cdn加速。
2、ws端,快取,快取,還是快取。遵循二八定律:80%的訪問落在20%的資料上,利用hash表和記憶體的高速訪問特性,將這20%的資料快取起來。sql優化、服務介面復用,多執行緒。
3、儲存端,在關係型資料庫mysql中普遍使用b+樹作為索引,在實際中索引也分為聚集索引和非聚集索引,而在hbase中則採用的是lms樹組織資料的。兩者各有優劣協作使用。mysql實現主從同步讀寫分離。
安全問題
1、xss攻擊,跨站點指令碼攻擊;黑客通過篡改網頁,注入惡意html指令碼,使用者在瀏覽網頁時,控制使用者瀏覽器進行惡意操作
2、注入(sql/os)
3、csrf攻擊,跨站點請求偽造,利用瀏覽器cookie或者伺服器session策略,盜取使用者身份
4、error code
5、邏輯跳過
6、敏感資料
7、html注釋等
服務策略
1、服務分級,將核心業務和服務集群與優先使用更好的資源。
2、服務熔斷,避免服務故障引發雪崩。
3、服務超時,設定超時;一旦超時,框架丟擲異常。
4、服務降級,為了保證核心應用和功能的正常執行,需要對服務進行降級處理
5、冪等性,在服務層保證服務重複呼叫和呼叫一次產生的結果相同。
推薦閱讀:
kafka 入門教程
你可以不懂但一定要知道的**審查 code review
elk stack 實戰教程
filebeat+kafka+strom+logstash+es 輿情採集系統
安全漏洞掃瞄,風險原因分析及解決方案
老王說ros的tf庫
ros的tf庫 為了這個題目,我是拿出了擠溝的精神擠時間,是下了功夫的,線性代數 矩陣論複習了,慣性導航裡的dcm 四元數也了解了,剛體力學也翻了,wiki裡的尤拉角也讀了,tf的tutorial source code也都看了。說實在的,經過這次努力,我是有點了然於胸了,我也非常想了然於紙上與小夥...
346 老王的禮物
人生贏家老王在網上認識了乙個妹紙,然後妹紙的生日到了,為了表示自己的心意,他決定送她禮物。可是她喜愛的東西特別多,然而他的錢數有限,因此他想知道當他花一定錢數後剩餘錢數無法再購買任何一件剩餘物品 每種物品他最多買乙個 時有多少種方案,兩種方案不同,當且僅當兩種方案中至少有一件品不同,可是由於他忙著準...
問題 1253 老王賽馬
賽馬是一古老的遊戲,早在西元前四世紀的中國,處在諸侯割據的狀態,歷史上稱為 戰國時期 在魏國作官的孫臏,因為受到同僚龐涓的 被齊國使臣救出後,到達齊國國都。賽馬是當時最受齊國貴族歡迎的娛樂專案。上至國王,下到大臣,常常以賽馬取樂,並以重金賭輸贏。田忌多次與國王及其他大臣賭輸贏,屢賭屢輸。一天他賽馬又...