日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

12306火车售票系统设计方案

發布時間:2023/12/15 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 12306火车售票系统设计方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

12306火車售票系統設計方案

簡介

本項目是嘗試實現12306的網上售票系統,盡量接近真實的12306系統。在上一篇文章中,我們分析了系統的概念設計與需求分析。下面我將通過給出分解視圖、依賴視圖、執行視圖、實現視圖、部署視圖和數據庫實現來描述項目的完整設計方案。

分解視圖

???項目采用微服務架構,對模塊進行垂直拆分并水平擴展,保證系統的高性能。

不同模塊可能放在不同的機器上,通過PRC調用
TicketServer為購票服務,負責接受前端的請求,生成訂單,然后進行處理
ReTicketServer為退票服務
StaticSearchServer是靜態搜索功能,檢索靜態數據,如站點等
UserServer是用戶相關的服務
CandidateServer是候補服務,通過輪詢訪問票池是否還有余票,或者是退票
DynamicSearchServer動態數據的查詢,負責處理經常變化的數據的查詢,例如余票的查詢
PayServer負責支付和退款服務
TicketPool票池,用來存儲和計算余票情況

依賴視圖

模塊之間通過RPC調用,不同服務放在不同機器上,訪問頻率較高的操作搭建集群。

依賴視圖

  分多個模塊,對幾個復雜的執行過程做時序圖。

支付

退票

購票

實現視圖

12306A/???????12306后端A小組

|------rpc???????grpc相關的接口和協議文件

|?? |------pay?? ??pay服務器的rpc代碼, 同理如果是user服務應該在該文件夾下建立user文件夾

|???? |------proto??.proto文件存放

|???? |------client??grpc客戶端, grpc服務再server中自己實現

|------server??????每個微服務項目

|?? |------candidate??候補服務器

|?? ?? |------controller??控制層,數據的接受的校驗

|?? ?? |------service??服務層,業務邏輯

|?? ?? |------model??模型層,與數據庫連接

|?? ?? |------redis??緩存連接

|?? ?? |------setting??配置服務

|?? ?? |------config??配置文件存放

|?? |------pay???? 支付服務器

|?? |------reticket???退票服務器

|?? |------search???搜索

|???? |------dynamic??動態搜索

|???? |------static??靜態搜索

|?? |------ticket????購票服務器

|?? |------user???? 用戶服務器

|------ticketPool???? 線程池服務,主要是對內提供服務

部署視圖

數據庫

?

技術選型說明

開發方法:
??主要采用面向接口的方式進行開發,盡量解耦合,模塊之間通過RPC調用,這樣能夠很好的保持軟件的可維護性和可擴展性。

保證軟件的安全性
采用JWT技術和gin框架自帶的validator對所用的數據進行驗證,拒絕非法數據,使用token拒絕過期服務。

性能要求
因為票是動態變化的,所以查詢與購票需要遍歷很多數據,我們盡量減少模塊之間的網絡通信時間,達到高性能的要求。redis是一個K-V內存數據庫,我們使用redis緩存最近的車票信息,減少對外存的訪問,而且將余票信息存在在內存中,這樣可以快速計算余票。

開發主要語言:Golang

開發環境:Windows10,MacOS

部署環境:Docker+Ubuntu

開發工具:Goland,VSCode

測試方案:wrk性能測試,配合前端進行黑盒測試,postman

總結

以上是生活随笔為你收集整理的12306火车售票系统设计方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。