成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我設計的網站的分布式架構

開發 架構 分布式
互聯網的網站和大部分企業管理軟件一樣都是使用B/S架構模型,但是大型的公共網站B/S架構會更加復雜,對架構人員的要求更高,今天我想在自己博客里聊聊我設計的網站的B/S技術架構。

互聯網的網站和大部分企業管理軟件一樣都是使用B/S架構模型,但是大型的公共網站B/S架構會更加復雜,對架構人員的要求更高,今天我想在自己博客里聊聊我設計的網站的B/S技術架構。

不管是B/S架構的企業管理系統還是網站技術架構可以抽象為如下簡圖:

在傳統B/S架構的企業管理系統里,技術架構往往就是一個工程項目,各個邏輯分層都是該工程的業務邏輯模塊。但是作為提供公共服務的網站,由于用戶群比較龐大,網站并發量高,需求變化大,變更頻繁以及網站出于對安全的考慮,以上的邏輯分層在技術架構上的實現也就會復雜的多。本人前不久做一個網站,我設計的技術架構簡圖如下:

 

我把網站項目拆分為三個子項目:前端項目、服務端項目和memcache項目,前端項目包含頁面、靜態資源和控制層;服務端項目包含業務層和數據庫操作層;memcache項目緩存前端項目和服務端項目公用的數據。

在系統部署上,前端項目和服務端項目都采用分布式方式(我們的網站前端是4臺服務器,服務端是4臺服務器),用戶請求進入前先通過負載均衡設備進行請求分發,前端和服務端之間以及服務端和數據庫之間有防火墻保證系統的安全性,前端的集群和服務端集群分屬到不同網絡環境里,前端集群可以訪問外網,服務端集群和數據庫所在網絡不能直接訪問外網,但是前端網絡環境和服務端網絡環境之間可以進行通信。

服務端和客戶端用我們自定義的報文進行通訊,傳輸協議時http,由于本人所在的網站安全性要求比較高,用戶傳輸的請求協議使用https。

為了保證服務端和客戶端通訊的效率,客戶端和服務端通訊我們使用長連接(我們網站服務端語言選擇的是java,通訊層使用netty框架開發的),為了保證長連接,我們寫了一個心跳檢測服務,該服務在后臺線程里運行,每個5分鐘檢測一次心跳,當然檢測的間隔時間是可以配置的。此外,我們事先估計過網站的最大并發量,在網站啟動時候,我們構建了一個線程池(我們使用的服務器是8核處理器,每核最大線程數256,所以我們線程池里總共的最大線程總數數是8*256*4=8196),每個線程處理一個用戶的請求。

由于客戶端項目采取分布式部署,因此存在session共享的問題,我們網站的session共享沒有使用web容器自帶的session共享機制,而是我們自己研發了一套session機制,原理很簡單,具體是我們會對每個用戶會話生成一個唯一標示,我們的唯一標示是這么設計:當前用戶的 session的id值+隨機16位數字和字母組合+當前的納秒值,然后將該值哈希算出一個key,原有保存在session里的值保存在 memcache集群里,這些數據的key就是我們算出的用戶唯一標示。最終我們網站前端不在使用session對象,而是我們自己設計的session 機制,對此我們還封裝了一套自定義標簽,在頁面上操作我們自定義的session。

服務端也有類似的共享機制,但是有所不同,當客戶端請求服務端時候,請求會具體落到服務端的某一臺服務器,因為本網站有些請求處理時異步的,也就是說客戶某些請求不是立即返回給用戶,而是現將請求分發給服務端,此時客戶端會返回用戶一個相應標示,說明該請求已經被受理,正在處理中,而服務端的某個線程此時已經開始處理了該請求,客戶端按一定時間間隔發送請求給服務端,問詢請求是否處理完成,但是服務端也是分布式,請求時隨機發送,客戶端的問詢可能會分發到別的服務器,因此這樣的請求,我會在客戶端記錄下處理的服務端ip地址和線程id,在問詢的時候就會訪問指定好的服務器和線程,直到請求處理完畢,最后關閉詢問,將結果返回給用戶。

由于我們把一個網站項目拆分成了三個獨立項目,因此在項目管理和協調上增加了難度,所以我們引入maven框架對工程進行了管理和構建,同時構建一個common工程,專門負責服務端和前端公共程序的開發。

本框架將展示層和業務處理層徹底分開,因此客戶端工程師可以專心做客戶端,服務端工程師專心做服務端,大家只要學習如何封裝通訊協議就行,因此很利于項目組人員的橫向擴展。

以上就是本人為公司網站設計的技術架構,這里和大伙分享下,不知道好不好,希望各位大牛能給點建設性的意見。

原文鏈接:http://www.cnblogs.com/sharpxiajun/archive/2013/05/11/3072798.html

責任編輯:林師授 來源: 博客
相關推薦

2018-12-14 10:06:22

緩存分布式系統

2017-05-08 11:53:21

2010-01-15 10:15:34

分布式交換技術

2022-06-02 10:35:20

架構驅動

2023-10-08 10:49:16

搜索系統分布式系統

2023-05-29 14:07:00

Zuul網關系統

2019-10-10 09:16:34

Zookeeper架構分布式

2016-08-31 07:02:51

2018-10-29 12:51:35

分布式存儲元數據

2019-06-19 15:40:06

分布式鎖RedisJava

2022-04-07 17:13:09

緩存算法服務端

2019-09-05 09:02:45

消息系統緩存高可用

2018-01-23 15:55:23

分布式系統架構

2017-12-20 16:15:30

分布式系統架構

2018-04-03 09:27:42

分布式架構系統

2020-06-02 14:45:48

PostgreSQL架構分布式

2018-12-05 10:40:54

MySQL架構分布式

2022-02-22 10:29:24

分布式架構高可用

2023-09-12 22:58:51

分布式架構微服務

2018-10-16 14:26:22

分布式塊存儲引擎
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级视频黄色 | 91精品一区二区三区久久久久 | 亚洲天堂二区 | 亚洲最大av网站 | 日韩精品一区二区三区中文在线 | 99国内精品久久久久久久 | 久久久久久久91 | 久久综合九色综合欧美狠狠 | 欧美日韩一区二区三区四区五区 | 免费国产精品久久久久久 | 日韩在线中文 | 美女日皮网站 | 久久久久久久久久久高潮一区二区 | 欧美激情久久久久久 | 九九久久在线看 | 在线视频一区二区 | 亚洲精品国产区 | 四虎最新 | 久久久久国产精品一区三寸 | av网址在线 | 久久久久久网 | 色综网 | 久久99精品久久久久久国产越南 | 免费精品国产 | 蜜桃精品噜噜噜成人av | 亚洲综合中文字幕在线观看 | 亚洲一区二区中文字幕 | 亚洲成人www | 好姑娘影视在线观看高清 | 国产精品久久久久aaaa樱花 | 欧美国产精品一区二区三区 | 中文在线一区二区 | 欧美在线a | www.操.com| 久久久久国产一级毛片 | 亚洲精品v日韩精品 | 国产伦精品一区二区三区精品视频 | 午夜一级黄色片 | 日本欧美视频 | 婷婷色在线播放 | www.亚洲视频 |