• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于J2EE分布式架構(gòu)的高性能電商交易接入平臺(tái)研究與設(shè)計(jì)

    2014-08-08 03:40張煒
    移動(dòng)通信 2014年10期
    關(guān)鍵詞:線程前置消息

    【摘要】針對(duì)電商交易接入平臺(tái)的需求,結(jié)合平臺(tái)的高性能與高可靠性特點(diǎn),提出了采用J2EE分布式技術(shù)進(jìn)行系統(tǒng)實(shí)施的方案,對(duì)電商交易接入平臺(tái)的架構(gòu)進(jìn)行了設(shè)計(jì),并分析和討論關(guān)鍵技術(shù)點(diǎn)。最后還對(duì)系統(tǒng)進(jìn)行了性能壓力測試,以保證系統(tǒng)的安全穩(wěn)定運(yùn)行。

    【關(guān)鍵詞】J2EE分布式電子商務(wù)接入平臺(tái)高性能高可靠性

    中圖分類號(hào):TP311.1文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1006-1010(2014)-10-0090-07

    Research and Design of High-Performance E-Commerce Trade Access Platform Based on J2EE Distributed Architecture

    ZHANG Wei

    (China Mobile (Shenzhen) Co., Ltd., Shenzhen 518048, China)

    [Abstract] According to the requirements of e-commerce trade access platform and the high performance and high reliability characteristics of this platform, the solution for system implementation is proposed using J2EE distributed technology. The architecture for e-commerce trade access platform is designed and the key technical points are analyzed and discussed. Finally the performance stress tests of this system are carried out to ensure the operation of the system is stable and safe.

    [Key words]J2EEdistributede-commerceaccess platformhigh performance high reliability

    1 引言

    隨著我國互聯(lián)網(wǎng)的日益普及,通過網(wǎng)絡(luò)進(jìn)行購物、交易和支付等的電子商務(wù)模式發(fā)展迅速。電子商務(wù)憑借其低成本、高效率的優(yōu)勢,對(duì)傳統(tǒng)的實(shí)體經(jīng)營模式與渠道造成巨大沖擊,已成為我國轉(zhuǎn)變發(fā)展方式、優(yōu)化產(chǎn)業(yè)結(jié)構(gòu)的重要?jiǎng)恿?。在電子商?wù)高速發(fā)展的時(shí)機(jī)下,國內(nèi)外誕生了一批優(yōu)秀的電子商務(wù)公司,如eBay、Amazon、淘寶、京東等。同時(shí),隨著國內(nèi)移動(dòng)通信領(lǐng)域“三足鼎立”的局面形成,移動(dòng)通信業(yè)務(wù)的競爭也日趨激烈,為了更好地服務(wù)用戶,提升服務(wù)質(zhì)量,移動(dòng)運(yùn)營商不斷拓展新的消費(fèi)模式與經(jīng)營渠道,除了借助自身的網(wǎng)上營業(yè)廳作為電子渠道外,還與電商合作,在電商增開旗艦店也是一種有效補(bǔ)充,且市場前景廣闊。

    電商旗艦店將主營充值、卡號(hào)、終端和合約四大類產(chǎn)品。用戶在電商旗艦店完成產(chǎn)品選購、支付后,電商平臺(tái)負(fù)責(zé)將生成的訂單提交到運(yùn)營商側(cè),而運(yùn)營商側(cè)原有的CRM(Customer Relation Management,客戶關(guān)系管理系統(tǒng))無法直接處理電商平臺(tái)的訂單,同時(shí)運(yùn)營商支撐系統(tǒng)是以省為單位進(jìn)行建設(shè),存在電商對(duì)省公司CRM一對(duì)多的問題,此時(shí)即需要設(shè)計(jì)電商交易接入平臺(tái),包含對(duì)訂單進(jìn)行接收轉(zhuǎn)換、訂單處理和路由轉(zhuǎn)發(fā)等功能。接入平臺(tái)需要與電商以及省CRM系統(tǒng)交互。電商側(cè)接口即電商與接入平臺(tái)接口,通常包含充值接口、查詢接口和對(duì)賬接口。其中,充值、查詢接口為實(shí)時(shí)接口,采用HTTP(Hypertext Transfer Protocol,超文本傳輸協(xié)議)協(xié)議承載xml(可擴(kuò)展標(biāo)記語言)報(bào)文的方式進(jìn)行;對(duì)賬接口每天進(jìn)行一次,采用FTP(File Transfer Protocol,文件傳輸協(xié)議)文本文件的方式進(jìn)行。省側(cè)接口即接入平臺(tái)與省CRM間接口,是基于運(yùn)營商內(nèi)部網(wǎng)狀網(wǎng)接口協(xié)議實(shí)現(xiàn),其適時(shí)接口采用HTTP承載xml報(bào)文,文件接口采用FTP文本文件格式。電商側(cè)接口與省側(cè)接口所采用協(xié)議類似,但具體報(bào)文字段格式不同。對(duì)于適時(shí)接口,根據(jù)系統(tǒng)業(yè)務(wù)量評(píng)估,系統(tǒng)需支持的吞吐量為300TPS,即每秒可處理300條請(qǐng)求,平均事務(wù)響應(yīng)時(shí)間為10秒,最長事務(wù)響應(yīng)時(shí)間為60秒。

    本文將對(duì)電商交易接入平臺(tái)進(jìn)行研究分析,并介紹相關(guān)架構(gòu)設(shè)計(jì)與關(guān)鍵技術(shù)設(shè)計(jì)。

    2 電商交易接入平臺(tái)架構(gòu)

    2.1應(yīng)用架構(gòu)

    結(jié)合系統(tǒng)定位以及業(yè)務(wù)功能與非功能性需求特點(diǎn)進(jìn)行總體架構(gòu)設(shè)計(jì),劃分出整個(gè)平臺(tái)的邏輯應(yīng)用架構(gòu),如圖1所示:

    圖1電商交易接入平臺(tái)應(yīng)用架構(gòu)圖

    將電商交易接入平臺(tái)劃分為以下六個(gè)子系統(tǒng):

    (1)電商前置子系統(tǒng):負(fù)責(zé)與電商平臺(tái)進(jìn)行通信交互,接收與處理電商前置的充值、查詢等請(qǐng)求,實(shí)現(xiàn)協(xié)議轉(zhuǎn)換、驗(yàn)簽、加解密等功能,并負(fù)責(zé)將處理結(jié)果返回給電商平臺(tái)。

    (2)省前置子系統(tǒng):負(fù)責(zé)與省中心BOSS(Business Operations Support System,業(yè)務(wù)運(yùn)營支撐系統(tǒng))系統(tǒng)進(jìn)行通信交互,接收核心的處理請(qǐng)求,并把交易請(qǐng)求消息通過網(wǎng)狀網(wǎng)節(jié)點(diǎn)發(fā)送給省中心BOSS系統(tǒng)。

    (3)文件前置子系統(tǒng):負(fù)責(zé)接收與電商平臺(tái)以及省中心BOSS的對(duì)賬文件,并轉(zhuǎn)發(fā)給清結(jié)算子系統(tǒng)處理,文件前置子系統(tǒng)主要通過系統(tǒng)的定時(shí)任務(wù)獲取或上傳與外部交互的文件。

    (4)加解密子系統(tǒng):實(shí)現(xiàn)報(bào)文的驗(yàn)簽與加解密算法,并對(duì)前置子系統(tǒng)提供驗(yàn)簽與加解密訪問服務(wù)。

    (5)核心交易子系統(tǒng):主要負(fù)責(zé)整個(gè)平臺(tái)的數(shù)據(jù)校驗(yàn)、業(yè)務(wù)處理、交易查重、交易入庫等功能,與數(shù)據(jù)庫大量交互,是本平臺(tái)建設(shè)的關(guān)鍵子系統(tǒng)。

    (6)清結(jié)算子系統(tǒng):主要通過定時(shí)任務(wù)的調(diào)度對(duì)電商側(cè)以及省側(cè)的交易記錄進(jìn)行對(duì)賬,完成批量文件的處理,清結(jié)算子系統(tǒng)與文件前置間通過FTP文件的方式進(jìn)行交互。

    2.2技術(shù)架構(gòu)

    電商交易接入平臺(tái)技術(shù)架構(gòu)如圖2所示:

    圖2電商交易接入平臺(tái)技術(shù)架構(gòu)圖

    電商交易接入平臺(tái)采用J2EE(Java 2 Enterprise Edition,Java 2企業(yè)版)架構(gòu)進(jìn)行設(shè)計(jì),技術(shù)架構(gòu)邏輯上可劃分為:

    (1)業(yè)務(wù)接入層:負(fù)責(zé)外層通信交互,采用Apache作為HTTP服務(wù)器,Tomcat作為應(yīng)用服務(wù)器。

    (2)數(shù)據(jù)交換層:負(fù)責(zé)接入層與處理層的數(shù)據(jù)交互,采用ActiveMQ作為JMS(Java Message Service,Java消息服務(wù))消息中間件。

    (3)業(yè)務(wù)處理層:負(fù)責(zé)關(guān)鍵的業(yè)務(wù)邏輯處理,采用Tomcat作為應(yīng)用服務(wù)器,部署J2EE應(yīng)用,業(yè)務(wù)邏輯采用Spring容器進(jìn)行管理,數(shù)據(jù)庫訪問操作基于iBatis ORM(Object Relation Mapping,對(duì)象關(guān)系映射)框架,底層采用c3p0連接池。

    (4)數(shù)據(jù)服務(wù)層:負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),提供關(guān)系型數(shù)據(jù)的訪問服務(wù),采用Oracle數(shù)據(jù)庫。

    其中,業(yè)務(wù)接入層與業(yè)務(wù)處理層采用JMS消息中間件通信,即可實(shí)現(xiàn)交易的異步處理與分布式部署,在高并發(fā)與高性能環(huán)境中具備良好的擴(kuò)展性。

    endprint

    2.3部署架構(gòu)

    電商交易接入平臺(tái)部署架構(gòu)如圖3所示。

    總體劃分為接口域和核心域兩個(gè)域。接口域部署三個(gè)前置子系統(tǒng),負(fù)責(zé)與外部接口交互,位于防火墻外;核心域部署消息中間件、核心應(yīng)用、清結(jié)算應(yīng)用、加解密應(yīng)用以及數(shù)據(jù)庫,是整個(gè)平臺(tái)的處理中心,位于防火墻內(nèi),安全級(jí)別較高。

    除核心應(yīng)用以及數(shù)據(jù)庫為AIX小型機(jī)外,其他均為X86服務(wù)器,部署Linux操作系統(tǒng)。部署方案中大量采用集群以提升總體性能,同時(shí)借助于HA(High Availability,高可靠性)技術(shù)保證平臺(tái)的高可靠性,無單點(diǎn)故障。

    3 電商交易接入平臺(tái)關(guān)鍵技術(shù)

    3.1高性能集群設(shè)計(jì)

    為了滿足高性能與高并發(fā)需求,同時(shí)應(yīng)對(duì)互聯(lián)網(wǎng)上的突發(fā)用戶量,如“雙11”促銷、節(jié)假日促銷等,電商交易接入平臺(tái)需要具備良好的分布式集群能力,在性能不足的情況下能通過增加節(jié)點(diǎn)、橫向擴(kuò)展來擴(kuò)充處理能力。為此,電商交易接入平臺(tái)在各個(gè)層次設(shè)計(jì)了集群方案,具體如下:

    (1)電商前置負(fù)載均衡

    電商前置基于經(jīng)典的Apache+Tomcat集群部署方案,交易請(qǐng)求以HTTP協(xié)議接入,Apache負(fù)責(zé)在多個(gè)電商前置應(yīng)用節(jié)點(diǎn)上進(jìn)行負(fù)載均衡,隨著請(qǐng)求量增大,為了滿足高并發(fā)與高性能需求,可以及時(shí)增加電商前置處理節(jié)點(diǎn)。高峰時(shí)段后如果請(qǐng)求量下降,可以減少電商前置處理節(jié)點(diǎn),合理利用機(jī)器資源。

    (2)ActiveMQ隊(duì)列集群

    ActiveMQ支持Network of Brokers特性,此特性可實(shí)現(xiàn)多節(jié)點(diǎn)集群。Network of Brokers可以在多個(gè)Broker之間存儲(chǔ)轉(zhuǎn)發(fā)消息或者說進(jìn)行消息路由,并支持靜態(tài)、動(dòng)態(tài)發(fā)現(xiàn)兩種配置方式,從而實(shí)現(xiàn)一組ActiveMQ Broker節(jié)點(diǎn)組成集群,以提升單個(gè)Broker的處理性能。同時(shí),ActiveMQ支持HA部署,即Master Slave部署模式,其中Master Broker消息會(huì)被復(fù)制到Slave Broker,因此即使Master Broker遇到了像硬件故障之類的錯(cuò)誤,也可以立即切換到Slave Broker而不丟失任何消息。建議可以將Network of Brokers與Maser Slave兩種部署模式結(jié)合,同時(shí)保證高性能與高可靠性,具體如圖4所示:

    圖4ActiveMQ集群原理圖

    (3)核心處理集群

    核心應(yīng)用作為war包在Tomcat中進(jìn)行部署。核心應(yīng)用與外界交互一側(cè)為電商前置隊(duì)列,另一側(cè)為省前置隊(duì)列,均為異步消息的松耦合方式,可以方便地通過增加節(jié)點(diǎn)的方式擴(kuò)展處理能力。異步入庫目前作為核心的一部分,在集群節(jié)點(diǎn)中設(shè)立單獨(dú)的開關(guān),集群節(jié)點(diǎn)可以根據(jù)需要考慮是否打開異步入庫服務(wù),如果異步入庫壓力不大,建議只采用一個(gè)節(jié)點(diǎn)進(jìn)行異步入庫,以免對(duì)數(shù)據(jù)庫造成過大壓力,影響適時(shí)交易處理性能。

    (4)省前置處理集群

    省前置通過隊(duì)列與核心子系統(tǒng)進(jìn)行交互,JMS消息為異步松耦合訪問,可通過擴(kuò)展節(jié)點(diǎn)增加消息處理能力;同時(shí),省前置與省CRM通過HTTP方式訪問,此時(shí)省前置是HTTP Client,可方便地支持多節(jié)點(diǎn)集群部署。因此,省前置也可根據(jù)需要進(jìn)行多節(jié)點(diǎn)集群。

    (5)數(shù)據(jù)庫集群

    基于Oracle RAC(Real Application Clusters,實(shí)時(shí)應(yīng)用集群)技術(shù)構(gòu)建高可用數(shù)據(jù)庫集群,當(dāng)應(yīng)用規(guī)模需要擴(kuò)充時(shí),可以按需擴(kuò)展數(shù)據(jù)庫服務(wù)節(jié)點(diǎn),以保證系統(tǒng)的性能。Oracle RAC具有如下特點(diǎn):

    ◆支持多節(jié)點(diǎn)負(fù)載均衡;

    ◆高可用性:故障容錯(cuò)和無縫切換功能,將硬件和軟件錯(cuò)誤造成的影響最小化;

    ◆通過并行執(zhí)行技術(shù)提高事務(wù)響應(yīng)時(shí)間;

    ◆通過橫向擴(kuò)展提高每秒交易數(shù)和連接數(shù);

    ◆良好可擴(kuò)展性:可以方便添加/刪除節(jié)點(diǎn),擴(kuò)展硬件資源。

    3.2高可靠性設(shè)計(jì)

    電商交易接入平臺(tái)提供了完整的高可靠性方案,在部署方案中不會(huì)出現(xiàn)因單點(diǎn)故障而造成的服務(wù)中斷,具備非常高的可靠性,具體設(shè)計(jì)方案如下:

    (1)電商前置基于Apache集群,電商前置應(yīng)用節(jié)點(diǎn)已無單點(diǎn)故障問題,其中Apache服務(wù)器采用基于Linux系統(tǒng)的HA方案,實(shí)現(xiàn)Primary-Standby模式的高可靠性。

    (2)ActiveMQ采用Network of Brokers集群與Master-Slave主備結(jié)合的部署方案,其中Master-Slave基于共享文件的方案,集群中Master節(jié)點(diǎn)故障可以無縫切換到Slave節(jié)點(diǎn),沒有單點(diǎn)故障。

    (3)清結(jié)算子系統(tǒng)采用基于Linux系統(tǒng)的HA方案,實(shí)現(xiàn)Primary-Standby模式的高可靠性,支持主備故障切換,沒有單點(diǎn)故障。

    (4)核心子系統(tǒng)、省前置子系統(tǒng)都是基于隊(duì)列消息訪問的集群部署方式,集群中某一節(jié)點(diǎn)故障就將不再處理消息,消息會(huì)自動(dòng)由其他節(jié)點(diǎn)進(jìn)行處理,無單點(diǎn)故障問題。

    (5)數(shù)據(jù)庫基于Oracle RAC機(jī)制,支持故障容錯(cuò)和無縫切換,具備非常高的可靠性。

    3.3JMS隊(duì)列處理機(jī)制

    電商前置、省前置與核心系統(tǒng)之間通過隊(duì)列通信,總共設(shè)計(jì)了8條隊(duì)列,所有請(qǐng)求隊(duì)列和響應(yīng)隊(duì)列分開。Producer即消息發(fā)送方,Consumer即消息接收處理方,隊(duì)列發(fā)送者采用多線程方式以線程為單位建立發(fā)送連接,隊(duì)列接收者則需要接收消息并進(jìn)行業(yè)務(wù)邏輯處理,為了提升并發(fā)效率,接收消息后采用線程池進(jìn)行業(yè)務(wù)邏輯處理,一般情況下業(yè)務(wù)處理時(shí)間相對(duì)較長、接收消息時(shí)間很短,因此需要將消息接收連接數(shù)設(shè)置一個(gè)很小的值,如1或者2,而處理線程池可根據(jù)系統(tǒng)硬件情況設(shè)置一個(gè)較大的值,如50到100。

    經(jīng)過實(shí)際測試驗(yàn)證,即便是這樣配置,消息接收仍然很快,大約20毫秒/條,但消息處理相對(duì)較慢,大約800毫秒/條,會(huì)導(dǎo)致消息在很短時(shí)間都被從隊(duì)列中取走,但是大量消息積壓等待線程池處理,實(shí)際應(yīng)用過程中如果消息量非常大,可能會(huì)導(dǎo)致JVM(Java Virtual Machine,Java虛擬機(jī))堆內(nèi)存不夠用,引發(fā)Out of Memory異常;同時(shí),大量消息從隊(duì)列獲取到內(nèi)存,可靠性也得不到保障,一旦應(yīng)用出現(xiàn)故障,較多數(shù)據(jù)會(huì)丟失?;诖朔N情況,需要在消息接收時(shí)進(jìn)行流量控制,保證消息接收的量不要太大,在保證可靠性的同時(shí)盡量少的影響處理性能。

    消息接收與處理流量控制方法原理為:在消息消費(fèi)者處理中增加計(jì)數(shù)器,對(duì)當(dāng)前待處理消息進(jìn)行計(jì)數(shù),計(jì)數(shù)器閾值可設(shè)置,每取一個(gè)消息則計(jì)數(shù)器加一,線程池中線程每處理完一個(gè)消息則計(jì)數(shù)器減一,一旦計(jì)數(shù)器超過閾值就不再讀取消息,讀取線程休眠一個(gè)時(shí)間周期,當(dāng)下一個(gè)時(shí)間周期到來時(shí)再對(duì)計(jì)數(shù)器進(jìn)行檢查。為了保證高并發(fā)情況下,線程池中線程都不會(huì)因此空閑而沒有消息處理,需要設(shè)置計(jì)數(shù)器閾值大于線程池線程數(shù),建議計(jì)數(shù)器閾值為線程數(shù)的120%;同時(shí),在系統(tǒng)性能優(yōu)先的處理場景中,讀取線程休眠時(shí)間不宜過長,建議為5~10毫秒。

    3.4異步批量入庫

    電商接入平臺(tái)處理模式為:接收電商交易請(qǐng)求→完成處理與入庫→路由轉(zhuǎn)發(fā)請(qǐng)求到省CRM→由省CRM處理完再返回。由于處理路徑較長,為了降低總體流程處理時(shí)間,提升主流程處理性能,可將電商接入平臺(tái)核心處理中比較費(fèi)時(shí)的入庫操作剝離核心流程,采用異步入庫方式實(shí)現(xiàn),其設(shè)計(jì)原理為:核心子系統(tǒng)主處理流程中將需要入庫數(shù)據(jù)封裝為JMS消息放入異步入庫隊(duì)列,異步入庫處理線程負(fù)責(zé)接收待入庫消息數(shù)據(jù),并完成入庫動(dòng)作,每條消息中封裝單條數(shù)據(jù)。為了提升入庫效率,減少訪問數(shù)據(jù)庫次數(shù),異步入庫采用批量入庫而不是每條數(shù)據(jù)入一次庫。批量入庫采用時(shí)間觸發(fā)器與計(jì)數(shù)觸發(fā)器兩種控制方式,當(dāng)其中任意一個(gè)觸發(fā)器滿足條件時(shí)均可執(zhí)行批量入庫。如時(shí)間觸發(fā)配置500毫秒,即每500毫秒執(zhí)行一次入庫;計(jì)數(shù)觸發(fā)配置5 000,即每5 000條數(shù)據(jù)入庫一次。這兩個(gè)條件中任意一個(gè)滿足即執(zhí)行,既保證了低并發(fā)情況下數(shù)據(jù)獲得及時(shí)入庫,又可以保證高并發(fā)情況下不會(huì)過多數(shù)據(jù)積壓。

    endprint

    4 性能測試與調(diào)優(yōu)

    電商交易接入平臺(tái)性能需求:吞吐量為300TPS,平均事務(wù)響應(yīng)時(shí)間為10秒,最長事務(wù)響應(yīng)時(shí)間為60秒。需要對(duì)系統(tǒng)進(jìn)行性能測試與調(diào)優(yōu),以達(dá)到性能要求。

    4.1性能測試場景與案例

    為了充分測試出系統(tǒng)性能,結(jié)合實(shí)際應(yīng)用情況對(duì)測試場景與案例進(jìn)行了設(shè)計(jì),具體內(nèi)容如下:

    (1)場景一:省端0秒延遲

    案例1:輕負(fù)荷,5個(gè)Vuser(Virtual user,虛擬用戶)同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送2 000次消息;

    案例2:重負(fù)荷,100個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送1 000次消息;

    案例3:過負(fù)荷,500個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送200次消息。

    (2)場景二:省端2秒延遲

    案例1:輕負(fù)荷,5個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送2 000次消息;

    案例2:重負(fù)荷,100個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送1 000次消息;

    案例3:過負(fù)荷,500個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送200次消息。

    由于省前置調(diào)用省CRM采用HTTP同步方式,因此省CRM的處理效率對(duì)整個(gè)接入平臺(tái)的性能有非常大的影響。此次筆者主要設(shè)計(jì)了兩個(gè)典型的測試場景,即省CRM不延遲和延遲2秒的情況,以觀察此項(xiàng)指標(biāo)對(duì)性能的影響。這次測試采用LoadRunner進(jìn)行模擬壓力測試,每個(gè)場景設(shè)計(jì)了三個(gè)測試案例,分別為5Vuser、100Vuser、500Vuser,代表輕負(fù)荷、重負(fù)荷、過負(fù)荷的不同情形,以獲得在不同壓力情況下的系統(tǒng)性能數(shù)據(jù)。

    4.2性能測試調(diào)優(yōu)

    測試初期系統(tǒng)所有配置均采用默認(rèn)配置,執(zhí)行性能測試案例時(shí),結(jié)果非常不理想,如省端0秒延遲場景的吞吐量僅有50TPS,響應(yīng)時(shí)間都為6~7秒。經(jīng)過不斷調(diào)整配置與代碼,性能取得了較大幅度提升,此處對(duì)性能調(diào)優(yōu)過程中比較有代表性的經(jīng)驗(yàn)總結(jié)如下:

    (1)主機(jī)系統(tǒng)調(diào)優(yōu)

    主要對(duì)系統(tǒng)同時(shí)打開文件句柄數(shù)進(jìn)行調(diào)整,設(shè)置為65535,避免系統(tǒng)出現(xiàn)打開過多連接的異常。

    (2)JVM調(diào)優(yōu)

    對(duì)各個(gè)子系統(tǒng)的JVM參數(shù)進(jìn)行了調(diào)整,主要涉及到堆大小以及GC(Garbage Collection,垃圾回收)參數(shù)調(diào)整。電商前置、省前置堆大小設(shè)置為1G,核心子系統(tǒng)堆大小設(shè)置為3G,持久代大小統(tǒng)一設(shè)置64M即足夠。GC采用吞吐量優(yōu)先的并行收集器,即-XX:+UseParallelGC。

    (3)Tomcat調(diào)優(yōu)

    為了提升Tomcat處理效率,建議采用異步IO模式,需要修改HTTP協(xié)議為異步IO協(xié)議,即設(shè)置Connector的Protocol屬性為"org.apache.coyote.http11.Http11NioProtocol"。

    對(duì)Tomcat線程池的設(shè)置也是性能調(diào)優(yōu)的關(guān)鍵所在,線程太少則無法充分利用系統(tǒng)處理資源,線程太多也會(huì)增加系統(tǒng)調(diào)度的負(fù)擔(dān),所以需要合理設(shè)置線程池大小。在省端0秒延遲的場景中,電商前置設(shè)置Tomcat線程最大值為100,核心為100,省前置為70,即可獲得最優(yōu)的系統(tǒng)吞吐量350TPS,各臺(tái)主機(jī)系統(tǒng)CPU消耗也能達(dá)到85%以上,增加或減少線程配置都會(huì)降低系統(tǒng)吞吐量。

    (4)ActiveMQ調(diào)優(yōu)

    ActiveMQ自身JVM啟動(dòng)參數(shù)也要進(jìn)行調(diào)整,需設(shè)置堆內(nèi)存為合適大小,測試環(huán)境中設(shè)置堆大小為2G。ActiveMQ的持久化模式對(duì)其自身性能影響較大,經(jīng)過測試采用Kaha Persistence存儲(chǔ)方式會(huì)有較好的處理性能。Broker的目標(biāo)策略中設(shè)置隊(duì)列的memoryLimit需要足夠大,systemUsage節(jié)點(diǎn)中對(duì)內(nèi)存空間、存儲(chǔ)空間、臨時(shí)空間的設(shè)置也要足夠,否則可能會(huì)出現(xiàn)空間不足的問題。

    (5)連接池

    核心子系統(tǒng)所使用的連接池為c3p0,其默認(rèn)連接數(shù)非常少,需要調(diào)整,測試過程中筆者設(shè)置連接池最大值為100。同時(shí),對(duì)于c3p0中的兩個(gè)參數(shù)testConnectionOnCheckout和testConnectionOnCheckin都需要設(shè)置為false,否則連接池性能非常低。

    4.3性能測試結(jié)果與分析

    在性能調(diào)優(yōu)之后的環(huán)境中進(jìn)行了性能測試,本次性能測試采用LoadRunner進(jìn)行壓力測試,每個(gè)場景與案例的測試步驟如下:

    (1)清理數(shù)據(jù)庫與系統(tǒng)日志;

    (2)檢查與啟動(dòng)電商交易接入平臺(tái)各個(gè)子系統(tǒng);

    (3)設(shè)置與啟動(dòng)LoadRunner;

    (4)執(zhí)行性能壓力測試;

    (5)觀察與記錄壓測過程數(shù)據(jù);

    (6)分析測試數(shù)據(jù)。

    通過性能測試案例的執(zhí)行,并對(duì)性能測試數(shù)據(jù)進(jìn)行分析,獲得測試結(jié)果指標(biāo)數(shù)據(jù)如表1和表2所示:

    表1性能測試結(jié)果吞吐量場景 案例 平均TPS 最大TPS

    省端0秒延遲 輕負(fù)荷 128 293

    重負(fù)荷 352 560

    過負(fù)荷 271 589

    省端2秒延遲 輕負(fù)荷 128 335

    重負(fù)荷 265 593

    過負(fù)荷 204 441

    表2性能測試結(jié)果響應(yīng)時(shí)間

    場景 案例 平均響應(yīng)時(shí)間/秒 最大響應(yīng)時(shí)間/秒 最小響應(yīng)時(shí)間/秒

    省端0秒延遲 輕負(fù)荷 1.359 2.382 0.056

    重負(fù)荷 2.992 4.678 0.138

    過負(fù)荷 6.359 8.376 0.126

    省端2秒延遲 輕負(fù)荷 4.557 19.812 2.053

    重負(fù)荷 7.012 25.377 2.092

    過負(fù)荷 13.112 40.801 2.106

    綜合分析性能測試情況與測試數(shù)據(jù),可以得出如下結(jié)論:

    (1)系統(tǒng)無延遲吞吐量可達(dá)350TPS,延遲2秒情況下可達(dá)260TPS,實(shí)際生產(chǎn)環(huán)境都是集群,硬件處理能力會(huì)提升一倍,同時(shí)由于網(wǎng)絡(luò)和系統(tǒng)處理等因素會(huì)造成省端處理延遲,采用延遲2秒260TPS作為參考,集群環(huán)境下應(yīng)該能滿足300TPS的需求。

    (2)目前測試的最優(yōu)TPS為重負(fù)荷壓力下產(chǎn)生,并發(fā)用戶數(shù)為100Vuser,隨著并發(fā)用戶量的增大,系統(tǒng)進(jìn)入過負(fù)荷,TPS值會(huì)有一定幅度的下降。

    (3)系統(tǒng)無延遲的響應(yīng)時(shí)間為2.9秒,延遲2秒情況下的響應(yīng)時(shí)間為7秒,能滿足平均響應(yīng)時(shí)間為10秒的要求。其中,延遲和不延遲的最長響應(yīng)時(shí)間也都在60秒以內(nèi),可滿足系統(tǒng)需求。

    (4)隨著系統(tǒng)并發(fā)壓力的增加,響應(yīng)時(shí)間明顯增加,特別是在2秒延遲情況下,過負(fù)荷比重負(fù)荷的平均響應(yīng)時(shí)間增加了約6秒,系統(tǒng)出現(xiàn)大量請(qǐng)求積壓,測試過程中觀察隊(duì)列也會(huì)出現(xiàn)明顯積壓。

    (5)由于受限于測試環(huán)境,實(shí)際生產(chǎn)中的集群方式?jīng)]有進(jìn)行測試,因此實(shí)際生產(chǎn)中能達(dá)到的性能值有待最終驗(yàn)證。

    5 結(jié)束語

    本文介紹了電商交易接入平臺(tái)的建設(shè)背景與需求,并對(duì)其架構(gòu)和技術(shù)進(jìn)行了研究與設(shè)計(jì),在設(shè)計(jì)中筆者除了考慮電商接入平臺(tái)的業(yè)務(wù)功能外,還重點(diǎn)針對(duì)高性能、高可靠性等非功能需求進(jìn)行了研究設(shè)計(jì)。基于這些需求,引入了一套基于J2EE的分布式架構(gòu)并進(jìn)行系統(tǒng)設(shè)計(jì)。由于篇幅有限,本文僅對(duì)關(guān)鍵技術(shù)進(jìn)行了描述,實(shí)施層面的一些技術(shù)細(xì)節(jié)并沒有詳細(xì)說明。

    對(duì)于一個(gè)新建的系統(tǒng),除了良好的架構(gòu)設(shè)計(jì)外,不斷進(jìn)行系統(tǒng)優(yōu)化也非常重要。在系統(tǒng)運(yùn)行與維護(hù)過程中會(huì)逐漸發(fā)現(xiàn)一些亟待優(yōu)化和改善的地方,例如:系統(tǒng)橫向擴(kuò)展能力存在不足,主要表現(xiàn)為Oracle數(shù)據(jù)庫以及ActiveMQ的擴(kuò)展能力上;系統(tǒng)對(duì)于消息處理異常、重發(fā)等機(jī)制上的考慮不足,一些異常情況需要運(yùn)維人員手工處理;系統(tǒng)處理流程較長,某一環(huán)節(jié)的升級(jí)、宕機(jī)等應(yīng)急機(jī)制考慮不足。諸如此類問題,可在以后的系統(tǒng)維護(hù)和建設(shè)中逐步考慮與優(yōu)化。

    參考文獻(xiàn):

    [1] Len Bass, Paul Clements, Rick Kazman. 軟件架構(gòu)實(shí)踐[M]. 孫學(xué)濤,等譯. 北京: 清華大學(xué)出版社, 2002.

    [2] 楊傳明. 基于開源J2EE框架的電子商務(wù)實(shí)驗(yàn)平臺(tái)研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2009(10): 69-71.

    [3] 妙旭華,包理群,李穎. 基于J2EE多層架構(gòu)的重金屬污染監(jiān)管設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2013(4): 128-130.

    [4] 藍(lán)雯飛,陸際光. 基于J2EE技術(shù)的網(wǎng)上外卡交易系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2007(12): 212-214.

    [5] 溫昱. 軟件架構(gòu)設(shè)計(jì)[M]. 2版. 北京: 電子工業(yè)出版社, 2012.

    [6] 段念. 軟件性能測試過程詳解與案例剖析[M]. 2版. 北京: 清華大學(xué)出版社, 2012.

    [7] 林昊. 分布式Java應(yīng)用:基礎(chǔ)與實(shí)踐[M]. 北京: 電子工業(yè)出版社, 2010.★

    作者簡介

    張煒:高級(jí)工程師,學(xué)士,現(xiàn)任職于中國移動(dòng)(深圳)有限公司系統(tǒng)管理部,主要研究方向?yàn)镴2EE架構(gòu)、分布式架構(gòu)和大數(shù)據(jù)技術(shù)。

    endprint

    4 性能測試與調(diào)優(yōu)

    電商交易接入平臺(tái)性能需求:吞吐量為300TPS,平均事務(wù)響應(yīng)時(shí)間為10秒,最長事務(wù)響應(yīng)時(shí)間為60秒。需要對(duì)系統(tǒng)進(jìn)行性能測試與調(diào)優(yōu),以達(dá)到性能要求。

    4.1性能測試場景與案例

    為了充分測試出系統(tǒng)性能,結(jié)合實(shí)際應(yīng)用情況對(duì)測試場景與案例進(jìn)行了設(shè)計(jì),具體內(nèi)容如下:

    (1)場景一:省端0秒延遲

    案例1:輕負(fù)荷,5個(gè)Vuser(Virtual user,虛擬用戶)同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送2 000次消息;

    案例2:重負(fù)荷,100個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送1 000次消息;

    案例3:過負(fù)荷,500個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送200次消息。

    (2)場景二:省端2秒延遲

    案例1:輕負(fù)荷,5個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送2 000次消息;

    案例2:重負(fù)荷,100個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送1 000次消息;

    案例3:過負(fù)荷,500個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送200次消息。

    由于省前置調(diào)用省CRM采用HTTP同步方式,因此省CRM的處理效率對(duì)整個(gè)接入平臺(tái)的性能有非常大的影響。此次筆者主要設(shè)計(jì)了兩個(gè)典型的測試場景,即省CRM不延遲和延遲2秒的情況,以觀察此項(xiàng)指標(biāo)對(duì)性能的影響。這次測試采用LoadRunner進(jìn)行模擬壓力測試,每個(gè)場景設(shè)計(jì)了三個(gè)測試案例,分別為5Vuser、100Vuser、500Vuser,代表輕負(fù)荷、重負(fù)荷、過負(fù)荷的不同情形,以獲得在不同壓力情況下的系統(tǒng)性能數(shù)據(jù)。

    4.2性能測試調(diào)優(yōu)

    測試初期系統(tǒng)所有配置均采用默認(rèn)配置,執(zhí)行性能測試案例時(shí),結(jié)果非常不理想,如省端0秒延遲場景的吞吐量僅有50TPS,響應(yīng)時(shí)間都為6~7秒。經(jīng)過不斷調(diào)整配置與代碼,性能取得了較大幅度提升,此處對(duì)性能調(diào)優(yōu)過程中比較有代表性的經(jīng)驗(yàn)總結(jié)如下:

    (1)主機(jī)系統(tǒng)調(diào)優(yōu)

    主要對(duì)系統(tǒng)同時(shí)打開文件句柄數(shù)進(jìn)行調(diào)整,設(shè)置為65535,避免系統(tǒng)出現(xiàn)打開過多連接的異常。

    (2)JVM調(diào)優(yōu)

    對(duì)各個(gè)子系統(tǒng)的JVM參數(shù)進(jìn)行了調(diào)整,主要涉及到堆大小以及GC(Garbage Collection,垃圾回收)參數(shù)調(diào)整。電商前置、省前置堆大小設(shè)置為1G,核心子系統(tǒng)堆大小設(shè)置為3G,持久代大小統(tǒng)一設(shè)置64M即足夠。GC采用吞吐量優(yōu)先的并行收集器,即-XX:+UseParallelGC。

    (3)Tomcat調(diào)優(yōu)

    為了提升Tomcat處理效率,建議采用異步IO模式,需要修改HTTP協(xié)議為異步IO協(xié)議,即設(shè)置Connector的Protocol屬性為"org.apache.coyote.http11.Http11NioProtocol"。

    對(duì)Tomcat線程池的設(shè)置也是性能調(diào)優(yōu)的關(guān)鍵所在,線程太少則無法充分利用系統(tǒng)處理資源,線程太多也會(huì)增加系統(tǒng)調(diào)度的負(fù)擔(dān),所以需要合理設(shè)置線程池大小。在省端0秒延遲的場景中,電商前置設(shè)置Tomcat線程最大值為100,核心為100,省前置為70,即可獲得最優(yōu)的系統(tǒng)吞吐量350TPS,各臺(tái)主機(jī)系統(tǒng)CPU消耗也能達(dá)到85%以上,增加或減少線程配置都會(huì)降低系統(tǒng)吞吐量。

    (4)ActiveMQ調(diào)優(yōu)

    ActiveMQ自身JVM啟動(dòng)參數(shù)也要進(jìn)行調(diào)整,需設(shè)置堆內(nèi)存為合適大小,測試環(huán)境中設(shè)置堆大小為2G。ActiveMQ的持久化模式對(duì)其自身性能影響較大,經(jīng)過測試采用Kaha Persistence存儲(chǔ)方式會(huì)有較好的處理性能。Broker的目標(biāo)策略中設(shè)置隊(duì)列的memoryLimit需要足夠大,systemUsage節(jié)點(diǎn)中對(duì)內(nèi)存空間、存儲(chǔ)空間、臨時(shí)空間的設(shè)置也要足夠,否則可能會(huì)出現(xiàn)空間不足的問題。

    (5)連接池

    核心子系統(tǒng)所使用的連接池為c3p0,其默認(rèn)連接數(shù)非常少,需要調(diào)整,測試過程中筆者設(shè)置連接池最大值為100。同時(shí),對(duì)于c3p0中的兩個(gè)參數(shù)testConnectionOnCheckout和testConnectionOnCheckin都需要設(shè)置為false,否則連接池性能非常低。

    4.3性能測試結(jié)果與分析

    在性能調(diào)優(yōu)之后的環(huán)境中進(jìn)行了性能測試,本次性能測試采用LoadRunner進(jìn)行壓力測試,每個(gè)場景與案例的測試步驟如下:

    (1)清理數(shù)據(jù)庫與系統(tǒng)日志;

    (2)檢查與啟動(dòng)電商交易接入平臺(tái)各個(gè)子系統(tǒng);

    (3)設(shè)置與啟動(dòng)LoadRunner;

    (4)執(zhí)行性能壓力測試;

    (5)觀察與記錄壓測過程數(shù)據(jù);

    (6)分析測試數(shù)據(jù)。

    通過性能測試案例的執(zhí)行,并對(duì)性能測試數(shù)據(jù)進(jìn)行分析,獲得測試結(jié)果指標(biāo)數(shù)據(jù)如表1和表2所示:

    表1性能測試結(jié)果吞吐量場景 案例 平均TPS 最大TPS

    省端0秒延遲 輕負(fù)荷 128 293

    重負(fù)荷 352 560

    過負(fù)荷 271 589

    省端2秒延遲 輕負(fù)荷 128 335

    重負(fù)荷 265 593

    過負(fù)荷 204 441

    表2性能測試結(jié)果響應(yīng)時(shí)間

    場景 案例 平均響應(yīng)時(shí)間/秒 最大響應(yīng)時(shí)間/秒 最小響應(yīng)時(shí)間/秒

    省端0秒延遲 輕負(fù)荷 1.359 2.382 0.056

    重負(fù)荷 2.992 4.678 0.138

    過負(fù)荷 6.359 8.376 0.126

    省端2秒延遲 輕負(fù)荷 4.557 19.812 2.053

    重負(fù)荷 7.012 25.377 2.092

    過負(fù)荷 13.112 40.801 2.106

    綜合分析性能測試情況與測試數(shù)據(jù),可以得出如下結(jié)論:

    (1)系統(tǒng)無延遲吞吐量可達(dá)350TPS,延遲2秒情況下可達(dá)260TPS,實(shí)際生產(chǎn)環(huán)境都是集群,硬件處理能力會(huì)提升一倍,同時(shí)由于網(wǎng)絡(luò)和系統(tǒng)處理等因素會(huì)造成省端處理延遲,采用延遲2秒260TPS作為參考,集群環(huán)境下應(yīng)該能滿足300TPS的需求。

    (2)目前測試的最優(yōu)TPS為重負(fù)荷壓力下產(chǎn)生,并發(fā)用戶數(shù)為100Vuser,隨著并發(fā)用戶量的增大,系統(tǒng)進(jìn)入過負(fù)荷,TPS值會(huì)有一定幅度的下降。

    (3)系統(tǒng)無延遲的響應(yīng)時(shí)間為2.9秒,延遲2秒情況下的響應(yīng)時(shí)間為7秒,能滿足平均響應(yīng)時(shí)間為10秒的要求。其中,延遲和不延遲的最長響應(yīng)時(shí)間也都在60秒以內(nèi),可滿足系統(tǒng)需求。

    (4)隨著系統(tǒng)并發(fā)壓力的增加,響應(yīng)時(shí)間明顯增加,特別是在2秒延遲情況下,過負(fù)荷比重負(fù)荷的平均響應(yīng)時(shí)間增加了約6秒,系統(tǒng)出現(xiàn)大量請(qǐng)求積壓,測試過程中觀察隊(duì)列也會(huì)出現(xiàn)明顯積壓。

    (5)由于受限于測試環(huán)境,實(shí)際生產(chǎn)中的集群方式?jīng)]有進(jìn)行測試,因此實(shí)際生產(chǎn)中能達(dá)到的性能值有待最終驗(yàn)證。

    5 結(jié)束語

    本文介紹了電商交易接入平臺(tái)的建設(shè)背景與需求,并對(duì)其架構(gòu)和技術(shù)進(jìn)行了研究與設(shè)計(jì),在設(shè)計(jì)中筆者除了考慮電商接入平臺(tái)的業(yè)務(wù)功能外,還重點(diǎn)針對(duì)高性能、高可靠性等非功能需求進(jìn)行了研究設(shè)計(jì)?;谶@些需求,引入了一套基于J2EE的分布式架構(gòu)并進(jìn)行系統(tǒng)設(shè)計(jì)。由于篇幅有限,本文僅對(duì)關(guān)鍵技術(shù)進(jìn)行了描述,實(shí)施層面的一些技術(shù)細(xì)節(jié)并沒有詳細(xì)說明。

    對(duì)于一個(gè)新建的系統(tǒng),除了良好的架構(gòu)設(shè)計(jì)外,不斷進(jìn)行系統(tǒng)優(yōu)化也非常重要。在系統(tǒng)運(yùn)行與維護(hù)過程中會(huì)逐漸發(fā)現(xiàn)一些亟待優(yōu)化和改善的地方,例如:系統(tǒng)橫向擴(kuò)展能力存在不足,主要表現(xiàn)為Oracle數(shù)據(jù)庫以及ActiveMQ的擴(kuò)展能力上;系統(tǒng)對(duì)于消息處理異常、重發(fā)等機(jī)制上的考慮不足,一些異常情況需要運(yùn)維人員手工處理;系統(tǒng)處理流程較長,某一環(huán)節(jié)的升級(jí)、宕機(jī)等應(yīng)急機(jī)制考慮不足。諸如此類問題,可在以后的系統(tǒng)維護(hù)和建設(shè)中逐步考慮與優(yōu)化。

    參考文獻(xiàn):

    [1] Len Bass, Paul Clements, Rick Kazman. 軟件架構(gòu)實(shí)踐[M]. 孫學(xué)濤,等譯. 北京: 清華大學(xué)出版社, 2002.

    [2] 楊傳明. 基于開源J2EE框架的電子商務(wù)實(shí)驗(yàn)平臺(tái)研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2009(10): 69-71.

    [3] 妙旭華,包理群,李穎. 基于J2EE多層架構(gòu)的重金屬污染監(jiān)管設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2013(4): 128-130.

    [4] 藍(lán)雯飛,陸際光. 基于J2EE技術(shù)的網(wǎng)上外卡交易系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2007(12): 212-214.

    [5] 溫昱. 軟件架構(gòu)設(shè)計(jì)[M]. 2版. 北京: 電子工業(yè)出版社, 2012.

    [6] 段念. 軟件性能測試過程詳解與案例剖析[M]. 2版. 北京: 清華大學(xué)出版社, 2012.

    [7] 林昊. 分布式Java應(yīng)用:基礎(chǔ)與實(shí)踐[M]. 北京: 電子工業(yè)出版社, 2010.★

    作者簡介

    張煒:高級(jí)工程師,學(xué)士,現(xiàn)任職于中國移動(dòng)(深圳)有限公司系統(tǒng)管理部,主要研究方向?yàn)镴2EE架構(gòu)、分布式架構(gòu)和大數(shù)據(jù)技術(shù)。

    endprint

    4 性能測試與調(diào)優(yōu)

    電商交易接入平臺(tái)性能需求:吞吐量為300TPS,平均事務(wù)響應(yīng)時(shí)間為10秒,最長事務(wù)響應(yīng)時(shí)間為60秒。需要對(duì)系統(tǒng)進(jìn)行性能測試與調(diào)優(yōu),以達(dá)到性能要求。

    4.1性能測試場景與案例

    為了充分測試出系統(tǒng)性能,結(jié)合實(shí)際應(yīng)用情況對(duì)測試場景與案例進(jìn)行了設(shè)計(jì),具體內(nèi)容如下:

    (1)場景一:省端0秒延遲

    案例1:輕負(fù)荷,5個(gè)Vuser(Virtual user,虛擬用戶)同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送2 000次消息;

    案例2:重負(fù)荷,100個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送1 000次消息;

    案例3:過負(fù)荷,500個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送200次消息。

    (2)場景二:省端2秒延遲

    案例1:輕負(fù)荷,5個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送2 000次消息;

    案例2:重負(fù)荷,100個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送1 000次消息;

    案例3:過負(fù)荷,500個(gè)Vuser同時(shí)并發(fā)發(fā)送消息,每個(gè)Vuser迭代發(fā)送200次消息。

    由于省前置調(diào)用省CRM采用HTTP同步方式,因此省CRM的處理效率對(duì)整個(gè)接入平臺(tái)的性能有非常大的影響。此次筆者主要設(shè)計(jì)了兩個(gè)典型的測試場景,即省CRM不延遲和延遲2秒的情況,以觀察此項(xiàng)指標(biāo)對(duì)性能的影響。這次測試采用LoadRunner進(jìn)行模擬壓力測試,每個(gè)場景設(shè)計(jì)了三個(gè)測試案例,分別為5Vuser、100Vuser、500Vuser,代表輕負(fù)荷、重負(fù)荷、過負(fù)荷的不同情形,以獲得在不同壓力情況下的系統(tǒng)性能數(shù)據(jù)。

    4.2性能測試調(diào)優(yōu)

    測試初期系統(tǒng)所有配置均采用默認(rèn)配置,執(zhí)行性能測試案例時(shí),結(jié)果非常不理想,如省端0秒延遲場景的吞吐量僅有50TPS,響應(yīng)時(shí)間都為6~7秒。經(jīng)過不斷調(diào)整配置與代碼,性能取得了較大幅度提升,此處對(duì)性能調(diào)優(yōu)過程中比較有代表性的經(jīng)驗(yàn)總結(jié)如下:

    (1)主機(jī)系統(tǒng)調(diào)優(yōu)

    主要對(duì)系統(tǒng)同時(shí)打開文件句柄數(shù)進(jìn)行調(diào)整,設(shè)置為65535,避免系統(tǒng)出現(xiàn)打開過多連接的異常。

    (2)JVM調(diào)優(yōu)

    對(duì)各個(gè)子系統(tǒng)的JVM參數(shù)進(jìn)行了調(diào)整,主要涉及到堆大小以及GC(Garbage Collection,垃圾回收)參數(shù)調(diào)整。電商前置、省前置堆大小設(shè)置為1G,核心子系統(tǒng)堆大小設(shè)置為3G,持久代大小統(tǒng)一設(shè)置64M即足夠。GC采用吞吐量優(yōu)先的并行收集器,即-XX:+UseParallelGC。

    (3)Tomcat調(diào)優(yōu)

    為了提升Tomcat處理效率,建議采用異步IO模式,需要修改HTTP協(xié)議為異步IO協(xié)議,即設(shè)置Connector的Protocol屬性為"org.apache.coyote.http11.Http11NioProtocol"。

    對(duì)Tomcat線程池的設(shè)置也是性能調(diào)優(yōu)的關(guān)鍵所在,線程太少則無法充分利用系統(tǒng)處理資源,線程太多也會(huì)增加系統(tǒng)調(diào)度的負(fù)擔(dān),所以需要合理設(shè)置線程池大小。在省端0秒延遲的場景中,電商前置設(shè)置Tomcat線程最大值為100,核心為100,省前置為70,即可獲得最優(yōu)的系統(tǒng)吞吐量350TPS,各臺(tái)主機(jī)系統(tǒng)CPU消耗也能達(dá)到85%以上,增加或減少線程配置都會(huì)降低系統(tǒng)吞吐量。

    (4)ActiveMQ調(diào)優(yōu)

    ActiveMQ自身JVM啟動(dòng)參數(shù)也要進(jìn)行調(diào)整,需設(shè)置堆內(nèi)存為合適大小,測試環(huán)境中設(shè)置堆大小為2G。ActiveMQ的持久化模式對(duì)其自身性能影響較大,經(jīng)過測試采用Kaha Persistence存儲(chǔ)方式會(huì)有較好的處理性能。Broker的目標(biāo)策略中設(shè)置隊(duì)列的memoryLimit需要足夠大,systemUsage節(jié)點(diǎn)中對(duì)內(nèi)存空間、存儲(chǔ)空間、臨時(shí)空間的設(shè)置也要足夠,否則可能會(huì)出現(xiàn)空間不足的問題。

    (5)連接池

    核心子系統(tǒng)所使用的連接池為c3p0,其默認(rèn)連接數(shù)非常少,需要調(diào)整,測試過程中筆者設(shè)置連接池最大值為100。同時(shí),對(duì)于c3p0中的兩個(gè)參數(shù)testConnectionOnCheckout和testConnectionOnCheckin都需要設(shè)置為false,否則連接池性能非常低。

    4.3性能測試結(jié)果與分析

    在性能調(diào)優(yōu)之后的環(huán)境中進(jìn)行了性能測試,本次性能測試采用LoadRunner進(jìn)行壓力測試,每個(gè)場景與案例的測試步驟如下:

    (1)清理數(shù)據(jù)庫與系統(tǒng)日志;

    (2)檢查與啟動(dòng)電商交易接入平臺(tái)各個(gè)子系統(tǒng);

    (3)設(shè)置與啟動(dòng)LoadRunner;

    (4)執(zhí)行性能壓力測試;

    (5)觀察與記錄壓測過程數(shù)據(jù);

    (6)分析測試數(shù)據(jù)。

    通過性能測試案例的執(zhí)行,并對(duì)性能測試數(shù)據(jù)進(jìn)行分析,獲得測試結(jié)果指標(biāo)數(shù)據(jù)如表1和表2所示:

    表1性能測試結(jié)果吞吐量場景 案例 平均TPS 最大TPS

    省端0秒延遲 輕負(fù)荷 128 293

    重負(fù)荷 352 560

    過負(fù)荷 271 589

    省端2秒延遲 輕負(fù)荷 128 335

    重負(fù)荷 265 593

    過負(fù)荷 204 441

    表2性能測試結(jié)果響應(yīng)時(shí)間

    場景 案例 平均響應(yīng)時(shí)間/秒 最大響應(yīng)時(shí)間/秒 最小響應(yīng)時(shí)間/秒

    省端0秒延遲 輕負(fù)荷 1.359 2.382 0.056

    重負(fù)荷 2.992 4.678 0.138

    過負(fù)荷 6.359 8.376 0.126

    省端2秒延遲 輕負(fù)荷 4.557 19.812 2.053

    重負(fù)荷 7.012 25.377 2.092

    過負(fù)荷 13.112 40.801 2.106

    綜合分析性能測試情況與測試數(shù)據(jù),可以得出如下結(jié)論:

    (1)系統(tǒng)無延遲吞吐量可達(dá)350TPS,延遲2秒情況下可達(dá)260TPS,實(shí)際生產(chǎn)環(huán)境都是集群,硬件處理能力會(huì)提升一倍,同時(shí)由于網(wǎng)絡(luò)和系統(tǒng)處理等因素會(huì)造成省端處理延遲,采用延遲2秒260TPS作為參考,集群環(huán)境下應(yīng)該能滿足300TPS的需求。

    (2)目前測試的最優(yōu)TPS為重負(fù)荷壓力下產(chǎn)生,并發(fā)用戶數(shù)為100Vuser,隨著并發(fā)用戶量的增大,系統(tǒng)進(jìn)入過負(fù)荷,TPS值會(huì)有一定幅度的下降。

    (3)系統(tǒng)無延遲的響應(yīng)時(shí)間為2.9秒,延遲2秒情況下的響應(yīng)時(shí)間為7秒,能滿足平均響應(yīng)時(shí)間為10秒的要求。其中,延遲和不延遲的最長響應(yīng)時(shí)間也都在60秒以內(nèi),可滿足系統(tǒng)需求。

    (4)隨著系統(tǒng)并發(fā)壓力的增加,響應(yīng)時(shí)間明顯增加,特別是在2秒延遲情況下,過負(fù)荷比重負(fù)荷的平均響應(yīng)時(shí)間增加了約6秒,系統(tǒng)出現(xiàn)大量請(qǐng)求積壓,測試過程中觀察隊(duì)列也會(huì)出現(xiàn)明顯積壓。

    (5)由于受限于測試環(huán)境,實(shí)際生產(chǎn)中的集群方式?jīng)]有進(jìn)行測試,因此實(shí)際生產(chǎn)中能達(dá)到的性能值有待最終驗(yàn)證。

    5 結(jié)束語

    本文介紹了電商交易接入平臺(tái)的建設(shè)背景與需求,并對(duì)其架構(gòu)和技術(shù)進(jìn)行了研究與設(shè)計(jì),在設(shè)計(jì)中筆者除了考慮電商接入平臺(tái)的業(yè)務(wù)功能外,還重點(diǎn)針對(duì)高性能、高可靠性等非功能需求進(jìn)行了研究設(shè)計(jì)。基于這些需求,引入了一套基于J2EE的分布式架構(gòu)并進(jìn)行系統(tǒng)設(shè)計(jì)。由于篇幅有限,本文僅對(duì)關(guān)鍵技術(shù)進(jìn)行了描述,實(shí)施層面的一些技術(shù)細(xì)節(jié)并沒有詳細(xì)說明。

    對(duì)于一個(gè)新建的系統(tǒng),除了良好的架構(gòu)設(shè)計(jì)外,不斷進(jìn)行系統(tǒng)優(yōu)化也非常重要。在系統(tǒng)運(yùn)行與維護(hù)過程中會(huì)逐漸發(fā)現(xiàn)一些亟待優(yōu)化和改善的地方,例如:系統(tǒng)橫向擴(kuò)展能力存在不足,主要表現(xiàn)為Oracle數(shù)據(jù)庫以及ActiveMQ的擴(kuò)展能力上;系統(tǒng)對(duì)于消息處理異常、重發(fā)等機(jī)制上的考慮不足,一些異常情況需要運(yùn)維人員手工處理;系統(tǒng)處理流程較長,某一環(huán)節(jié)的升級(jí)、宕機(jī)等應(yīng)急機(jī)制考慮不足。諸如此類問題,可在以后的系統(tǒng)維護(hù)和建設(shè)中逐步考慮與優(yōu)化。

    參考文獻(xiàn):

    [1] Len Bass, Paul Clements, Rick Kazman. 軟件架構(gòu)實(shí)踐[M]. 孫學(xué)濤,等譯. 北京: 清華大學(xué)出版社, 2002.

    [2] 楊傳明. 基于開源J2EE框架的電子商務(wù)實(shí)驗(yàn)平臺(tái)研究[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2009(10): 69-71.

    [3] 妙旭華,包理群,李穎. 基于J2EE多層架構(gòu)的重金屬污染監(jiān)管設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2013(4): 128-130.

    [4] 藍(lán)雯飛,陸際光. 基于J2EE技術(shù)的網(wǎng)上外卡交易系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)應(yīng)用與軟件, 2007(12): 212-214.

    [5] 溫昱. 軟件架構(gòu)設(shè)計(jì)[M]. 2版. 北京: 電子工業(yè)出版社, 2012.

    [6] 段念. 軟件性能測試過程詳解與案例剖析[M]. 2版. 北京: 清華大學(xué)出版社, 2012.

    [7] 林昊. 分布式Java應(yīng)用:基礎(chǔ)與實(shí)踐[M]. 北京: 電子工業(yè)出版社, 2010.★

    作者簡介

    張煒:高級(jí)工程師,學(xué)士,現(xiàn)任職于中國移動(dòng)(深圳)有限公司系統(tǒng)管理部,主要研究方向?yàn)镴2EE架構(gòu)、分布式架構(gòu)和大數(shù)據(jù)技術(shù)。

    endprint

    猜你喜歡
    線程前置消息
    被診斷為前置胎盤,我該怎么辦
    前置性學(xué)習(xí)單:讓學(xué)習(xí)真實(shí)發(fā)生
    國企黨委前置研究的“四個(gè)界面”
    一張圖看5G消息
    被診斷為前置胎盤,我該怎么辦
    淺談linux多線程協(xié)作
    消息
    消息
    消息
    基于上下文定界的Fork/Join并行性的并發(fā)程序可達(dá)性分析*
    丰满人妻一区二区三区视频av| x7x7x7水蜜桃| 淫妇啪啪啪对白视频| 国产精品一区二区三区四区免费观看 | 久久久久国内视频| 国产在视频线在精品| 特级一级黄色大片| 午夜影院日韩av| 久久精品综合一区二区三区| 国产真实乱freesex| 真实男女啪啪啪动态图| 九九在线视频观看精品| 精品国产三级普通话版| 最近最新免费中文字幕在线| 国产69精品久久久久777片| 国产激情偷乱视频一区二区| 国产高潮美女av| 亚州av有码| 狠狠狠狠99中文字幕| xxxwww97欧美| 国产精品亚洲美女久久久| 大型黄色视频在线免费观看| 久久久久久大精品| aaaaa片日本免费| 99久久精品一区二区三区| 日本黄大片高清| 国产伦精品一区二区三区视频9| 日本免费a在线| 午夜激情欧美在线| 91九色精品人成在线观看| 欧美+亚洲+日韩+国产| 长腿黑丝高跟| 国产成人av教育| 国产精品电影一区二区三区| 91午夜精品亚洲一区二区三区 | 久久九九热精品免费| 国产精品永久免费网站| 国产精品亚洲一级av第二区| 男女床上黄色一级片免费看| 成人性生交大片免费视频hd| 真人做人爱边吃奶动态| 国产男靠女视频免费网站| 亚洲无线在线观看| 夜夜夜夜夜久久久久| 麻豆一二三区av精品| 一进一出抽搐gif免费好疼| 日本精品一区二区三区蜜桃| 国产成人aa在线观看| 国产探花在线观看一区二区| 久久精品人妻少妇| 51午夜福利影视在线观看| 首页视频小说图片口味搜索| 亚洲无线观看免费| 国产视频一区二区在线看| 国产高清激情床上av| 99国产精品一区二区蜜桃av| 天堂影院成人在线观看| 国产精品一区二区性色av| 99热只有精品国产| 别揉我奶头~嗯~啊~动态视频| 亚洲在线观看片| 免费无遮挡裸体视频| 一区福利在线观看| 禁无遮挡网站| 在线国产一区二区在线| 欧美在线黄色| 国产成人影院久久av| 国内久久婷婷六月综合欲色啪| 伦理电影大哥的女人| 男人舔女人下体高潮全视频| 老鸭窝网址在线观看| 欧美高清性xxxxhd video| 亚洲最大成人中文| 美女大奶头视频| av视频在线观看入口| 亚洲av不卡在线观看| 两性午夜刺激爽爽歪歪视频在线观看| 精品人妻视频免费看| 欧美日韩乱码在线| 如何舔出高潮| 国产亚洲精品久久久久久毛片| 国产主播在线观看一区二区| 亚洲最大成人手机在线| 小蜜桃在线观看免费完整版高清| 午夜福利在线在线| 久久久久久久精品吃奶| 国产高清三级在线| 亚洲精品亚洲一区二区| 免费观看人在逋| 欧美成人免费av一区二区三区| 亚洲最大成人中文| 国产高清激情床上av| 中国美女看黄片| 乱码一卡2卡4卡精品| 国产亚洲精品久久久久久毛片| 97超视频在线观看视频| 麻豆国产av国片精品| 免费观看精品视频网站| 免费看a级黄色片| 51午夜福利影视在线观看| 色av中文字幕| 国产午夜福利久久久久久| 国产欧美日韩精品亚洲av| 简卡轻食公司| 亚洲va日本ⅴa欧美va伊人久久| 欧美在线黄色| 日韩欧美精品免费久久 | 美女被艹到高潮喷水动态| 成人av一区二区三区在线看| 超碰av人人做人人爽久久| 亚洲精品456在线播放app | 在线观看一区二区三区| 日韩欧美精品免费久久 | 天美传媒精品一区二区| 亚洲avbb在线观看| 日本黄大片高清| 久久久久久国产a免费观看| 在线免费观看不下载黄p国产 | 国产三级在线视频| 久久久久国内视频| 9191精品国产免费久久| 国产精品av视频在线免费观看| 午夜福利在线观看吧| 国产aⅴ精品一区二区三区波| 亚洲第一区二区三区不卡| 国产一区二区激情短视频| 日本撒尿小便嘘嘘汇集6| 国产免费男女视频| 五月玫瑰六月丁香| 狂野欧美白嫩少妇大欣赏| 91狼人影院| 欧美在线黄色| av女优亚洲男人天堂| 在线国产一区二区在线| 亚洲精品成人久久久久久| 亚洲精华国产精华精| 国产色爽女视频免费观看| 成人av一区二区三区在线看| 少妇裸体淫交视频免费看高清| 欧美成人免费av一区二区三区| 又紧又爽又黄一区二区| 哪里可以看免费的av片| 国产v大片淫在线免费观看| 少妇高潮的动态图| 精品久久久久久久久av| 91麻豆av在线| 国产免费一级a男人的天堂| 欧美性猛交黑人性爽| 首页视频小说图片口味搜索| 国产精品久久久久久久电影| 丰满乱子伦码专区| 中文字幕人妻熟人妻熟丝袜美| 精品国产亚洲在线| 欧美一区二区国产精品久久精品| 亚洲国产精品久久男人天堂| 亚洲成人久久性| 色哟哟·www| 麻豆av噜噜一区二区三区| h日本视频在线播放| 波多野结衣高清作品| xxxwww97欧美| 亚洲中文字幕一区二区三区有码在线看| 一个人免费在线观看的高清视频| 一卡2卡三卡四卡精品乱码亚洲| 亚洲成人免费电影在线观看| 日韩欧美免费精品| 国产精品永久免费网站| av在线观看视频网站免费| 亚洲aⅴ乱码一区二区在线播放| 国产高清三级在线| www日本黄色视频网| 十八禁人妻一区二区| 国产欧美日韩精品一区二区| 男女做爰动态图高潮gif福利片| 毛片女人毛片| 伊人久久精品亚洲午夜| 女生性感内裤真人,穿戴方法视频| 夜夜夜夜夜久久久久| 在线观看66精品国产| 少妇的逼好多水| 欧美3d第一页| 国产高潮美女av| 最近中文字幕高清免费大全6 | 丁香六月欧美| 国产伦精品一区二区三区视频9| 精品一区二区三区视频在线| 欧美日韩瑟瑟在线播放| 麻豆国产97在线/欧美| 99久国产av精品| 午夜福利在线观看免费完整高清在 | 午夜福利成人在线免费观看| 在线观看av片永久免费下载| www.www免费av| 欧美最黄视频在线播放免费| 少妇被粗大猛烈的视频| 好男人在线观看高清免费视频| 国产精品99久久久久久久久| 欧美精品国产亚洲| 精品久久久久久成人av| 男人舔奶头视频| 免费搜索国产男女视频| 亚洲午夜理论影院| 五月玫瑰六月丁香| 国产单亲对白刺激| 中文字幕av成人在线电影| 亚洲国产精品成人综合色| 久久久精品大字幕| 国产精品av视频在线免费观看| 精品人妻熟女av久视频| 看十八女毛片水多多多| 偷拍熟女少妇极品色| 日本在线视频免费播放| 日韩欧美精品v在线| 日本一二三区视频观看| 免费无遮挡裸体视频| 国产一区二区亚洲精品在线观看| 特大巨黑吊av在线直播| 亚洲专区中文字幕在线| 国产精品久久视频播放| 成人永久免费在线观看视频| 有码 亚洲区| 如何舔出高潮| 午夜免费成人在线视频| 成人av在线播放网站| 国产精品99久久久久久久久| a级毛片免费高清观看在线播放| 欧美另类亚洲清纯唯美| 色在线成人网| bbb黄色大片| 亚洲专区国产一区二区| 51午夜福利影视在线观看| 欧美最黄视频在线播放免费| 宅男免费午夜| 99热这里只有精品一区| 色在线成人网| 精品无人区乱码1区二区| 在线观看66精品国产| 偷拍熟女少妇极品色| 亚洲在线观看片| www日本黄色视频网| 精品人妻熟女av久视频| 在线观看66精品国产| 国产精品精品国产色婷婷| 国产综合懂色| 男人舔女人下体高潮全视频| 性欧美人与动物交配| 国产免费一级a男人的天堂| 免费人成视频x8x8入口观看| 国产熟女xx| 国产91精品成人一区二区三区| 亚洲成a人片在线一区二区| 国产午夜福利久久久久久| 狠狠狠狠99中文字幕| 免费一级毛片在线播放高清视频| 色吧在线观看| 亚洲美女搞黄在线观看 | 国产精品乱码一区二三区的特点| 男人舔女人下体高潮全视频| 亚洲精品亚洲一区二区| 波多野结衣高清无吗| 中文字幕人成人乱码亚洲影| 日韩欧美精品免费久久 | 欧美日本视频| 欧美bdsm另类| 久9热在线精品视频| 精品国内亚洲2022精品成人| 全区人妻精品视频| 一级毛片久久久久久久久女| 国产色爽女视频免费观看| 婷婷精品国产亚洲av在线| 嫩草影院新地址| 久久久久精品国产欧美久久久| 亚洲经典国产精华液单 | 国产精品永久免费网站| 中文字幕人成人乱码亚洲影| 性欧美人与动物交配| 国内少妇人妻偷人精品xxx网站| 性插视频无遮挡在线免费观看| 国产亚洲精品综合一区在线观看| 少妇的逼好多水| 亚洲第一电影网av| 国产不卡一卡二| 午夜激情福利司机影院| 中文字幕av成人在线电影| 美女cb高潮喷水在线观看| 国产乱人伦免费视频| 免费看美女性在线毛片视频| 人人妻人人看人人澡| 亚洲,欧美精品.| 亚洲男人的天堂狠狠| 无遮挡黄片免费观看| 简卡轻食公司| 亚洲电影在线观看av| 听说在线观看完整版免费高清| 夜夜夜夜夜久久久久| 成人国产综合亚洲| 亚洲精品成人久久久久久| 丝袜美腿在线中文| 老女人水多毛片| 又粗又爽又猛毛片免费看| 一个人免费在线观看的高清视频| 三级毛片av免费| 在线观看舔阴道视频| 久久精品夜夜夜夜夜久久蜜豆| av女优亚洲男人天堂| 亚洲av中文字字幕乱码综合| avwww免费| 久久99热6这里只有精品| 精品人妻偷拍中文字幕| 禁无遮挡网站| 波野结衣二区三区在线| 精品久久久久久久末码| 国产精品亚洲美女久久久| 久久中文看片网| 国产精品,欧美在线| 在线观看一区二区三区| 日韩欧美免费精品| av黄色大香蕉| 日韩人妻高清精品专区| or卡值多少钱| 校园春色视频在线观看| 一区二区三区激情视频| 久久久精品欧美日韩精品| 高清在线国产一区| 国产亚洲精品久久久久久毛片| 亚洲av电影在线进入| 欧美黄色淫秽网站| 三级国产精品欧美在线观看| 免费高清视频大片| 欧美极品一区二区三区四区| 久久久久免费精品人妻一区二区| 国产精品一及| 免费在线观看亚洲国产| h日本视频在线播放| 黄色女人牲交| 蜜桃亚洲精品一区二区三区| 又粗又爽又猛毛片免费看| 中国美女看黄片| 赤兔流量卡办理| 久久亚洲精品不卡| 99精品久久久久人妻精品| 亚洲一区二区三区不卡视频| 日本 av在线| 国产精品美女特级片免费视频播放器| 日韩国内少妇激情av| 亚洲无线在线观看| 内地一区二区视频在线| 91久久精品电影网| 亚洲av熟女| 99热只有精品国产| 午夜福利视频1000在线观看| 少妇熟女aⅴ在线视频| 九九热线精品视视频播放| 精品人妻一区二区三区麻豆 | 精品一区二区三区av网在线观看| 级片在线观看| 国产精品久久电影中文字幕| 亚洲精品乱码久久久v下载方式| 性插视频无遮挡在线免费观看| 亚洲国产欧洲综合997久久,| 搡老岳熟女国产| 久久精品影院6| 国产高清有码在线观看视频| 51国产日韩欧美| 国产欧美日韩一区二区精品| 成人午夜高清在线视频| 给我免费播放毛片高清在线观看| 久久久精品欧美日韩精品| 18禁在线播放成人免费| 国产成人aa在线观看| 国产激情偷乱视频一区二区| 成年女人看的毛片在线观看| 国产精品一及| 毛片女人毛片| 极品教师在线视频| 日本一本二区三区精品| 国产伦精品一区二区三区四那| 一个人看视频在线观看www免费| 亚洲成人免费电影在线观看| 一进一出抽搐gif免费好疼| 日本与韩国留学比较| 国产一区二区亚洲精品在线观看| 欧美乱妇无乱码| 欧美黄色淫秽网站| 在线国产一区二区在线| 91午夜精品亚洲一区二区三区 | 亚洲欧美精品综合久久99| 精品久久久久久久久久久久久| 中文字幕人妻熟人妻熟丝袜美| 欧美日韩国产亚洲二区| 美女大奶头视频| 天美传媒精品一区二区| 女人被狂操c到高潮| 国产色爽女视频免费观看| 国产精品电影一区二区三区| 国产亚洲精品综合一区在线观看| 国产精品98久久久久久宅男小说| 亚洲成人精品中文字幕电影| 日韩人妻高清精品专区| 成年女人看的毛片在线观看| 精品久久久久久久末码| 国产黄a三级三级三级人| 久久久久久久久久黄片| 国产91精品成人一区二区三区| 久久人人精品亚洲av| 在线天堂最新版资源| 91在线观看av| 中文亚洲av片在线观看爽| 亚洲,欧美精品.| 精品欧美国产一区二区三| 久久久久久久久久成人| 美女高潮喷水抽搐中文字幕| 好男人在线观看高清免费视频| 午夜日韩欧美国产| 亚洲片人在线观看| 18禁黄网站禁片午夜丰满| 国产黄片美女视频| www.999成人在线观看| 久久久国产成人精品二区| 熟女电影av网| a级毛片免费高清观看在线播放| 亚洲av电影不卡..在线观看| 国产极品精品免费视频能看的| 中文字幕熟女人妻在线| 欧美另类亚洲清纯唯美| 1000部很黄的大片| 免费观看人在逋| 国产大屁股一区二区在线视频| av在线观看视频网站免费| 男女视频在线观看网站免费| 中文在线观看免费www的网站| 一区二区三区高清视频在线| 十八禁网站免费在线| 久9热在线精品视频| 色5月婷婷丁香| 色噜噜av男人的天堂激情| 午夜老司机福利剧场| 天堂av国产一区二区熟女人妻| 美女大奶头视频| 熟女人妻精品中文字幕| 伦理电影大哥的女人| 搡老岳熟女国产| 一级作爱视频免费观看| 亚洲,欧美,日韩| 欧美精品国产亚洲| 久久精品国产亚洲av天美| 国产高潮美女av| 99国产精品一区二区蜜桃av| 中文字幕久久专区| 日本与韩国留学比较| 最后的刺客免费高清国语| 国产在线男女| 日韩欧美一区二区三区在线观看| 99精品久久久久人妻精品| 中文字幕av在线有码专区| 一级a爱片免费观看的视频| 女人十人毛片免费观看3o分钟| 欧美一级a爱片免费观看看| 免费看a级黄色片| 搞女人的毛片| 五月伊人婷婷丁香| 亚洲五月天丁香| 中文字幕久久专区| 午夜影院日韩av| 欧美在线一区亚洲| 天堂影院成人在线观看| 1000部很黄的大片| 俄罗斯特黄特色一大片| 亚洲美女搞黄在线观看 | 免费看美女性在线毛片视频| 国内久久婷婷六月综合欲色啪| 国产三级中文精品| 色精品久久人妻99蜜桃| 在线播放无遮挡| www.999成人在线观看| 一卡2卡三卡四卡精品乱码亚洲| 成人av一区二区三区在线看| 日本免费a在线| 欧美潮喷喷水| 国产蜜桃级精品一区二区三区| 两人在一起打扑克的视频| 婷婷精品国产亚洲av| 变态另类丝袜制服| 亚洲精品乱码久久久v下载方式| 久久人人精品亚洲av| 欧美色视频一区免费| 好看av亚洲va欧美ⅴa在| 国产成人福利小说| www.熟女人妻精品国产| 亚洲真实伦在线观看| 国产欧美日韩一区二区精品| 国产老妇女一区| 午夜亚洲福利在线播放| 99热精品在线国产| 婷婷六月久久综合丁香| 久久久国产成人精品二区| 欧美日韩黄片免| 女人十人毛片免费观看3o分钟| 国产伦一二天堂av在线观看| 精品久久久久久久久av| 亚洲精品乱码久久久v下载方式| 欧美+亚洲+日韩+国产| 亚洲成av人片免费观看| 看十八女毛片水多多多| 欧美一区二区亚洲| 免费一级毛片在线播放高清视频| 亚洲av.av天堂| 婷婷丁香在线五月| 久久热精品热| 一本久久中文字幕| 九九在线视频观看精品| 91久久精品国产一区二区成人| 日日摸夜夜添夜夜添av毛片 | 精品午夜福利在线看| 国产v大片淫在线免费观看| ponron亚洲| 一区二区三区免费毛片| 日韩国内少妇激情av| 欧美日韩中文字幕国产精品一区二区三区| 欧美另类亚洲清纯唯美| 亚洲成人精品中文字幕电影| 亚洲五月婷婷丁香| 少妇高潮的动态图| 亚洲精品粉嫩美女一区| 校园春色视频在线观看| 国产精品影院久久| 日韩 亚洲 欧美在线| 亚洲成人免费电影在线观看| 久久午夜福利片| 国内精品一区二区在线观看| 亚洲av日韩精品久久久久久密| 啦啦啦观看免费观看视频高清| 亚洲,欧美精品.| 亚洲avbb在线观看| 久久热精品热| 中亚洲国语对白在线视频| 特级一级黄色大片| 欧美日韩中文字幕国产精品一区二区三区| 一本精品99久久精品77| 成人三级黄色视频| xxxwww97欧美| 又粗又爽又猛毛片免费看| 久久久国产成人免费| 精品国产亚洲在线| 色播亚洲综合网| 欧美乱色亚洲激情| 久久精品综合一区二区三区| 日韩欧美国产在线观看| 九九久久精品国产亚洲av麻豆| 成人亚洲精品av一区二区| 精华霜和精华液先用哪个| 久久99热6这里只有精品| 欧美+亚洲+日韩+国产| 18禁黄网站禁片午夜丰满| 中文字幕av成人在线电影| 国产成人av教育| 久久欧美精品欧美久久欧美| 99在线视频只有这里精品首页| 久久国产精品影院| 桃红色精品国产亚洲av| .国产精品久久| 搡老妇女老女人老熟妇| 好看av亚洲va欧美ⅴa在| 99在线人妻在线中文字幕| 别揉我奶头 嗯啊视频| 亚洲精品成人久久久久久| 日本黄色片子视频| 国产男靠女视频免费网站| xxxwww97欧美| 国产男靠女视频免费网站| 日韩 亚洲 欧美在线| 午夜福利高清视频| 最近在线观看免费完整版| 99视频精品全部免费 在线| 欧美黑人巨大hd| 一个人看视频在线观看www免费| 免费大片18禁| 亚洲va日本ⅴa欧美va伊人久久| 免费看美女性在线毛片视频| 搡老熟女国产l中国老女人| 丰满乱子伦码专区| 欧美高清成人免费视频www| 国产精品自产拍在线观看55亚洲| 中文字幕av在线有码专区| 亚洲性夜色夜夜综合| 18+在线观看网站| 国产精品自产拍在线观看55亚洲| 亚洲中文日韩欧美视频| 琪琪午夜伦伦电影理论片6080| 日日摸夜夜添夜夜添小说| 少妇的逼好多水| 可以在线观看毛片的网站| 国产三级黄色录像| 国产激情偷乱视频一区二区| 波多野结衣高清作品| 国产色爽女视频免费观看| 亚洲综合色惰| 亚洲天堂国产精品一区在线| 久久婷婷人人爽人人干人人爱| 亚洲美女搞黄在线观看 | 亚洲成av人片免费观看| 国产一区二区三区视频了| 99在线视频只有这里精品首页| ponron亚洲| 美女 人体艺术 gogo| 五月伊人婷婷丁香| 亚洲精品乱码久久久v下载方式| 草草在线视频免费看| www.熟女人妻精品国产| 我的女老师完整版在线观看| 国产高清三级在线| 亚洲熟妇中文字幕五十中出| 99热精品在线国产| 琪琪午夜伦伦电影理论片6080| 亚洲国产日韩欧美精品在线观看|