分散式架構的實現

分散式架構的實現

2 人贊了文章

1、概述

在傳統的B/S 架構的系統里,技術架構往往是一個工程項目,各個邏輯分層都是該工程的業務邏輯模塊,但是有些網站,如電商系統或全國性服務平台,用戶群龐大,網站並發量高,且需求變化大,以及網站處於對安全的考慮,以上的邏輯分層在技術架構上的實現也會複雜的多。

那麼考慮採用分散式架構,將系統拆分成多個子系統。

分散式系統定義:

組件分布在網路計算機上

組件之間僅僅通過消息傳遞來通信並協調行動

2、整體框架

我們這個項目叫staro2,主要分為以下5個模塊:

(1)staro2-manager——後台管理系統

(2)staro2-portal——前台門戶系統

(3)staro2-rest——應用服務層

(4)移動端——Android、iOS、微信平台

(5)MySQL——資料庫

下面介紹各個模塊的功能與設計結構。

3、後台管理系統

傳統的工程結構:

傳統項目是一個項目,三層架構控制層、業務邏輯層和數據訪問層。

考慮後期的可拓展性與並行開發,本文採用分散式的開發方式,採用maven管理項目。

後台管理系統的項目結構設計如下:

  • staro2-parent(pom工程) – 管理依賴jar包的版本,全局,公司級別,所有項目進行依賴.
  • staro2-common(jar包) – 通用組件,工具類,為工程提供通用功能.
  • staro2-manager(pom工程) – 聚合工程。包括staro2-pojo(jar包) 、staro2-mapper(jar包) 、staro2-service(jar包) 、staro2-pojo(jar包) 、staro2-controller(war包)工程。
  • staro2-pojo(jar包) – 實體類,封裝簡單的java對象。
  • staro2-mapper(jar包) – 持久化層。數據訪問,本文採取mybatis框架。
  • staro2-service(jar包) – 業務邏輯層。
  • staro2-controller(war包) – 控制層和視圖層。Spring、SpringMVC。

4、前台門戶系統

staro2-portal前台門戶系統主要包括控制層和視圖層staro2-portal-controller和邏輯層staro2-portal-service。邏輯層調用應用服務層(staro2-rest)請求數據。

5、應用服務層

star-rest應用服務層對外提供rest形式的服務,供其他系統如web前端、android、iOS和微信公眾號調用。使用http協議傳遞json數據。主要分為三層:數據訪問層、業務邏輯層和控制層。

6、移動端

  • 移動端包括android系統和iOS系統。
  • android移動端採用MVP架構+RxJava+Retrofit。
  • iOS移動端採用MVVM(Model-View-ViewModel)編程模式架構。

7、MySQL

目前是單庫多表設計,隨著業務的增大,考慮分庫分表如下。

想了解可以私信我!

1 SpringBoot+ 高並發消息處理 EDM?項目 實戰

2 SpringBoot ELK?分散式 數據分析

3 Netty?高 並發 UTS?項目實戰

4 SpringCloud?微服務+NoSQL+ 負載均衡平台設計


推薦閱讀:

SpringBoot開發案例從0到1構建分散式秒殺系統
這麼多分散式能源技術,你了解幾個?
[OSDI 12] PoweGraph: 分散式圖並行計算框架 學習總結
負載均衡SLB新功能介紹
[RDMA] 高性能非同步的消息傳遞和RPC :Accelio

TAG:分散式存儲 | 分散式系統 | 微服務架構 |