Linkedkeeper 架構演進賞析
LinkedKeeper 於2013年建站,於2016年1月正式更名為 LinkedKeeper,於2019年確認中文名‘鬆然聊技術’。
本網站是由本人從0到1獨立進行搭建,最開始於2013年在位於福建一家網路空間租賃公司,購買空間,上傳 war 和 db 管理,當時使用的域名是 www.zhangsr.com,然後寫些文章在網站上進行發表。
到了2014年,網站遷移到了阿里雲,購買了一臺低配的 ECS 和 RDB 服務,部署了 Nginx、Tomcat7、JDK6 進行開發部署,由於 www.zhangsr.com 域名歸屬問題,到萬網上重新申請了域名 www.zhangsr.cn。並開始在 Github 進行 Private 程式碼開發,開發語言是 Scala 和 Java 混搭。
當時使用的技術棧主要是以 Struts2、Spring3、iBatis 等進行系統搭建,頁面風格主要參考了 InfoQ 的樣式,整合 UEditor 開源框架進行文章編輯,功能越做越多,package 越來越大,而且還進行了前後臺系統的拆分,但隨著架構的不斷演進,系統變得十分龐雜,技術棧新老混搭,風格也篇老氣。
到了2016年,老舊的程式碼不堪重負,進行了一次整體架構的升級改造,技術棧升級為 Tomcat8、JDK7、SpringMVC3、iBatis 等,前端引入了 HTML5、CSS3、jQuery 等技術,並在系統部署上進行了整合,而且升級了 ECS 配置。也在當年,網站正式更名為 LinkedKeeper。
在2017~2018年裡,又進行了多次技術棧的升級改造,包括引入了阿里雲的 Redis、OSS、CDN 等技術,以及對網站風格進行的一次全新改版,主色調由藍色變為白色。同時,實現了對接 QQ 和微博的第三方登入功能。
到了2019年,ABC 時代來臨,引入 Elasticsearch 實現博文的搜尋,由於阿里雲提供的 Elasticsearch 版本是 5.5.3,所以技術棧必須是 Java8,這就引發 Spring4 的升級,從而又蝴蝶效應般的引發了一連串的技術棧升級。
還有,由於 ECS、RBD、JimDB、OSS、CDN 等都是部署在阿里雲的經典網路上,而到了 Elasticsearch 就必須部署在專有網路上,所以這在網路部署上,又使用了阿里雲的 ClassicLink 解決 VPC 網路問題。
時至今日,隨著 LinkedKeeper 架構不斷的演進,個人的技術能力也不斷的提升,並由衷的感到:個人需要學習的技術太多,一個人搭建一個網站需要的技術儲備也來越來多,大到後端開發、前端開發、資料庫、伺服器、網路、快取、開源框架等等,小到 Spring 攔截器、Jackson 版本、bonecp 資料連線池、Markdown 前端框架等等。
下面總結一下 LinkedKeeper 使用的主要技術棧:
-
使用 scala 和 java 8 進行開發
-
使用 nginx + tomcat 8 進行部署
-
使用 mysql 作為資料庫
-
使用 redis 作為資料快取
-
使用 elasticsearch 作為搜尋引擎
-
使用 oss 作為圖片儲存
-
使用 cdn 進行網站加速
-
使用 spring 4 作為 mvc 框架
-
使用 druid 作為 mysql 資料庫連線池
-
使用 mybatis 作為 orm 框架
-
使用 velocity 作為前端模版引擎
-
使用 markdown 作為文字編輯器
-
使用 logback 進行日誌列印
-
使用 fastjson 進行 json 解析
-
使用 bocuncycastle 進行安全加解密
-
使用 tuckey 進行 url 重定向
-
使用 hystrix 進行限流和熔斷
暢想下未來,LinkedKeeper 架構和技術棧都還有很大空間的提升,ABC 時代已悄然來臨,願於諸君共勉。