原電商設計框架

很久沒更新博客了. 如今慢慢更新下吧 . 簡單介紹下原來電商框架的基本架構圖.nginx

基本架構圖

image.png

說明

這裏簡單減小下以前電商框架使用的架構模式.web

DNS

域名解析. 這裏不用多少redis

CDN

靜態資源,好比商品的圖片能夠緩存到CDN裏. 減輕服務器壓力.
還支持用戶就近原則.用戶能夠就近去cdn裏去緩存信息後端

keepalived+lvs

主要三個能力緩存

  • Keepalived 提供vip能力以及lvs的容災能力.
  • lvs提供第四次的負載均衡能力

業務量小的時候.徹底不必使用.直接上nginx就行.服務器

可是這裏有個問題就是nginx成爲單點.一旦nginx掛了.整個後面就不可用了.不過如今都上雲了通常也沒人搭這個. 雲上通常都有vip和四層負載均衡的能力架構

web服務器

  • 解析url內容並按協議組裝請求包
  • 根據配置中心決定下發到哪臺後端服務

有些不用訪問到後臺數據的或者流量不到的直接web服務懟就好了,不用請求到後端.這裏說正常業務.負載均衡

這裏用的是go版本的cgi. 接受用戶請求解析.而後按照規定的序列號請求包請求到後端服務框架

配置中心

每臺機器上有配置中心服務異步

  • 讀取db裏面服務對於的ip地址
  • 把信息存到內存中
  • 服務進程讀取內存中對於的服務地址

配置中心有些功能尚未其實能夠加上. 後端每一個服務、每一個機器上報本身的負載狀況.而後配置中心根據這些上報的信息.來自動摘除和從新上架服務

web服務器調用後臺服務

路由策略

  • 隨機路由
  • uid路由
  • 權重路由

權重路由. 這裏還沒作. 其實能夠作. 根據後端服務的負載狀況給每一個服務一個加權值.負載高的就少分點請求.負載低的能夠多分點請求

後端服務

主要三個組件

  • netio
  • container
  • back_netio

具體就不介紹了. 我以前有4片博客介紹了.

redis

主要用來作商品詳情的緩存.減小對db的壓力

其次 秒殺的時候用了有序集合來作隊列

RabbitMQ

  • 異步解耦
  • 曉峯

咱們主要仍是異步解耦. 好比下單送積分. 支付成功後會丟一個消息到mq裏。而後有消費者拉去mq來作積分的加減.

而後有個對帳程序來補漏

相關文章
相關標籤/搜索