原创 Unix編程藝術-翻譯-開篇

反思 我本人很想提高英語能力包括閱讀國外軟件文檔、和口語交流能力,其實這些能力我也每天堅持練習。後面我想可以通過翻譯著名國外軟件書籍,既可以提高英文閱讀理解能力,又可以把專業知識提高到一個層次,同時將自己的思想和大家一起分享共同成

原创 生活中的面向對象

面向對象思想 感悟:要想成爲合格工程師,必須擁有面向對象思維 初級工程師和高級工程師以及架構師最大的區別就是等級越高看問題的角度就不一樣,猶如初級工程師寫系統完全就是面向過程 if else寫滿整個類,而且類之間的耦合性很大,不

原创 大型網站之高性能

大型網站技術架構之高性能 性能指標: 用戶角度:使用app或網站響應的快慢 開發角度: 吞吐量、響應時間、併發數以及系統資源利用情況 吞吐量:每秒處理的請求數,稱爲TPS或QPS 響應時間:從請求發送開始計時到獲取結果所花費的時間

原创 大型網站之伸縮性

大型網站技術架構之伸縮性 什麼是伸縮性 當面臨大量併發,大流量時,爲了能夠提高系統的處理能力,通過增加機器來提升系統性能,能夠方便並且性能提升會根據增加機器數量呈線性增長,這個稱爲網站的伸縮性 負載均衡算法 隨機 輪詢 隨機加權

原创 服務彈力設計總結

服務彈力設計總結 一、服務冗餘 1、負載均衡器+健康檢查 Nginx或HAProxy 2、RPC框架 實現服務自動發現和註冊 zookeeper 3、自動化實現服務伸縮 二、服務解耦 1、分層(應用層、服務層、數據服務層)

原创 探究Google Proto Buf 序列化工具爲什麼高效

爲什麼Proto Buf高效 序列化和反序列化 大家接觸的比較多的是java自帶的序列化工具,例如我們要對象數據進行持久化到硬盤或者通過網絡傳輸到對端主機上,所以我們需要通過某種序列化工具將數據轉化成一種特定數據結構,並且對端或者

原创 分佈式服務之邊車模式

邊車模式 邊車:就是在原來二輪摩托車旁邊增加一個座位成了三輪摩托車,增加的一部分稱爲邊車 邊車模式:對現有的服務增加額外的功能,這些功能並不影響業務邏輯,例如增加日誌,限流、熔斷、服務的註冊和服務發現有專門服務來實現。 像程序中的

原创 大型網站之高可用

大型網站技術架構之高可用 服務部署:一般上線之前會合並代碼到develop分支上,然後通過打包平臺進行編譯打包,然後將包通過scp傳到服務器上,ssh 服務器ip 然後執行命令重啓服務,重啓之前,先從ngnix切除到這臺服務器的請

原创 服務網格模式(Server Mesh)

服務網格模式(Server Mesh) 服務網格模式可以看作是邊車模式的集羣方式,當多個邊車相互連接在一起就形成了一個一個的服務網格,網格其實就是相互關聯的服務 Server Mesh(去中心化): 在網絡協議棧中,爲了避免應用程

原创 大型網站技術架構之可擴展性

大型網站技術架構之可擴展性 可擴展性首要步驟: 1、將整個系統按照縱向劃分多個層次(應用層、服務層、數據服務層),橫向分割成多個模塊 2、保證模塊之間是高內聚、低耦合的,將耦合降到最低 實現可擴展性的方式(降低耦合) 1、使用消息

原创 大型網站技術架構之安全性

大型網站技術架構之安全性 網站攻擊方式 XSS(Cross Site Script) 跨站腳本攻擊 一般在PC瀏覽器端 反射性:例如有張圖片或者連接,當用戶一點擊就會執行攻擊的腳本,向攻擊者服務器發送cookie或密碼信息,或

原创 CPU中斷請求理解

CPU軟中斷 1、什麼是中斷 中斷表示我們請求操作事件準備就緒了,例如從磁盤讀取數據,我們知道CPU執行速度比磁盤執行速度快幾個數量級,因此如果CPU每次check磁盤是否準備就緒了,那麼系統的併發能力和性能會大大下降,但是採用中

原创 AQS深入剖析實現原理

AQS(AbstractQueueSynchronizer) 這裏寫自定義目錄標題AQS(AbstractQueueSynchronizer)概念AbstractQueueSynchronizer類內部組成總結:Reentrant

原创 類加載子系統

Class Load System 加載:把二進制字節碼流(可以是class文件、網絡字節流)加載到內存中,這片內存稱爲方法區(存放Code 字節碼 + 元數據 (類、字段(名稱和描述符)、方法(名稱和描述符)、常量池信息),然後經過

原创 JVM之Class字節碼解析

Class Format 類文件就是由以下兩種類型組成的 u(n) 表示存放n個無符號字節 info 一種複雜結構由無符號和其他表項組成 class二進制流數據組成項 名稱 類型 數量 magic(魔法數) u4 1