1. 程式人生 > >Spring MVC學習記錄(一)——網站基礎知識(1)

Spring MVC學習記錄(一)——網站基礎知識(1)

Spring MVC學習之——網路架構及演變過程

1.軟體的三大型別:單機型別、CS型別、BS型別。

單機型別:曾經的主要軟體型別,不聯網,實現電腦的基本功能,如打字、畫圖。

CS型別:單機之後為了統一管理軟體的資料,產生了客戶端和伺服器端,客戶端管理業務,伺服器端管理資料。後來這種型別也出來了將部分業務放到伺服器端中。

BS型別:基於瀏覽器實現,瀏覽器是用來顯示資料的,業務是在服務端實現處理,具體業務在不同的服務端進行,BS結構除了提供統一的客戶端,還根據相應協議和標準提供通用的伺服器程式,伺服器程式統一處理資料鏈接、封裝和解析等工作。

這三種類型,BS結構開發最簡單,目前使用最廣。也不是說BS是最好的。比如我們電腦中的記事本、OFFICE是單機軟體;BS結構的靈活性和處理效率都不如CS結構(所以優酷什麼的老要使用者下客戶端會快?嘿嘿)所以像QQ、大型遊戲等軟體使用的還是CS結構(這些大部分是基於C/C++開發)。

2.網路基礎結構

瞭解網路傳輸方式,OSI和TCP/IP都是將網路傳輸的過程分成多個簡單的問題。

這裡說一下TCP/IP的四層結構:

1.網路接入層:將需要相互連線的節點接入網路中,從而為資料傳輸提供條件。

2.網際網路層:找到需要傳輸資料的目標節點(IP)

3.傳輸層:實際傳輸資料(TCP)

4.應用層:使用接收到的資料(HTTP)

用上網買東西為例,我們先確定自己所在的位置有相應的菜鳥驛站,這個就相當於網路接入層,然後告訴賣傢俱體地址,這個相當於網際網路層;快遞送貨,就是傳輸層;然後自己收到包裹拆包裹就是應用層。

3.架構演變

因為業務資料的增長,現在要解決的問題就是海量資料操作問題和高併發問題,網站複雜的架構就是這兩個問題演變出來的。

架構演變的起點:從服務端只有一臺主機到應用程式和資料庫分離,出現多臺主機。

4.海量資料解決方案:快取、頁面靜態化、資料庫優化、分離活躍資料、批量讀取和延遲修改、讀寫分離、分散式資料庫、NOSQL和Hadoop

快取:快取就是從資料庫中獲取的結果暫時快取儲存起來,在下次使用的時候無須重新到資料庫中獲取,降低資料庫的壓力。

通常用到的有程式編碼直接儲存和使用快取架構儲存;程式會用到Map、ConcurrentHashMap。常用的快取框架是Ehcache、Memcache和Redics.

——————————————————2017/11/14等有時間再寫。。。。

快取使用過程中最重要的問題是什麼時候建立快取和快取失效機制。還要注意快取中空值的管理辦法。。。這些有很多技巧,可以自己上網查。。。

快取使用的情況是對實時性要求不高的,因為快取和實際資料可能存在偏差。報表資料是不能用快取技術的。

頁面靜態化道理和快取一樣,不過不是快取資料庫查詢資料,而是將瀏覽器最後的頁面儲存下來。

頁面靜態化可以用模板生成,比如Freemarker和Velocity。

資料庫優化:表結構優化、SQL語句優化、分割槽、分表、索引優化、使用儲存過程代替直接操作

表結構優化,資料庫入門啦,什麼三正規化之類的

SQL語句優化,一般是指基礎語法的優化,網路上講這個的有好多,也不用太記,可以後期優化需求的時候再改,留一手才不會失業嘛,哈哈。需要用的時候上網查。

這個SQL優化要注意的是什麼嘞,是將涉及大資料的業務的SQL語句執行時間詳細記錄下來,其次通過仔細分析日誌找出需要優化的語句和其中的問題,然後再有的放矢的優化。

分割槽,這個是資料庫上的操作

分表,分表有時候是可以讓操作提高速率的。但是也會存在分表過多涉及操作麻煩的問題,具體情況具體分析

索引優化,提高查詢速度,但是也降低增刪改的速度。

儲存過程,只編譯一次,可以在安全上用到,也可以用來提高效率。

分離活躍資料,資料量很大的時候,活躍資料並不多,可以將活躍資料單獨儲存起來進行操作,從而提高效率。比如網站裡的使用者資料,可以定期考量活躍使用者並將它們放到預設表中,查詢時先從預設表中查詢,找不到再從不活躍使用者表中查詢。

批量讀取和延遲修改,這兩個操作的原理就是通過減少操作的次數來提高效率。

批量讀,就是將要讀的很多資料放到一個變數中讀取。

延遲修改,利用快取,這個快取不是上面說的快取技術,將要修改的資料放在快取裡,然後定時將快取中的額資料寫入到資料庫中,不會造成一堆寫的阻塞。

讀寫分離,這個一般用在資料庫是叢集的情況下,用主伺服器寫,從伺服器們讀,要考慮負載均衡,讀寫分離操作什麼的。

NoSQL\Hadoop,NoSQL非結構化的用區塊鏈技術連線的,在網際網路有用的,企業業務系統沒有用這個的,還在發展階段,現在區塊鏈又不火了,可能用這個的還是比較少啊

Hadoop專門針對大資料的一套框架,叢集。很多大資料技術是基於Hadoop實現的,所以Hadoop用的還是挺多的。

--------------------------------------------------------------------2017/11/15