系統可用率
多級緩存
動态分組切換
DB物理隔離
服務分組隔離
跨機房隔離
漏鬥模型
DB限流
系統一般可以分為前端應用系統和後端數據庫系統,前端應用系統實施分布式集群部署技術上是比較成熟的,後端數據庫系統實現異地多活技術難度很大,目前也隻有阿裡,京東這樣的公司才真正實現。因此,對于大多數應用,前端應用雙機房集群部署,後端數據庫系統采取成熟的主備從的模式,也就是單個機房作為寫入,備庫在另外機房,可以快速進行切換,讀庫雙機房部署,是優選的方案。對于這個架構方案,存在跨機房寫延長的問題,可以根據場景利用異步的方式進行解決,一般也是沒有問題的。對于系統來講,也有些特别,利用分揀中心的本地服務器和操作人員的設備,實現離線生産,進一步提高可用性。
大系統小做,服務拆分,是互聯網應用的特點,也符合敏捷交付的理念。對于傳統軟件,如Windows,Office等,都要經過一個漫長的需求,研發,測試,發布周期,在“唯快不破”的互聯網時代,這顯然是無法滿足業務要求的,即使最後上線,也可能因為周期太長而不再适用了。因此,對一個互聯網服務,一般會首先完成最核心的功能,快速進行上線,不斷進行叠代,後續再進行輔助功能跟進。對于核心功能,随着用戶數的增加,會不斷進行服務拆分,如何進行拆分,拆分到什麼樣的粒度,是不是微服務是解決問題的銀彈?這些都要根據實際的應用場景來評估,絕不是越細越好,而是要達到一個優雅的平衡。
并發控制,服務隔離。并發控制,現在已經成為互聯網服務基本要求,在應用程序端和數據庫端,也都有成熟的方案,如果忽略,可能造成災難性的後果。對于重要的服務,還要進行隔離,例如同一個服務,要提供給内部調用,公司級調用和公司外開放服務調用,開放服務調用者我們一般認為是不可靠的,甚至有可能是惡意的,如果不進行隔離,開放服務調用有可能使得服務資源占滿,對内也無法提供服務。從技術上,可以是硬件級隔離,全部隔離,也可以是前端應用的隔離。
灰度發布也是互聯網服務的一大利器,有了灰度發布,才使得快速叠代成為可能,并且,很多服務因為各種原因線下也是很難測試的,隻能在線上測試。如果沒有灰度發布,隻能全量發布,就存在較長測試周期問題,如果沒有重複勉強上線,就存在很大的系統崩潰的風險。按照用戶,區域進行灰度發布是比較常用的方法。
全方位監控報警,可以分為技術層面和業務層面,技術層面包括對CPU,内存,磁盤,網絡等的監控,業務層面,包括對處理積壓量,正常的業務量等。做到全方位監控,才有可能在影響用戶之前,提前解決問題,提升系統可用性。否則,等用戶發現問題,在很大的壓力下,技術團隊更難處理,導緻系統不可用時間加長。
核心服務,平滑降級。任何技術手段,都不可能保障100%可用,并且,即使能夠做到,其代價也是巨大,不經濟的,因此,對于核心服務來講,能夠平滑進行降級,提供基礎的服務,也是非常重要的。對于系統來講,就利用分揀中心本地服務器和操作人員的設備,研發了離線生産系統,來應對集中服務萬一不可用的情況。
大型互聯網服務,一般都微服務化了,這樣意味着一個用戶操作,都是由多個服務接口支持,如果按照傳統的同步接口設計,那麼,不僅面臨性能問題,而且,QPS也是無法滿足的,因此,需要将同步接口調用異步化。在2012年左右,eBay就提出所有系統調用異步化,後面,幾乎所有大型互聯網公司,都對自身系統進行了異步化改造,并且,取得了很好的效果,在和騰訊CTO Tony交流中,他就提出即使支付這種服務,也是有辦法進行異步化設計的。同步接口異步化,也是需要系統工具支持的。
數據一緻性
我們就能分為四個基本的場景:高實時性/高一緻性,高實時性/低一緻性,低實時性/高一緻性,低實時性/低一緻性。針對具體的業務,我們可以匹配到具體的數據場景,這樣,我們就能找到對應的解決方案
在對業務能首先是業務數據化,并且具有數據質量保障。系統的支撐下,實現了所有物流操作的線上化,也就是數據化,并且,對每個操作環節都是可以進行實時分析,這就奠定了很好的基礎。如果業務都是線下操作,或者系統無法準确及時收集數據,那麼,即時數據量夠大,缺乏關鍵數據和數據不準确,也會給大數據處理帶來很大的困難。第二基礎就是大數據處理技術,包括收集,傳輸,存儲,計算,展示等一系列技術。夠進行實時監控和準确評估後,也就是利用大數據對業務進行預測。預測一直是大數據應用的核心,也是最有價值的地方。對于物流行業,如果能夠提前進行業務量預測,那麼,對于資源調度等非常有意義,不僅能夠實現更好的時效,而且能夠避免浪費。舉一個的例子,就是單量預測,根據用戶下單量,倉儲生産能力,路由情況等,可以進行建模預測。
智慧物流,以大數據處理技術作為基礎,利用軟件系統把人和設備更好的結合起來,讓人和設備能夠發揮各自的優勢,達到系統最佳的狀态。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!