網際網路專案架構之基於服務的分布式架構

2021-07-26 20:29:07 字數 1868 閱讀 2132

隨著網際網路電商專案的發展,越來越多的購物平台等都使用soa分布式來作為系統主要架構。為什麼有那麼多的電商專案都選擇soa作為系統架構呢?這肯定是存在一定原因的,因為電商行業的專案它大概存在以下特點:分布式、高併發、高可用、集群、負載均衡、海量資料、系統安全等一系列問題都需要解決,那麼我所了解的soa分布式架構它正好基本能很好的解決這些問題。

首先我給大家介紹以下電商專案中一些常見的運營模式:

今天我就以近期開發過的乙個電商專案為例,來分享一點我所理解的soa結構開發流程,希望能夠幫到大家,如有不妥,請指正。

一:首先說說專案總體架構的流程

1、該專案

採用soa分布式架構,在此基礎上我們又實現了面向服務的思想,中介軟體使用阿里巴巴出品的dubbo服務治理的核心框架來管理整個系統的服務,並且選擇zookeeper來作為註冊中心;

2、大家都知道,乙個電商專案是無法避免如何處理海量資源的問題,所以這裡由使用一款用c語言開發的開源分布式檔案系統fastdfs作為伺服器,專門用於儲存系統中所有的商品,廣告等資源,並且通過nginx反向伺服器來訪問伺服器上的資源;

3、接著說說商品搜尋功能這塊的架構,這裡我們將在linux系統上搭建了solr集群並實現了集群分片,安裝了ikanalyzer中文分詞器,定義業務域等一系列部署工作,搭建了專門的搜尋子系統,使用solr技術實現了商品搜尋功能;

4、商品詳情頁這塊,採用freemarker頁面靜態化技術,將實現了對所有商品能夠生成html詳情頁面,當使用者訪問**搜尋商品檢視商品詳情資料時,我們這裡是動態生成詳情頁,而不是提前設計好,這樣即使稍微慢點,也無所謂;

5、優化乙個電商專案是開發中必不可少的工作,這時經過分析,將採用非關係型資料庫redis作為主角搭建了redis集群,將**首頁的廣告位資料、頁尾資料和將每天訪問最多的定時廣告資料都儲存在redis集群中,用空間換時間來提公升**資料的展示速度;

6、網際網路專案不同於傳統專案,對**的登入使用者的安全性校驗有非常高的要求,這裡採用單點登入技術,來實現使用者的登入和註冊功能,這裡我沒有參與開發,但是對單點登入有一定的了解,下面進行分享。

二:業務這塊就沒啥可說的,都是電商購物平台,大家可能都有在類似的購物平台上購物的經驗,我們專案的業務主線也是購物流程,至於後台管理系統也就是對各個管理模組的維護;但是我們又新新增了**倒計時活動和商品秒殺活動,下面具體來說說這倆個新穎的功能吧。

1、**倒計時活動實現大概步驟(可以作為參考):

(1)、首先確定乙個基準時間,可以使用sql語句從資料庫獲取乙個時間select now();

(2)、活動開始的時間是固定的,使用活動開始的時間-基準時間可以計算出乙個秒為單位的時間值;

(3)、然後使用redis資料庫,採用string型別的資料型別來儲存乙個key(值為活動開始的時間),一定設定key的過期時間,使用命令"

expire key 10"假設有效時間為10秒;

(4)、

展示**頁面的時候,取出儲存的活動開始時間,使用js倒計時功能;

(5)、一旦儲存的key失效,則說明活動結束(說明一點,需要在活動的邏輯中,先判斷活動是否已經開始)。

2、**商品的秒殺活動實現的大概步驟(可以作為參考):

(1)、首先把秒殺活動的商品數量存放到redis中;

(2)、秒殺活動開始時,使用decr命令對商品數量減1,如果不是負數,則說明搶到禮物;

(3)、一旦返回的商品數量為0,則說明商品已經售完,活動結束。

三:專案部署總結

(專案架構詳解圖)

(網路拓撲圖)

部署總結後期更新!!!

網際網路架構 服務化

b 網際網路高可用架構為什麼要服務化?b 服務化之前高可用架構 在服務化之前,網際網路的高可用架構大致是這樣乙個架構 2 後端入口是高可用的nginx集群,用於做反向 3 中間核心是高可用的web server集群,研發工程師主要編碼工作就是在這一層 4 後端儲存是高可用的db集群,資料儲存在這一層...

網際網路架構

網際網路架構,主要追求的是高可用,可擴充套件 這兩個特性 在這裡做了一些個人的總結,算是給2014年的工作做個總結。推陳出新 一定要做的,死守積累會逐漸丟失人才,但凡技術公司都會不斷更新技術 kiss原則 keep it stupid優秀的 都會很簡單,簡單理解,簡單更改,能把複雜的事情做簡單是一種...

網際網路架構

使用者在同一時間內大量的訪問伺服器,tomcat伺服器併發能力為 200 250左右 jvm調優為1000 硬體條件 物理伺服器處理能力 網路頻寬 2.1 分布式計算 由多個執行緒,共同來完成某項特定的任務,拆合問題 2.2 分布式系統 distributed system 是建立在網路之上的軟體系...