[发明专利]一种基于Cgo的高性能证券行情接入系统和方法有效
申请号: | 201710441120.9 | 申请日: | 2017-06-13 |
公开(公告)号: | CN107071067B | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 罗意;谈加虎 | 申请(专利权)人: | 广发证券股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06 |
代理公司: | 44534 深圳市卓科知识产权代理有限公司 | 代理人: | 赵辉丽;潘晓 |
地址: | 510000 广东省广州市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cgo 性能 证券行情 接入 系统 方法 | ||
1.一种基于Cgo的高性能证券行情接入系统,其特征在于:包括收敛器模块、连接管理器模块、转发逻辑模块、推送逻辑模块和接入组件模块,其中:
收敛器模块:负责用户连接的建立,将建立好的连接发送到多个接入进程,采集接入进程的用户状态数据;
连接管理器模块:通过Cgo机制和go语言通信,管理用户连接的数据包收发,与go程序进行数据交换,对整个进程和单个连接进行流量控制;
转发逻辑模块:接收请求数据,将业务请求转发给应用服务器,接收应用服务器的响应包并传递给连接管理器;
推送逻辑模块:将接入进程的用户上下线状态和接入进程状态通知推送集群前置模块,同时接收推送系统代理模块发来的推送数据并传递给连接管理器模块;
接入组件模块:分为接入组件客户端和服务端;接入组件客户端集成TCP连接池管理、负载均衡、路由容灾、服务发现、连接保活功能于一身的客户端编程框架,与接入组件服务端进行对接;接入组件服务端是基于高性能Tcp套接字读写组件实现的服务端编程框架,能与接入组件客户端进行无缝对接。
2.根据权利要求1所述的一种基于Cgo的高性能证券行情接入系统的接入方法,包括如下步骤:
一、用户连接收敛器模块,收敛器将该连接发送到连接管理器模块;
二、连接管理器模块接收用户连接,进行鉴权处理,将在线状态通知推送逻辑模块;鉴权通过后,连接管理器模块收取用户发送过来的业务请求,将业务请求传递到转发逻辑模块,同时发送出去;
三、转发逻辑模块从接收环形队列中提取业务请求,分发到对应的转发通道,处理转发通道的数据,并传递给接入组件模块;
四、推送逻辑模块在收到用户的上下线状态通知时,将上下线状态通知发送到推送集群系统,同时推送逻辑监听推送代理模块发送过来证券行情数据,并将行情数据传递给连接管理器模块;
五、接入组件模块预先从服务发现系统拉取配置信息,依据配置信息创建与应用服务器的连接池,实时监控配置信息变化,接入组件客户端收到业务请求后,选取合适的连接将业务请求发送出去,并将业务请求身份标识加入到定时器模块中进行超时计时,负载均衡模块统计请求发送信息,同时,当接入组件客户端模块收到回包后,解析出回包里的请求身份标识,从定时器模块找出请求信息,上报回包信息到负载均衡模块,并将响应数据直接传递到发送环形队列,供连接管理器模块使用;
六、负载均衡模块依据接入组件客户端模块上报的请求发送信息和回包信息,对应用服务器的负载情况进行动态计分,当接入组件客户端模块需要选取连接发送业务请求时,将依据应用服务器的分数情况进行动态分配业务请求;
七、接入组件客户端发送请求到应用服务器,请求先到接入组件服务端组件中,接入组件服务端将对请求进行协议验证和解包,并将业务数据传递给应用服务器逻辑处理,处理完之后,将处理结果发送给接入组件模块。
3.根据权利要求1所述的一种基于Cgo的高性能证券行情接入系统,其特征在于:包括收敛器模块(1)、连接管理器模块(2)、转发逻辑模块(3)、推送逻辑模块(4)和接入组件模块(5),其中:
收敛器模块(1):负责用户连接的建立,并将建立好的连接通过本地套接字平均发送到多个接入进程,采集接入进程的用户状态数据;
连接管理器模块(2):采用C语言实现,通过Cgo机制和go语言通信,对用户连接进行管理,通过IO多路复用模型管理用户连接的数据包收发,通过无锁环形队列与go程序进行数据交换,对整个进程和单个连接进行流量控制;
转发逻辑模块(3):从接收环形队列轮询接收请求数据,采用多通道的方式转发具体业务请求,使不同业务的请求相互独立的转发给应用服务器,同时接收应用服务器的响应包并通过发送环形队列传递给连接管理器;
推送逻辑模块(4):负责将接入进程的用户上下线状态和接入进程状态通知给到推送集群前置模块,同时接收推送系统代理模块发过来的推送数据并通过发送环形队列传递给连接管理器模块;
接入组件模块(5):分为接入组件客户端和服务端;接入组件客户端集成TCP连接池管理、负载均衡、路由容灾、服务发现、连接保活功能于一身的客户端编程框架,与接入组件服务端进行对接;接入组件服务端是基于高性能Tcp套接字读写组件实现的服务端编程框架,能与接入组件客户端进行无缝对接。
4.根据权利要求2所述的一种基于Cgo的高性能证券行情接入系统的接入方法,细分为如下步骤:
一、当用户通过TCP连接到收敛器模块进程监听的socket套接字时,收敛器进程接受用户连接,记为conn,并通过本地套接字把conn发送到接入进程的连接管理器模块;
二、连接管理器模块接收用户连接conn,并将conn加入Epoll进行事件监听,读取conn发过来握手请求,针对握手请求进行鉴权处理,并将在线状态通知到推送逻辑模块,握手鉴权通过后,连接管理器模块开始收取用户连接Conn发送过来的业务请求,然后将业务请求通过接收环形队列传递到转发逻辑模块,并同时从接收环形队列中提取响应回包直接通过用户连接conn发送出去;
三、转发逻辑模块从接收环形队列中提取到业务请求,依据业务请求的命令字分发到对应的转发通道中去,通过go语言协程池处理转发通道的数据,并传递给接入组件客户端模块;
四、推送逻辑模块在收到用户的上下线状态通知时,将上下线状态通知直接发送到推送集群系统去;同时推送逻辑还会负责监听推送代理模块发送过来的Udp证券行情数据,并将行情数据通过发送环形传递给连接管理器模块;
五、接入组件客户端模块预先从服务发现系统拉取配置信息,依据配置信息创建好与应用服务器的连接池,并实时监控配置信息变化,当配置信息有改变时,连接池同步变化;接入组件客户端在收到业务请求时,依据用户命令字从负载均衡模块拉取合适的连接将业务请求发送出去,并将业务请求身份标识加入到定时器模块进行超时计时,负载均衡模块统计请求发送信息;同时,当接入组件客户端模块收到回包时,解析出回包里的请求身份标识,依据请求身份标识从定时器模块里找出请求信息,上报回包信息到负载均衡模块,并将响应数据直接传递到发送环形队列,供连接管理器模块使用;
六、负载均衡模块依据接入组件客户端模块上报的请求发送信息和回包信息,对应用服务器的负载情况进行动态计分,当接入组件客户端模块需要选取连接发送业务请求时,将依据应用服务器的分数情况进行动态分配,以达到负载好的应用服务器承担更多的请求压力,负载差的应用服务器承担相对较少的请求压力;
七、接入组件客户端发送请求到应用服务器时,请求先到接入组件服务端组件中,接入组件服务端将对请求进行协议验证和解包,并将业务数据传递给应用服务器逻辑处理,处理完之后,再通过接入组件服务端将处理结果发送给接入组件客户端模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广发证券股份有限公司,未经广发证券股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710441120.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:随意贴多用途透明磁吸手机支架
- 下一篇:一种车载手机支架