本系列文章主要是針對如何從無到有搭建中小型互連網公司後台服務架構和營運架構的課程,系列文章所涉及的內容均是當前應用最廣泛的技術和工具。
本系列文章的技術及工具如下:
後台服務架構:dubbo、spring-boot、spring mvc、spring-security-oauth2、spring-ldap、spring-data-jpa等
專案管理工具:maven、nexus
版本管理工具:gitlab、git
資料庫:mysql、mongodb
營運監控工具:Open-Falcon
日誌管理工具:ELK
持續整合工具:Jenkins
協作工具:confluence
緩衝:redis
訊息中介軟體:kafka、rocketmq
web伺服器:tomcat、nginx
容器引擎:docker
本系列文章的流程:
1、 首先介紹大家都已經熟悉的dubbo技術體系,結合dubbo搭建出一個完整的基於restful的技術架構
2、 結合dubbo的restful架構,加上基於oauth2的token驗證,並實現統一使用者中心的設計
3、 重點講解spring boot,然後結合之前的dubbo技術架構進行改造,實現spring boot和dubbo的相融合
4、 作為一個技術架構肯定涉及java效能調優,所以之後會根據圖示講解jvm裡的一系列東西,協助大家充分瞭解jvm
5、 講解訊息中介軟體redis,以及高可用叢集搭建,以及裡面的資料類型,分布式以及一致性問題的講解
6、 git、elk、jenkins、confluence、kafak、rocketmq工具安裝講解
7、 講解營運監控工具Open-Falcon,如何保證及時通知營運及開發人員伺服器的問題,保證伺服器以及服務正常運行
8、 講解docker系列課程,結合docker進行部署
架構講解設計的目標:
1、 低成本:任何公司存在的價值都是為了擷取商業利益。在可能的情況下,希望一切都是低成本的。
2、 高效能:網站效能是客觀的指標,可以具體體現到回應時間、輸送量等技術指標。系統的響應延遲,指系統完成某一功能需要使用的時間;系統的輸送量,指系統在某一時間可以處理的資料總量,通常可以用系統每秒處理的總的資料量來衡量;系統的並發能力,指系統可以同時完成某一功能的能力,通常也用 QPS(query per second)來衡量。
3、 高可用:系統的可用性(availability)指系統在面對各種異常時可以正確提供服務的能力。系統的可用性可
以用系統停服務的時間與正常服務的時間的比例來衡量,也可以用某功能的失敗次數與成功次數的比例來衡量。
4、 易伸縮:注重線性擴充,是否可以容易通過加入機器來處理不斷上升的使用者訪問壓力。系統的伸縮性(scalability)指分布式系統通過擴充叢集機器規模提高系統效能(吞吐、延遲、並發)、儲存容量、計算能力的特性。
5、 高安全:現在商業環境中,經常出現被網站被拖庫,使用者賬戶被盜等現象。網站的安全性不言而喻。