欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于Cgo的高性能證券行情接入系統(tǒng)和方法與流程

文檔序號(hào):11524333閱讀:678來(lái)源:國(guó)知局
一種基于Cgo的高性能證券行情接入系統(tǒng)和方法與流程

本發(fā)明涉及特別適用于特定功能的數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法,尤指一種基于cgo的高性能證券行情接入系統(tǒng)和方法。



背景技術(shù):

接入系統(tǒng)作為用戶(包括內(nèi)部用戶和外部用戶)與應(yīng)用服務(wù)器的隔離層,直接接收用戶的請(qǐng)求,并轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器。參見(jiàn)圖1,目前在接入系統(tǒng)中廣泛采用反向代理器(如:nginx)對(duì)應(yīng)用服務(wù)器進(jìn)行反向代理,并支持多個(gè)應(yīng)用服務(wù)器的負(fù)載均衡?,F(xiàn)有技術(shù)的這種接入系統(tǒng)存在以下幾個(gè)缺點(diǎn):

1)運(yùn)行狀態(tài)下不支持服務(wù)發(fā)現(xiàn)功能,新增應(yīng)用服務(wù)時(shí)需要重啟進(jìn)程或重加載配置;

2)對(duì)業(yè)務(wù)請(qǐng)求的負(fù)載均衡不能依據(jù)業(yè)務(wù)實(shí)時(shí)狀態(tài)進(jìn)行路由,只能依據(jù)配置中的策略進(jìn)行路由;

3)不支持更輕量級(jí)的協(xié)程調(diào)度,進(jìn)程切換開(kāi)銷大;

4)不支持到應(yīng)用服務(wù)器的長(zhǎng)連接,對(duì)應(yīng)用服務(wù)器的消耗很大。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種基于cgo的高性能證券行情接入系統(tǒng)和方法。旨在針對(duì)證券行情服務(wù)提出一種基于c語(yǔ)言和go語(yǔ)言結(jié)合的證券行情高性能接入系統(tǒng),建立在高并發(fā)和高訪問(wèn)情況下使用cgo實(shí)現(xiàn)證券行情接入系統(tǒng)和方法的操作流程和機(jī)制。

本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案之一是:提供一種基于cgo的高性能證券行情接入系統(tǒng),包括收斂器模塊、連接管理器模塊、轉(zhuǎn)發(fā)邏輯模塊、推送邏輯模塊和接入組件模塊,其中:

收斂器模塊:負(fù)責(zé)用戶連接的建立,將建立好的連接發(fā)送到多個(gè)接入進(jìn)程,采集接入進(jìn)程的用戶狀態(tài)數(shù)據(jù);

連接管理器模塊:通過(guò)cgo機(jī)制和go語(yǔ)言通信,管理用戶連接的數(shù)據(jù)包收發(fā),與go程序進(jìn)行數(shù)據(jù)交換,對(duì)整個(gè)進(jìn)程和單個(gè)連接進(jìn)行流量控制;

轉(zhuǎn)發(fā)邏輯模塊:接收請(qǐng)求數(shù)據(jù),將業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器,接收應(yīng)用服務(wù)器的響應(yīng)包并傳遞給連接管理器;

推送邏輯模塊:將接入進(jìn)程的用戶上下線狀態(tài)和接入進(jìn)程狀態(tài)通知推送集群前置模塊,同時(shí)接收推送系統(tǒng)代理模塊發(fā)來(lái)的推送數(shù)據(jù)并傳遞給連接管理器模塊;

接入組件模塊:分為接入組件客戶端和服務(wù)端;接入組件客戶端集成tcp連接池管理、負(fù)載均衡、路由容災(zāi)、服務(wù)發(fā)現(xiàn)、連接?;罟δ苡谝簧淼目蛻舳司幊炭蚣埽c接入組件服務(wù)端進(jìn)行對(duì)接;接入組件服務(wù)端是基于高性能tcp套接字讀寫組件實(shí)現(xiàn)的服務(wù)端編程框架,能與接入組件客戶端進(jìn)行無(wú)縫對(duì)接。

進(jìn)一步地:

本發(fā)明一種基于cgo的高性能證券行情接入系統(tǒng)的接入方法,包括如下步驟:

一、用戶連接收斂器模塊,收斂器將該連接發(fā)送到連接管理器模塊;

二、連接管理器模塊接收用戶連接,進(jìn)行鑒權(quán)處理,將在線狀態(tài)通知推送邏輯模塊;鑒權(quán)通過(guò)后,連接管理器模塊收取用戶發(fā)送過(guò)來(lái)的業(yè)務(wù)請(qǐng)求,將業(yè)務(wù)請(qǐng)求傳遞到轉(zhuǎn)發(fā)邏輯模塊,同時(shí)發(fā)送出去;

三、轉(zhuǎn)發(fā)邏輯模塊從接收環(huán)形隊(duì)列中提取業(yè)務(wù)請(qǐng)求,分發(fā)到對(duì)應(yīng)的轉(zhuǎn)發(fā)通道,處理轉(zhuǎn)發(fā)通道的數(shù)據(jù),并傳遞給接入組件模塊;

四、推送邏輯模塊在收到用戶的上下線狀態(tài)通知時(shí),將上下線狀態(tài)通知發(fā)送到推送集群系統(tǒng),同時(shí)推送邏輯監(jiān)聽(tīng)推送代理模塊發(fā)送過(guò)來(lái)證券行情數(shù)據(jù),并將行情數(shù)據(jù)傳遞給連接管理器模塊;

五、接入組件模塊預(yù)先從服務(wù)發(fā)現(xiàn)系統(tǒng)拉取配置信息,依據(jù)配置信息創(chuàng)建與應(yīng)用服務(wù)器的連接池,實(shí)時(shí)監(jiān)控配置信息變化,接入組件客戶端收到業(yè)務(wù)請(qǐng)求后,選取合適的連接將業(yè)務(wù)請(qǐng)求發(fā)送出去,并將業(yè)務(wù)請(qǐng)求身份標(biāo)識(shí)加入到定時(shí)器模塊中進(jìn)行超時(shí)計(jì)時(shí),負(fù)載均衡模塊統(tǒng)計(jì)請(qǐng)求發(fā)送信息,同時(shí),當(dāng)接入組件客戶端模塊收到回包后,解析出回包里的請(qǐng)求身份標(biāo)識(shí),從定時(shí)器模塊找出請(qǐng)求信息,上報(bào)回包信息到負(fù)載均衡模塊,并將響應(yīng)數(shù)據(jù)直接傳遞到發(fā)送環(huán)形隊(duì)列,供連接管理器模塊使用;

六、負(fù)載均衡模塊依據(jù)接入組件客戶端模塊上報(bào)的請(qǐng)求發(fā)送信息和回包信息,對(duì)應(yīng)用服務(wù)器的負(fù)載情況進(jìn)行動(dòng)態(tài)計(jì)分,當(dāng)接入組件客戶端模塊需要選取連接發(fā)送業(yè)務(wù)請(qǐng)求時(shí),將依據(jù)應(yīng)用服務(wù)器的分?jǐn)?shù)情況進(jìn)行動(dòng)態(tài)分配業(yè)務(wù)請(qǐng)求;

七、接入組件客戶端發(fā)送請(qǐng)求到應(yīng)用服務(wù)器,請(qǐng)求先到接入組件服務(wù)端組件中,接入組件服務(wù)端將對(duì)請(qǐng)求進(jìn)行協(xié)議驗(yàn)證和解包,并將業(yè)務(wù)數(shù)據(jù)傳遞給應(yīng)用服務(wù)器邏輯處理,處理完之后,將處理結(jié)果發(fā)送給接入組件(客戶端)模塊。

本發(fā)明的有益效果是:

1)接入系統(tǒng)運(yùn)行狀態(tài)下支持動(dòng)態(tài)服務(wù)發(fā)現(xiàn)功能,新增應(yīng)用服務(wù)時(shí)可以自動(dòng)更新到接入系統(tǒng)。

2)能夠依據(jù)業(yè)務(wù)實(shí)時(shí)負(fù)載狀態(tài)進(jìn)行負(fù)載均衡,能夠更好的分配請(qǐng)求,同時(shí)應(yīng)用服務(wù)器的擴(kuò)容、縮容對(duì)于上層用戶來(lái)說(shuō)都是無(wú)感知的。

3)輕量級(jí)的go協(xié)程調(diào)度,使得請(qǐng)求轉(zhuǎn)發(fā)高更效。

4)通過(guò)連接池與應(yīng)用服務(wù)器的長(zhǎng)連接,使得與應(yīng)用服務(wù)器的通信更高效率。

5)高效的無(wú)鎖內(nèi)存隊(duì)列的應(yīng)用,使得c語(yǔ)言與go語(yǔ)言的通過(guò)效率更高。

附圖說(shuō)明

下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的描述。

圖1是現(xiàn)有技術(shù)的證券行情接入系統(tǒng)和方法結(jié)構(gòu)示意圖。

圖2是本發(fā)明的結(jié)構(gòu)示意圖。

圖3是本發(fā)明的連接管理器結(jié)構(gòu)示意圖。

圖4是本發(fā)明的接入?yún)f(xié)議通信流程示意圖。

具體實(shí)施方式

參見(jiàn)附圖,本發(fā)明一種基于cgo的高性能證券行情接入系統(tǒng)具體實(shí)施例,包括收斂器模塊1、連接管理器模塊2、轉(zhuǎn)發(fā)邏輯模塊3、推送邏輯模塊4和接入組件模塊5,其中:

收斂器模塊1:負(fù)責(zé)用戶連接的建立,并將建立好的連接通過(guò)本地套接字(unixdomainsocket)平均發(fā)送到多個(gè)接入進(jìn)程,并采集接入進(jìn)程的用戶狀態(tài)數(shù)據(jù);

連接管理器模塊2:采用c語(yǔ)言實(shí)現(xiàn),通過(guò)cgo機(jī)制和go語(yǔ)言通信,對(duì)用戶連接進(jìn)行管理,通過(guò)io多路復(fù)用模型(epoll模型)管理用戶連接的數(shù)據(jù)包收發(fā),通過(guò)無(wú)鎖環(huán)形隊(duì)列與go程序進(jìn)行數(shù)據(jù)交換,對(duì)整個(gè)進(jìn)程和單個(gè)連接進(jìn)行流量控制;

轉(zhuǎn)發(fā)邏輯模塊3:從接收環(huán)形隊(duì)列輪詢接收請(qǐng)求數(shù)據(jù),采用多通道的方式轉(zhuǎn)發(fā)具體業(yè)務(wù)請(qǐng)求,使不同業(yè)務(wù)的請(qǐng)求相互獨(dú)立的轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器,同時(shí)接收應(yīng)用服務(wù)器的響應(yīng)包并通過(guò)發(fā)送環(huán)形隊(duì)列傳遞給連接管理器;

推送邏輯模塊4:負(fù)責(zé)將接入進(jìn)程的用戶上下線狀態(tài)和接入進(jìn)程狀態(tài)通知給到推送集群前置模塊(推送系統(tǒng)的主入口模塊),同時(shí)接收推送系統(tǒng)代理模塊發(fā)過(guò)來(lái)的推送數(shù)據(jù)并通過(guò)發(fā)送環(huán)形隊(duì)列傳遞給連接管理器模塊。

接入組件模塊(客戶端)5:分為接入組件客戶端和服務(wù)端;接入組件客戶端集成tcp連接池管理、負(fù)載均衡、路由容災(zāi)、服務(wù)發(fā)現(xiàn)、連接?;罟δ苡谝簧淼目蛻舳司幊炭蚣埽c接入組件服務(wù)端進(jìn)行對(duì)接;接入組件服務(wù)端是基于高性能tcp套接字讀寫組件實(shí)現(xiàn)的服務(wù)端編程框架,能與接入組件客戶端進(jìn)行無(wú)縫對(duì)接。

在本發(fā)明的實(shí)施例中,所述一種基于cgo的高性能證券行情接入系統(tǒng)和方法的實(shí)現(xiàn)方法細(xì)分為如下步驟:

一、當(dāng)用戶通過(guò)tcp連接到收斂器模塊進(jìn)程監(jiān)聽(tīng)的socket套接字時(shí),收斂器進(jìn)程接受用戶連接,記為conn,并通過(guò)本地套接字把conn發(fā)送到接入進(jìn)程的連接管理器模塊;

二、連接管理器模塊接收用戶連接conn,并將conn加入epoll進(jìn)行事件監(jiān)聽(tīng),讀取conn發(fā)過(guò)來(lái)握手請(qǐng)求,針對(duì)握手請(qǐng)求進(jìn)行鑒權(quán)處理,并將在線狀態(tài)通知到推送邏輯模塊。握手鑒權(quán)通過(guò)后,連接管理器模塊開(kāi)始收取用戶連接conn發(fā)送過(guò)來(lái)的業(yè)務(wù)請(qǐng)求,然后將業(yè)務(wù)請(qǐng)求通過(guò)接收環(huán)形隊(duì)列傳遞到轉(zhuǎn)發(fā)邏輯模塊,并同時(shí)從接收環(huán)形隊(duì)列中提取響應(yīng)回包直接通過(guò)用戶連接conn發(fā)送出去。具體的接入?yún)f(xié)議的握手流程如圖4所示;

三、轉(zhuǎn)發(fā)邏輯模塊從接收環(huán)形隊(duì)列中提取到業(yè)務(wù)請(qǐng)求,依據(jù)業(yè)務(wù)請(qǐng)求的的命令字分發(fā)到對(duì)應(yīng)的轉(zhuǎn)發(fā)通道中去,通過(guò)go語(yǔ)言協(xié)程池處理轉(zhuǎn)發(fā)通道的數(shù)據(jù),并傳遞給接入組件客戶端模塊;

四、推送邏輯模塊在收到用戶的上下線狀態(tài)通知時(shí),會(huì)將上下線狀態(tài)通知直接發(fā)送到推送集群系統(tǒng)去;同時(shí)推送邏輯還會(huì)負(fù)責(zé)監(jiān)聽(tīng)推送代理模塊發(fā)送過(guò)來(lái)的udp證券行情數(shù)據(jù),并將行情數(shù)據(jù)通過(guò)發(fā)送環(huán)形隊(duì)列傳遞給連接管理器模塊;

五、接入組件客戶端模塊預(yù)先從服務(wù)發(fā)現(xiàn)系統(tǒng)拉取配置信息,依據(jù)配置信息創(chuàng)建好與應(yīng)用服務(wù)器的連接池,并實(shí)時(shí)監(jiān)控配置信息變化,當(dāng)配置信息有改變時(shí),連接池同步變化;接入組件客戶端在收到業(yè)務(wù)請(qǐng)求時(shí),依據(jù)用戶命令字從負(fù)載均衡模塊拉取合適的連接將業(yè)務(wù)請(qǐng)求發(fā)送出去,并將業(yè)務(wù)請(qǐng)求身份標(biāo)識(shí)加入到定時(shí)器模塊進(jìn)行超時(shí)計(jì)時(shí),負(fù)載均衡模塊統(tǒng)計(jì)請(qǐng)求發(fā)送信息;同時(shí),當(dāng)接入組件客戶端模塊收到回包時(shí),解析出回包里的請(qǐng)求身份標(biāo)識(shí),依據(jù)請(qǐng)求身份標(biāo)識(shí)從定時(shí)器模塊里找出請(qǐng)求信息,上報(bào)回包信息到負(fù)載均衡模塊,并將響應(yīng)數(shù)據(jù)直接傳遞到發(fā)送環(huán)形隊(duì)列,供連接管理器模塊使用;

六、負(fù)載均衡模塊依據(jù)接入組件客戶端模塊上報(bào)的請(qǐng)求發(fā)送信息和回包信息,對(duì)應(yīng)用服務(wù)器的負(fù)載情況進(jìn)行動(dòng)態(tài)計(jì)分,當(dāng)接入組件客戶端模塊需要選取連接發(fā)送業(yè)務(wù)請(qǐng)求時(shí),將依據(jù)應(yīng)用服務(wù)器的分?jǐn)?shù)情況進(jìn)行動(dòng)態(tài)分配,以達(dá)到負(fù)載好的應(yīng)用服務(wù)器承擔(dān)更多的請(qǐng)求壓力,負(fù)載差的應(yīng)用服務(wù)器承擔(dān)相對(duì)較少的請(qǐng)求壓力;

七、接入組件客戶端發(fā)送請(qǐng)求到應(yīng)用服務(wù)器時(shí),請(qǐng)求先到接入組件服務(wù)端組件中,接入組件服務(wù)端將對(duì)請(qǐng)求進(jìn)行協(xié)議驗(yàn)證和解包,并將業(yè)務(wù)數(shù)據(jù)傳遞給應(yīng)用服務(wù)器邏輯處理,處理完之后,再通過(guò)接入組件服務(wù)端將處理結(jié)果發(fā)送給接入組件客戶端模塊。

在證券行情業(yè)務(wù)情景下,用戶連接到行情接入系統(tǒng)和方法時(shí),會(huì)發(fā)送多個(gè)業(yè)務(wù)請(qǐng)求,同時(shí)需要應(yīng)用服務(wù)器能持續(xù)快速推送證券行情信息。本發(fā)明在于證券行情接入系統(tǒng)和方法采用go語(yǔ)言的輕量級(jí)協(xié)程開(kāi)發(fā),與應(yīng)用服務(wù)器建立長(zhǎng)連接,持續(xù)快速地推送證券行情信息,能夠支持動(dòng)態(tài)發(fā)現(xiàn)應(yīng)用服務(wù)器的狀態(tài),能夠依據(jù)應(yīng)用服務(wù)器的實(shí)時(shí)能力進(jìn)行動(dòng)態(tài)負(fù)載均衡,從而更好的適應(yīng)證券行情業(yè)務(wù)高并發(fā)、高訪問(wèn)、高可用的要求。

縮略語(yǔ)和關(guān)鍵術(shù)語(yǔ)定義

nginx:一個(gè)高性能的http和反向代理服務(wù)器,也是一個(gè)imap/pop3/smtp服務(wù)器,經(jīng)常應(yīng)用于接入系統(tǒng)。

go語(yǔ)言:又稱golang是google開(kāi)發(fā)的一種編譯型,可并行化,并具有垃圾回收功能的編程語(yǔ)言。

cgo:一種實(shí)現(xiàn)go程序與c的類庫(kù)交互操作的技術(shù)。

本地套接字:unixdomainsocket是在socket架構(gòu)上發(fā)展起來(lái)的用于同一臺(tái)主機(jī)的進(jìn)程間通訊(ipc),它不需要經(jīng)過(guò)網(wǎng)絡(luò)協(xié)議棧,不需要打包拆包、計(jì)算校驗(yàn)和、維護(hù)序號(hào)和應(yīng)答等,只是將應(yīng)用層數(shù)據(jù)從一個(gè)進(jìn)程拷貝到另一個(gè)進(jìn)程。

epoll:一種高性能的多路io復(fù)用機(jī)制,事件驅(qū)動(dòng)機(jī)制。

套接字讀寫組件:自研的一套基于go語(yǔ)言的tcp通信框架。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
云安县| 平乐县| 星子县| 湄潭县| 定安县| 雅江县| 乐平市| 邵阳县| 韶山市| 阳江市| 景东| 大关县| 许昌市| 磐石市| 遵化市| 安化县| 平陆县| 通许县| 桐柏县| 江津市| 涡阳县| 芜湖市| 阿拉善右旗| 富民县| 岐山县| 美姑县| 嘉祥县| 汶川县| 定陶县| 洛阳市| 阳江市| 城步| 宿州市| 应城市| 泉州市| 甘孜县| 沾化县| 连城县| 东乡| 偏关县| 博罗县|