原创 大型網站技術架構演進與性能優化(五) 五、應用程序優化:代碼級優化

五、應用程序優化:代碼級優化 1、優化思路 做優化首先要知道從哪裏入手,也就是要知道系統的瓶頸在哪裏。一個請求會消耗很多資源:CPU、內存、網絡、磁盤等。這些資源中總會有一個到達瓶頸,只有優化最先到達瓶頸的資源纔會產生效果。 壓測

原创 大型網站技術架構演進與性能優化(九)九、網站高可用建設:大型網站的穩定性建設

九、網站高可用建設:大型網站的穩定性建設 穩定性是決定網站生死的命脈 1、故障帶來的影響 導致極差的用戶體驗、嚴重影響公司聲譽 2、網站的可用性指標 網站可用性即網站正常運行時間的百分比,業界用N個9來量化可用性,最常說的是“4個

原创 大型網站技術架構演進與性能優化(一) 構建大型網站:分佈式改造

一、構建大型網站:分佈式改造 1、爲什麼要做分佈式化 隨着業務的擴展和流量的爆發式增長,該系統很快達到了瓶頸,是不是一定要對它做分佈式改造呢?其實我們早期也嘗試用過一些高端的服務器(IOE),但一方面價格昂貴,另一方面這樣也阻擋不

原创 大型網站技術架構演進與性能優化(六)六、應用架構探索:合併部署

六、應用架構探索:合併部署 1、什麼是架構 業務架構抽象 面向用戶的,主要考慮給用戶帶來什麼價值、什麼體驗,如幫助用戶完成一系列需求的集合。 應用架構 面向技術人員,如何用更低的成本更快更好地實現用戶的需求,是應用架構要解決的問題

原创 大型網站技術架構演進與性能優化(八)八、全局基礎設施優化:資源調度優化

八、全局基礎設施優化:資源調度優化 基礎設施包括JDK、Tomcat、VM、操作系統和文件系統甚至硬件設備,它們其實都有優化空間,而且由於基礎設施的優化是事關全局的,所以通用性會更廣、收益會更大。 1、什麼是資源調度 資源調度分爲

原创 大型網站技術架構演進與性能優化(三) 大型網站平臺化演進:大中臺小前臺

三、大型網站平臺化演進:大中臺小前臺 中臺這個概念早期是由美軍的作戰體系演化而來的,技術上所說的“中臺”主要是指學習這種高效、靈活和強大的指揮作戰體系。電商經過十幾年的發展,組織已經龐大而複雜,業務不斷細化拆分,也導致野蠻發展的系

原创 大型網站技術架構演進與性能優化(四) 全球化下的網站演進:全球部署方案

四、全球化下的網站演進:全球部署方案 全球化部署需要解決以下幾個問題: 第一,業務核心單元的梳理。這些核心單元必須可以裁剪或添加。 第二,核心單元必須可以快速部署到國防的機房,最好能夠一鍵部署,即首先要實現單元化部署。 第三,實現

原创 spring boot 、mybatis-plus、shiro整合入門教程(一)——mybatis-plus代碼生成器

最近在研究spring boot、mybatis-plus、shiro等技術框架的整合,爲此設計了一套簡單的權限系統,在其中實現了主要的業務功能,增加一些功能代碼和技術技巧,提高自己的代碼能力 項目整體結構圖: 項目整體依賴的p

原创 使用joda-time封裝的日期工具類

1、Joda-time簡介 Joda-Time這個專門處理日期時間的庫 2、類說明 Instant:不可變類,代表時間線上的一個瞬時的時間點 DateTime:不可變類,它以毫秒級的精度封裝時間上的某個瞬間時刻,用來替換JDK的C

原创 大型網站技術架構演進與性能優化(七)七、鏈路優化:大秒系統的極致優化思路

七、鏈路優化:大秒系統的極致優化思路 全鏈路的優化案例,即用戶端->中間的鏈路->服務端->數據庫的整條鏈路的極致優化思路。 主要介紹大秒系統以及這種典型的讀數據的熱點問題的解決思路和實踐經驗。 1、一些數據 2013年的小米秒殺

原创 jackson使用

下面列舉了json的常用方法: 1、對象轉json 2、json字符串轉對象 3、 json字符串轉爲jsonNode 4、支持泛型 public class Jackson2Helper { private static

原创 大型網站技術架構演進與性能優化(二) 無線化:無線時代下的架構演進

二、無線化:無線時代下的架構演進 1、無線環境下的新挑戰 端的問題 無線場景下的端屏幕更小,但是端的控制力更強,端上的交互可以做得更加流暢,更主要的是客戶端能保持大量的狀態數據,減少與後臺的交互;客戶端能對底層系統有更多的交互,如

原创 讀領域驅動設計的領悟

領域驅動設計,個人領悟,主要是一種解決問題的方法論。 在互聯網公司中,大力提倡敏捷開發的今天,領域驅動設計會增加開發的複雜度,需要增加很大的開發工作量。 在我工作的幾家公司中,只有一家公司曾經提出過要進行領域驅動設計,但是領域驅動

原创 spring boot 、mybatis-plus、shiro整合入門教程(五)——採用mybatis-plus動態數據源配置,讀寫分離

接續上一篇,spring boot 、mybatis-plus、shiro整合入門教程(四)——自定義日誌註解、緩存註解 本項目採用的讀寫分離,使用的是mybatis-plus動態數據源切換的方案,官方文檔 項目中的數據庫配置示

原创 spring boot 、mybatis-plus、shiro整合入門教程(二)——mybatis-plus常用操作

接續上一篇,spring boot 、mybatis-plus、shiro整合入門教程(一)——mybatis-plus代碼生成器 項目中的數據庫表設計如下: 菜單管理頁面功能:新增、修改、刪除、查詢 新增代碼如下: SysMe