999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

構(gòu)建羊城通記名卡交易實(shí)時(shí)推送系統(tǒng)

2020-07-04 20:28:28鄒大畢黃倚佳溫曉麗謝振東李靖凱
現(xiàn)代信息科技 2020年3期

鄒大畢 黃倚佳 溫曉麗 謝振東 李靖凱

摘? 要:隨著越來(lái)越多的羊城通記名卡用戶希望可以實(shí)時(shí)獲悉交易信息,并可以隨時(shí)查看過(guò)往的每一筆消費(fèi)記錄,作為自己的乘車憑據(jù)。因此,為了搭建羊城通記名卡交易實(shí)時(shí)推送系統(tǒng),提出基于RabbitMQ+Redis+MongoDB為核心的解決方案,該方案可以滿足交易數(shù)據(jù)的需求。當(dāng)用戶使用記名卡乘坐公交地鐵時(shí),用戶可以通過(guò)羊城通官方APP準(zhǔn)實(shí)時(shí)收到相應(yīng)的交易記錄信息。此外,該系統(tǒng)也支持用戶隨時(shí)隨地在查詢自己的歷史消費(fèi)記錄。此系統(tǒng)的搭建及相關(guān)服務(wù)的推出,進(jìn)一步提升了羊城通記名卡的服務(wù)水平,提高了用戶的滿意度。

關(guān)鍵詞:羊城通記名卡;RabbitMQ;Redis;MongoDB;羊城通官方APP

中圖分類號(hào):TP311.5 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)03-0017-03

Abstract:As more and more users of Yangchengtong registered card want to know the transaction information in real time,and can view every past consumption record at any time as their own riding credentials. Therefore,in order to build a real-time push system for Yangchengtong registered card transaction,a solution based on RabbitMQ + Redis + MongoDB is proposed,which can meet the needs of transaction data. When the user uses the registered card to take the subway,the user can receive the corresponding transaction record information in real time through the official APP of Yangchengtong. In addition,the system also supports users to query their historical consumption records anytime and anywhere. The establishment of this system and the introduction of related services further improve the service level of Yangchengtong registered card and improve the satisfaction of users.

Keywords:Yangchengtong named card;RabbitMQ;Redis;MongoDB;Yangchengtong APP

0? 引? 言

羊城通卡是廣州市的交通卡,其使用范圍覆蓋了公交、地鐵、水上巴士等全方位公共交通出行領(lǐng)域,其具有不記名、不掛失的特點(diǎn)。近年來(lái),鑒于掛失需求的不斷顯現(xiàn),羊城通卡推出與用戶的實(shí)名信息綁定的記名卡,此記名卡具有可掛失、可補(bǔ)辦、可注銷、余額可轉(zhuǎn)移的特點(diǎn),得到了廣大用戶的歡迎,其發(fā)行量和使用量也在迅速增加。

鑒于公交卡應(yīng)用場(chǎng)景的特殊性,其交易主要為脫機(jī)驗(yàn)證交易,用戶想要獲知實(shí)時(shí)交易記錄、實(shí)時(shí)余額以及歷史交易時(shí),需要利用安卓NFC手機(jī)貼卡查詢或者到自助機(jī)、人工客服點(diǎn)查詢,具有較多的限制,不易使用,用戶體驗(yàn)差。

隨著網(wǎng)絡(luò)環(huán)境、羊城通卡受理終端設(shè)備等相關(guān)基礎(chǔ)設(shè)施服務(wù)水平的提升,羊城通卡的脫機(jī)交易可以準(zhǔn)實(shí)時(shí)上傳到后端系統(tǒng)。基于此,鑒于羊城通記名卡與用戶信息進(jìn)行了綁定,可以較好地確認(rèn)卡與用戶的關(guān)聯(lián),為了提升用戶持卡服務(wù)體驗(yàn),本文基于高可靠并發(fā)架構(gòu)技術(shù)構(gòu)建了羊城通記名卡交易查詢與實(shí)時(shí)推送系統(tǒng)。用戶只需要下載羊城通官方APP并綁定自己的記名卡就能隨時(shí)隨地收到記名卡交易推送或查詢記名卡歷史交易記錄,極大地提高用戶的體驗(yàn)感和便利性。

1? 相關(guān)技術(shù)概述

近幾年,互聯(lián)網(wǎng)各個(gè)中間件技術(shù)發(fā)展速度非常快,其中,因?yàn)镽abbitMQ、Redis、MongoDB這三個(gè)中間件的功能和性能日益完善和穩(wěn)定,更是受到大量互聯(lián)網(wǎng)項(xiàng)目開發(fā)者的青睞。記名卡消費(fèi)記錄查詢和實(shí)時(shí)推送系統(tǒng)就是以這三個(gè)中間件為核心來(lái)搭建的。下面將逐一介紹這三個(gè)中間件的特點(diǎn)和大致原理。

1.1? RabbitMQ

RabbitMQ是消費(fèi)-生產(chǎn)者模型的一個(gè)典型的代表,消息生產(chǎn)者(producer)往消息隊(duì)列中不斷寫入消息,而另一端的消息消費(fèi)者(consumer)則可以讀取或者訂閱隊(duì)列中的消息,是一款基于AMQP協(xié)議可復(fù)用的企業(yè)消息系統(tǒng)。業(yè)務(wù)上,可以實(shí)現(xiàn)服務(wù)提供者和消費(fèi)者之間的數(shù)據(jù)解耦,提供高可用性的消息傳輸機(jī)制,在實(shí)際生產(chǎn)中應(yīng)用相當(dāng)廣泛。

在羊城通系統(tǒng)中,RabbitMQ存放的是記名卡交易記錄;producer包括刷卡終端和羊城通卡核心交易系統(tǒng),其中刷卡終端準(zhǔn)實(shí)時(shí)上送羊城通卡消費(fèi)記錄,核心交易系統(tǒng)則推送羊城通卡充值記錄等;consumer為本系統(tǒng)的交易數(shù)據(jù)處理及推送組件。

1.2? Redis

Redis是一個(gè)開源的,使用ANSI C語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。同時(shí)Redis也是一個(gè)Key-Value存儲(chǔ)系統(tǒng),更是一個(gè)高性能的Key-Value數(shù)據(jù)庫(kù)。最主要的是Redis還支持主從同步。

Redis核心對(duì)象RedisObject包含了數(shù)據(jù)結(jié)構(gòu)、編碼方式、指針、虛擬內(nèi)存等,如圖1所示。數(shù)據(jù)類型包括string、hash、list、set、sorted set;編碼方式包括raw、int、ht、zipmap、linkedlist、ziplist、intset。

1.3? MongoDB

MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),由C++編寫,旨在為Web應(yīng)用提供可擴(kuò)展、高性能的數(shù)據(jù)存儲(chǔ)解決方案。它是一個(gè)介于關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系型數(shù)據(jù)庫(kù)中功能最豐富、最像關(guān)系型數(shù)據(jù)庫(kù)的。在高負(fù)載情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器的性能。

MongoDB將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對(duì)組成。MongoDB文檔類似于JSON對(duì)象,字段值可以包含其他文檔、數(shù)據(jù)和文檔數(shù)組。

2? 記名卡交易實(shí)時(shí)推送系統(tǒng)

基于前述中間件,本文提出的記名卡交易實(shí)時(shí)推送系統(tǒng)的架構(gòu)如圖2所示。

如圖所示,系統(tǒng)主要組件及數(shù)據(jù)流程是:

(1)刷卡終端機(jī),負(fù)責(zé)準(zhǔn)實(shí)時(shí)將羊城通卡交易記錄上傳到后端系統(tǒng);

(2)記名卡系統(tǒng)集群,負(fù)責(zé)接收終端交易記錄,并作為producer將記錄傳送給RabbitMQ消息服務(wù)系統(tǒng);

(3)RabbitMQ集群,消息隊(duì)列服務(wù)集群系統(tǒng);

(4)數(shù)據(jù)接收服務(wù)器集群,作為consumer將RabbitMQ中的消息提取出來(lái);

(5)Redis服務(wù)器集群,是一個(gè)緩存服務(wù)系統(tǒng),用于交易記錄的緩存;

(6)數(shù)據(jù)主動(dòng)獲取服務(wù)器集群,負(fù)責(zé)交易數(shù)據(jù)的主動(dòng)獲取和處理服務(wù),它從緩存中獲取數(shù)據(jù)并存入MongoDB,同時(shí)將實(shí)時(shí)記錄同步到推送服務(wù)器;

(7)MongoDB集群,負(fù)責(zé)交易記錄的持久化存儲(chǔ);

(8)推送服務(wù)器,負(fù)責(zé)將實(shí)施交易記錄推送到APP前端系統(tǒng);

(9)羊城通APP,與用戶實(shí)現(xiàn)交互的前端應(yīng)用服務(wù)系統(tǒng),支持實(shí)時(shí)交易記錄的接收與展示,支持歷史交易記錄查詢等。

3? 記名卡交易實(shí)時(shí)推送系統(tǒng)分析

3.1? 海量交易數(shù)據(jù)上送處理

由于記名卡用戶的基數(shù)大且日漸增加,記名卡的交易數(shù)據(jù)量以及交易上送服務(wù)的QPS會(huì)非常大,而http協(xié)議的性能相對(duì)較差,因此本系統(tǒng)選擇使用的RabbitMQ消息集群系統(tǒng)作為傳輸輔助工具。

這種方法的好處是支持動(dòng)態(tài)橫向擴(kuò)容系統(tǒng),即隨著記名卡數(shù)據(jù)量的日益增加,當(dāng)達(dá)到性能瓶頸時(shí),可以通過(guò)增加RabbitMQ節(jié)點(diǎn)來(lái)支持性能提升。

3.2? 海量交易數(shù)據(jù)存儲(chǔ)和推送處理

羊城通記名卡交易數(shù)據(jù)到達(dá)羊城通APP的服務(wù)器之后,由于數(shù)據(jù)量大,若收到一條數(shù)據(jù)就馬上進(jìn)行入庫(kù)和推送操作,會(huì)非常消耗網(wǎng)絡(luò)性能。

因此,本系統(tǒng)設(shè)計(jì)時(shí),數(shù)據(jù)會(huì)先放入Redis集群服務(wù)器作為緩存,另外啟動(dòng)一個(gè)主動(dòng)獲取數(shù)據(jù)的服務(wù)定時(shí)批量從Redis服務(wù)集群提取交易數(shù)據(jù),并批量插入MongoDB數(shù)據(jù)庫(kù)和推送服務(wù)器,最終到達(dá)用戶。

當(dāng)用戶需要查詢歷史交易記錄的時(shí)候,只需要直接查詢MongoDB數(shù)據(jù)庫(kù)就可以完成這個(gè)操作,由于MongoDB橫向擴(kuò)展非常方便,所以不用擔(dān)心數(shù)據(jù)量日益巨大帶來(lái)的性能瓶頸。

4? 結(jié)? 論

隨著羊城通記名卡的普及率越來(lái)越高,提高用戶體驗(yàn)、讓記名卡服務(wù)更人性化,已經(jīng)成為一項(xiàng)迫在眉睫的工作。基于此需求背景,本文提出了基于RabbitMQ+Redis+MongoDB的記名卡記錄實(shí)時(shí)推送系統(tǒng),此系統(tǒng)可以有助于解決記名卡用戶消費(fèi)無(wú)感知和查詢歷史交易記錄成本高的問(wèn)題,提升用戶持卡服務(wù)滿意度。

目前該系統(tǒng)完成搭建,正處于友好試運(yùn)行階段,后續(xù)將對(duì)該系統(tǒng)進(jìn)行持續(xù)優(yōu)化完善工作。

參考文獻(xiàn):

[1] 黃健宏.Redis設(shè)計(jì)與實(shí)現(xiàn) [M].北京:機(jī)械工業(yè)出版社,2014.

[2] 陳德森,楊祖元.基于MongoDB的文本分類研究 [J].無(wú)線互聯(lián)科技,2017(5):96-98.

[3] 駱文亮.基于異步消息處理的RabbitMQ運(yùn)行原理探討 [J].數(shù)碼世界,2017(11):400.

作者簡(jiǎn)介:鄒大畢(1981.12-),男,漢族,廣東湛江人,系統(tǒng)架構(gòu)設(shè)計(jì)師,移動(dòng)互聯(lián)網(wǎng)發(fā)展部副部長(zhǎng),碩士,研究方向:互聯(lián)網(wǎng)軟件技術(shù)、網(wǎng)絡(luò)與信息安全技術(shù)。

主站蜘蛛池模板: 国产精品毛片一区| 67194在线午夜亚洲| 在线观看的黄网| 国产视频只有无码精品| 成人无码区免费视频网站蜜臀| 欧美亚洲一区二区三区导航| 无码内射在线| 免费国产无遮挡又黄又爽| 香蕉综合在线视频91| 天堂岛国av无码免费无禁网站 | 免费啪啪网址| 欧美有码在线| 久久久久亚洲AV成人网站软件| 国产成人精品亚洲77美色| 国产成人一级| 精品国产乱码久久久久久一区二区| 999国内精品久久免费视频| 97色婷婷成人综合在线观看| 国产网站免费看| 狠狠色丁香婷婷综合| 久久久久九九精品影院| 亚洲永久色| 精品一区二区无码av| 午夜视频免费试看| 色综合a怡红院怡红院首页| 欧美日本激情| 亚洲热线99精品视频| 538国产视频| 成人看片欧美一区二区| 伊人久久综在合线亚洲2019| av手机版在线播放| 国产精品一线天| 精品国产污污免费网站| 亚洲日韩国产精品综合在线观看| 国产丝袜啪啪| 亚洲网综合| 精品久久久久成人码免费动漫| 在线播放国产一区| 最新亚洲av女人的天堂| 国产精品99久久久久久董美香| 91久久国产热精品免费| 五月激情婷婷综合| 97成人在线视频| 国产福利大秀91| 特级欧美视频aaaaaa| 欧美精品导航| 国产免费一级精品视频| 国产精品亚洲一区二区在线观看| 狠狠v日韩v欧美v| 国产精品亚洲综合久久小说| 成人福利在线观看| 国产一区二区精品福利 | 亚洲看片网| 重口调教一区二区视频| 国产色爱av资源综合区| 国产毛片基地| 国产九九精品视频| 夜夜爽免费视频| 亚洲一区第一页| 91青草视频| 欧美日韩综合网| 国产精品免费p区| 欧美特黄一免在线观看| 久久久久青草大香线综合精品| 国产在线91在线电影| 中文字幕 91| 午夜国产精品视频黄| 亚洲视频免费在线看| 久久综合AV免费观看| 欧美日本激情| 久久精品人妻中文视频| 成人欧美日韩| 国产在线观看成人91| 午夜精品福利影院| 五月丁香伊人啪啪手机免费观看| 国产成人精品一区二区三区| 国产精品无码一区二区桃花视频| 亚洲资源在线视频| 亚洲色图欧美| 国产精彩视频在线观看| 天天躁狠狠躁| 99久久精品无码专区免费|