亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        高并發(fā)倉儲管理系統(tǒng)的設計與實現(xiàn)

        2019-09-23 07:00:00史熒中
        無錫職業(yè)技術學院學報 2019年4期
        關鍵詞:用戶信息系統(tǒng)

        許 敏 史熒中 張 悅

        (1.無錫職業(yè)技術學院 物聯(lián)網技術學院,江蘇 無錫 214121;2.無錫超正軟件有限公司,江蘇 無錫 214153)

        隨著互聯(lián)網技術的不斷發(fā)展,全球已進入網絡經濟時代,電子商務將互聯(lián)網技術運用到傳統(tǒng)的銷售行業(yè),實現(xiàn)了從生產、倉儲、運輸到銷售環(huán)節(jié)的重大變革。艾瑞數據顯示,2016年中國電子商務市場交易規(guī)模達20.2萬億元,增速為23.6%,其中,網絡購物增長23.9%,成為推動電子商務市場發(fā)展的重要力量之一[1]。繁榮的交易背后離不開大量用戶和網店管理者的積極參與,也離不開交易管理、倉儲管理、物流管理等系統(tǒng)的高效支持。

        當前電子商務與現(xiàn)代物流的蓬勃發(fā)展對倉儲管理系統(tǒng)提出了新的需求。早期的倉儲管理是簡單、靜態(tài)的對貨物儲存的管理,主要依靠人工記憶和手工錄入,不但費時費力,而且容易出錯。隨著信息技術的發(fā)展,手工記賬逐漸轉變成電子記賬,通過信息化手段對倉儲管理中的入庫、出庫、庫位、庫存等全方位的記錄與分析,解決了倉儲管理中賬目不清晰的問題[2-4]。RFID技術及人工智能的發(fā)展又推動倉儲管理向自動化、智能化發(fā)展[5-10]。現(xiàn)階段電子商務的發(fā)展又對倉儲管理提出新的要求,鑒于電商企業(yè)經常會做一些公開的促銷活動的經營特點,銷售訂單在活動期間會呈幾何級數的增長,傳統(tǒng)的人工審核銷售單或手工添加庫存信息已經不能適應經營需求,需要開發(fā)新的功能以盡量避免手工作業(yè),也避免高并發(fā)時用戶需要等待的情形。

        對于電商企業(yè)來講,高并發(fā)是一種“甜蜜的煩惱”,電商企業(yè)對此是既歡迎又擔心。大量用戶能在自己的平臺上蜂擁購物,顯然是電商企業(yè)追求的目標,但高并發(fā)會形成對服務器資源的持續(xù)性占有,當并發(fā)數超過一定臨界點后,會造成服務器阻塞,導致應用系統(tǒng)性能直線下降,可能影響用戶的購物體驗。對于注重用戶體驗感的電商企業(yè)來講,高并發(fā)的處理尤為關鍵,因而在技術架構的設計上要充分考慮到這些因素。

        1 系統(tǒng)需求分析

        圍繞倉儲管理的自動化、智能化,學者們開展了眾多研究,基于RFID技術的倉儲管理系統(tǒng)能進行托盤、包裝箱、貨物信息的自動收集[5-6];人工智能技術促進了倉庫的布局優(yōu)化、成本控制[7-10]。

        當前對倉儲管理研究與實踐的重點是與電子商務、現(xiàn)代物流的對接[11-12]。在倉儲管理與電子商務的對接中,客戶(買家)、網上店鋪(賣家)及倉儲管理系統(tǒng)是三個獨立又相關的部分??蛻敉ㄟ^網上店鋪下單,賣家將訂單轉發(fā)至倉儲管理系統(tǒng),倉儲管理系統(tǒng)對訂單進行審核,并將審核結果返回給賣家及客戶,如圖1所示。傳統(tǒng)的訂單處理是由人工審核的,在高并發(fā)時會出現(xiàn)較長的等待審核時間,存在著性能瓶頸。

        隨著電子商務的發(fā)展,倉儲管理的性能及安全性得到越來越多的重視,在淘寶、京東等大型購物網站上也得到了實踐應用。淘寶、京東的“雙十一”大促,要求倉儲管理系統(tǒng)實時性高、響應快、能解決高并發(fā)問題。企業(yè)通常會從兩方面來解決應用系統(tǒng)的高并發(fā)負載壓力,一是提升服務器的硬件配置水平,如購買性能更加優(yōu)良的服務器,更大內存、更快速的CPU,更多的CPU個數等;二是優(yōu)化應用系統(tǒng)的架構設計,提高服務器資源的利用率,降低用戶請求的資源占有率,從而提升系統(tǒng)的并發(fā)承載能力。從中小企業(yè)的角度來看,考慮到成本問題,大型購物網站所選用的拆分系統(tǒng)、災備切換、 分流(水平擴展)、限流(超預期流量)等技術方案很難直接應用于中小型電商網站。另外,如果把自己的業(yè)務托管到大型購物平臺,如京東、淘寶等,那么自己的客戶資源就會被暴露出來,無形中降低了競爭力。因而,如何在適度成本下為中小型電商企業(yè)設計并開發(fā)高效、安全的獨立倉儲管理系統(tǒng),有著現(xiàn)實的需求。

        針對這類需求,本研究設計并開發(fā)基于Redis的高并發(fā)倉儲管理系統(tǒng)(WareHouse Management System, WMS)。該系統(tǒng)實現(xiàn)了倉儲管理系統(tǒng)入庫、出庫、庫存管理等基本功能,并具有如下特性:

        (1) 該WMS系統(tǒng)獨立于已有ERP系統(tǒng),并通過接口進行對接;

        圖1 具有自動審核訂單功能的倉儲管理系統(tǒng)

        (2) 采用基于JWT的Token認證機制在用戶和服務器間傳遞信息,節(jié)約系統(tǒng)開銷;

        (3) 銷售出庫管理模塊采用Lumen框架的隊列和Redis緩存技術實現(xiàn)高并發(fā)控制。

        2 系統(tǒng)功能概述

        本系統(tǒng)設計倉儲管理系統(tǒng)在入庫操作中,自動給出倉庫空余庫位的信息,增加入庫操作的執(zhí)行效率;在出庫操作中,采用Lumen框架中的隊列和Redis高并發(fā)數據處理技術,實現(xiàn)出庫操作的高并發(fā)處理,解決人工記錄時間成本大、效率低、錯誤率高的問題,以及已有中小型WMS系統(tǒng)無法實現(xiàn)的高并發(fā)問題;此外,出庫、入庫的自動化操作,可以合理給出庫存調度的方案,使得庫存盤點、報表生成省時省力。綜合上面分析,最終所設計的系統(tǒng)分成基礎信息管理、權限管理、銷售出庫管理、入庫管理、庫存管理、接口管理及報表統(tǒng)計等七大模塊,功能模塊如圖2所示。

        圖2 倉儲管理系統(tǒng)功能模塊

        3 主要技術實現(xiàn)方法

        3.1 API接口與第三方平臺對接

        本系統(tǒng)有完善的API接口,可以通過接口和ERP、進銷存等其他第三方平臺實現(xiàn)對接,完成銷售單,采購單自動接收操作,避免訪問第三方平臺數據庫,增強了系統(tǒng)的通用性;同時避免手動添加單據,以減少用戶的工作量。平臺方傳遞到WMS系統(tǒng)的接口設置如表1所示。

        下面介紹本倉儲管理系統(tǒng)與已有第三方平臺的通信過程。系統(tǒng)需要接收的數據有兩個,分別是接收第三方平臺發(fā)送的銷售單,作為倉儲管理系統(tǒng)出庫操作的啟動事件;接收第三方平臺發(fā)送的采購單,作為倉儲管理系統(tǒng)入庫操作的啟動事件。以接收銷售單為例,介紹本系統(tǒng)與第三方系統(tǒng)對接的算法。

        表1 平臺方傳遞到WMS系統(tǒng)的參數說明

        首先,介紹兩個系統(tǒng)間數據傳遞格式及內容。

        本倉儲管理系統(tǒng)開放一個接口,供第三方平臺發(fā)送銷售單信息。兩個系統(tǒng)之間采用JSON格式傳遞數據。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,JSON數據格式簡單,讀寫方便;且JSON格式壓縮,占用資源少,便于網絡傳輸。

        經雙方協(xié)議,發(fā)送數據格式為報文、密文、客戶編號和時間戳。其中,報文是銷售單信息,包括銷售單號、銷售商品信息等信息;加密簽名是將商家編號、報文、密鑰按照協(xié)議的順序,進行MD5加密后的內容;客戶編號是倉儲管理系統(tǒng)已登記的客戶編號;時間戳是第三方平臺發(fā)送請求時的時間戳;密鑰由第三方平臺和倉儲管理系統(tǒng)共享。倉儲管理系統(tǒng)接收到JSON數據后,會對其進行驗證解析。接著,WMS接收第三方平臺所發(fā)送的JSON格式數據后,JSON數據進行解析,獲得客戶編號、請求時間戳、訂單信息和密文。為了驗證數據網絡傳輸的完整性,需要對獲得數據進行驗證。密文驗證的目的是驗證網絡傳輸數據時,有無丟失數據,WMS利用密鑰加密后的報文和加密簽名相同,則可保證網絡傳輸數據的完整性。最后,驗證報文信息。首先對獲得Http格式的字符串進行解碼,將信息轉換成字符串數組,獲取存放在報文中的各項訂單信息。接著,從數據庫中查詢報文解析出的訂單號,根據訂單實際情況,返回“審核中”“審核通過”“訂單重復發(fā)送”“訂單數據不正確”等信息給第三方平臺。

        3.2 基于JWT的Token認證

        系統(tǒng)采用基于JWT(JSON Web Token)的Token認證機制實現(xiàn)用戶和服務器之間的信息傳遞。一旦用戶完成了登陸,在接下來的每個請求中包含JWT,用來驗證用戶身份以及對路由、服務和資源的訪問權限進行驗證。

        傳統(tǒng)的用戶登錄認證中,通常采用session方式。用戶登錄成功,服務端會保存一個session,客戶端會把sessionId保存在cookie中,每次請求都會攜帶這個sessionId?!癱ookie+session”模式通常是保存在內存中,隨著用戶量的增多,開銷就會越大,不適用高并發(fā)場景。JWT認證只需服務端生成token,客戶端保存這個token,每次請求攜帶這個token,服務端認證解析即可。JWT的構成非常簡單,字節(jié)占用很小,便于傳輸,它不需要在服務端保存會話信息,易于應用的擴展。

        以登錄功能為例,前端接收用戶輸入的賬戶和密碼,通過ajax post傳遞到后端指定的URL登錄接口,后端接收到數據后,訪問數據庫服務器,驗證賬戶密碼是否合法,若合法,返回token令牌到前端,之后的用戶操作都需要進行token認證,如圖3所示。

        圖3 基于JWT的Token認證

        3.3 具有高并發(fā)性能的出庫管理方案設計

        在傳統(tǒng)處理訂單模式中,ERP系統(tǒng)將訂單信息發(fā)送給倉儲管理系統(tǒng),倉儲管理系統(tǒng)讀取庫存,判斷庫存是否符合要求,增減庫存,然后修改訂單,完成上述一系列操作后才會返回訂單處理結果,如圖4所示。它的缺點是高并發(fā)狀態(tài)下,用戶等待系統(tǒng)處理時間過長。

        為了解決高并發(fā)問題,本系統(tǒng)的設計方案是:ERP推送訂單,倉儲管理系統(tǒng)審核訂單信息是否完整,如果訂單信息符合要求,則將訂單信息存入隊列池,同時通知ERP系統(tǒng)接單成功。這樣做的好處是可以及時對用戶操作做出響應,提高用戶的體驗感。接著系統(tǒng)使用Lumen框架下的隊列來依次處理訂單,完成判斷庫存,增減庫存,修改訂單一系列操作,如圖5所示。

        圖4 傳統(tǒng)的WMS出庫訂單處理模式

        圖5 本倉儲管理系統(tǒng)的出庫訂單處理模式

        雖然該設計可以及時對客戶訂單做出響應,但存入隊列池的訂單,還需進行判斷庫存等一系列操作,又需要依次從隊列池讀取訂單信息,頻繁讀寫數據庫操作會造成系統(tǒng)性能下降,所以將隊列放到Redis緩存中,加快訂單處理速度。在完成判斷庫存、增減庫存、修改訂單等一系列操作后,倉儲管理系統(tǒng)會異步通知ERP系統(tǒng)訂單的處理結果。

        3.3.1高并發(fā)性能的出庫管理實現(xiàn)流程 第一步,ERP系統(tǒng)向倉儲管理系統(tǒng)發(fā)送訂單。第二步,WMS系統(tǒng)接收到訂單,解析出訂單信息進入隊列,存儲在MySQL的jobs表中,如圖6所示,同時系統(tǒng)給第三方平臺發(fā)送“待審核”消息,表示已經收到訂單。接著按隊列中的順序逐一讀取jobs表中的訂單信息,完成各個訂單的審核流程。第三步,審核隊列中的訂單。在與第三方對接模塊驗證銷售單格式合法性后,就將訂單信息推送到系統(tǒng)隊列中。隊列先判斷當前訂單的貨物數量是否足夠,若足夠就鎖定庫存數量、更新庫存信息。第四步,訂單處理后,異步返回客戶“等待關聯(lián)發(fā)貨單”。

        圖6 隊列池中的訂單信息

        3.3.2Redis緩存技術實現(xiàn)出庫操作 需指出的是,將訂單信息存入jobs表進行隊列排隊,訂單審核時,又要從jobs表中讀取銷售單信息,在大批量訂單高并發(fā)時,頻繁地寫入和讀取數據表中數據,會導致系統(tǒng)性能降低。故本系統(tǒng)提出采用Redis技術提高系統(tǒng)的性能。

        Lumen框架支持當前流行的緩存后端,可以為各種不同的緩存系統(tǒng)提供統(tǒng)一的API,如Memcached和Redis。本系統(tǒng)選用Redis內存數據庫解決高并發(fā)問題。

        Redis的配置步驟

        (1) 安裝Redis

        (2) 通過Composer安裝predis/predis

        (3) 在wmsvendorlaravellumen-frameworkconfigdatabase.php文件中添加redis設置:

        'redis' => [

        'cluster' => false,

        'default' => [

        'host' => '127.0.0.1',

        'port' => 6379,

        'database' => 0,

        ]

        如果redis和web服務器不是同一臺機器,需要更改IP和相應端口。

        在Lumen框架中配置Redis緩存,Mysql數據庫中保存隊列信息的jobs表中的數據就會存儲在Redis內存數據庫中,對銷售單信息的寫入和讀取就在內存上進行,以保證高并發(fā)狀態(tài)下,系統(tǒng)的實時性和有效性。

        4 結語

        本研究所設計的系統(tǒng)具有三大特點:本系統(tǒng)實現(xiàn)了API接口開發(fā),只要按照接口文檔接收和發(fā)送數據,就可以和任意第三方平臺進行對接,從而有效降低開發(fā)成本。平臺具有較強的通用性,具有廣闊的應用前景。本系統(tǒng)采用基于JWT的Token認證機制實現(xiàn)用戶和服務器之間的信息傳遞。一旦用戶完成了登錄,服務端只需生成token,客戶端保存這個token,每次請求攜帶這個token,服務端認證解析即可。這種方式不需要在服務端保存會話信息,緩解服務器壓力,易于應用的擴展。本系統(tǒng)基于Lumen隊列和Redis緩存技術處理出庫訂單,系統(tǒng)在接到第三方銷售單驗證通過后,立即返回用戶“待審核”狀態(tài),并同將銷售單信息存入隊列等待處理,該策略將出庫隊列的寫入和讀取放在Redis內存數據庫中進行,減少了程序讀寫MySQL數據庫的次數,提高了運行速度。同時,使用隊列單線程處理銷售訂單,修改庫存信息,確保了數據的一致性。

        猜你喜歡
        用戶信息系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        關注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        如何獲取一億海外用戶
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        日本无码欧美一区精品久久 | 精品福利一区二区三区蜜桃| 黑森林福利视频导航| 亚洲AV色无码乱码在线观看| 亚洲无码激情视频在线观看| 在线国产丝袜自拍观看| 亚洲av无码国产精品色午夜字幕| 亚洲av无码一区二区二三区| 极品诱惑一区二区三区| 一区二区三区在线观看人妖| 麻豆md0077饥渴少妇| 国产在线精品一区二区三区不卡| 99久久亚洲国产高清观看| 黄片免费观看视频播放| 国产精品久久久久一区二区三区| 亚洲粉嫩高潮的18p| 老熟女一区二区免费| 国内精品国产三级国产| 中文字幕日本人妻久久久免费| 无码人妻丰满熟妇精品区| 99久久久精品国产性黑人| 亚洲伊人av天堂有码在线| 午夜福利一区二区三区在线观看| 成人免费va视频| 一区二区三区黄色一级片| 久久精品国产99国产精品澳门| 亚洲综合精品成人| 91免费国产高清在线| 精品在线观看一区二区视频| 午夜福利一区二区三区在线观看| 久久精品无码一区二区乱片子| 久久精品亚洲乱码伦伦中文| 日本xxxx色视频在线观看| 波多野结衣中文字幕久久| 久久婷婷国产综合精品| 亚洲国产精品婷婷久久| 中文字幕v亚洲日本| av一区二区三区亚洲| 蜜桃网站免费在线观看视频| 男人进去女人爽免费视频| 亚洲偷自拍另类图片二区|