CN113194000B - 一种业务无关的分布式系统 - Google Patents

一种业务无关的分布式系统 Download PDF

Info

Publication number
CN113194000B
CN113194000B CN202110480281.5A CN202110480281A CN113194000B CN 113194000 B CN113194000 B CN 113194000B CN 202110480281 A CN202110480281 A CN 202110480281A CN 113194000 B CN113194000 B CN 113194000B
Authority
CN
China
Prior art keywords
node
fault
tolerant
queuing
flow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110480281.5A
Other languages
English (en)
Other versions
CN113194000A (zh
Inventor
张飞
王康贵
刘�英
王维
田邵华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Financial Futures Information Technology Co ltd
Original Assignee
Shanghai Financial Futures Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Financial Futures Information Technology Co ltd filed Critical Shanghai Financial Futures Information Technology Co ltd
Priority to CN202110480281.5A priority Critical patent/CN113194000B/zh
Publication of CN113194000A publication Critical patent/CN113194000A/zh
Application granted granted Critical
Publication of CN113194000B publication Critical patent/CN113194000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种业务无关的分布式系统,实现业务无关的高效容错架构,有效降低企业的运营维护成本。其技术方案为:通过业务层和架构层的彻底解耦分离,使得所有的容错方案都在架构层完成,在业务层无需考虑任务容错机制,从而使架构层可以适配于任何业务模型。同时,本发明在架构层中创新的增加了一高效容错方案,可以在业务层无感的情况下充分保证金融系统的高效和稳定运行。

Description

一种业务无关的分布式系统
技术领域
本发明涉及期货尤其是金融期货领域的交易系统设计架构,具体涉及一种应用于期货尤其是金融期货领域的业务无关的分布式系统。
背景技术
随着金融行业需求和业务的不断发展和衍生,各种金融系统对应的产品线也越来越多,每种产品线都有自己的独特的架构方案,每种架构下的系统维护方式也有很大的差别,这大大增加了企业日常的运营维护成本。随着金融市场和企业的不断发展,维护的产品线也会不断的增加,随之而来的是要维护越来越多的系统架构,这对开发人员和运维人员都带来了极大的不便,不仅需要额外投入巨大的人力成本分别运营维护,也极易造成系统性风险。
业内传统的架构设计方式存在以下几个方面的缺陷:1)每种业务都有自己独有的架构,没有一套统一的架构解决方案;2)不能有效剔除系统运行中的业务坏点数据,导致单个业务包的错误使得整个系统发生瘫痪。
由于上述缺陷,目前业界迫切需要一种与业务无关且带有容错机制的新架构方案。
发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
本发明的目的在于解决上述问题,提供了一种业务无关的分布式系统,实现业务和架构的高度解耦,有效降低企业的运营维护成本和风险应对能力。
本发明的技术方案为:本发明揭示了一种业务无关的分布式系统,系统包括仲裁节点、容错排序节点、集群订阅节点、普通节点和持久化节点,普通节点包括多个前置节点和多个报盘节点,前置节点连接容错排序节点,容错排序节点分别连接持久化节点、集群订阅节点,集群订阅节点连接报盘节点,仲裁节点连接容错排序节点,其中:
前置节点用于接收各类客户的包含报单、查询、出入金在内的请求,再将这些请求报文转换成统一格式,发布给容错排序节点;
报盘节点用于将集群订阅节点的结果流中的报单上报到交易所并等待交易所的响应;
集群订阅节点用于订阅主容错排序节点的排队流,根据不同的业务规则处理这些排队流,最后输出一个结果流给报盘节点;
容错排序节点用于接收多个前置节点的请求报文,将这些原始的请求报文排序,并调用应用层接口处理产生一个或多个新报文,将这些原始的请求报文和新报文组合成一个定序的排队流再发布出去,以使所发布的排队流中的每个包都有唯一的递增序号;
仲裁节点用于从多个容错排序节点中选择一个作为主容错排序节点,其他的容错排序节点均作为备容错排序节点;
持久化节点用于订阅主容错排序节点的排队流,将排队流落地成文件。
根据本发明的业务无关的分布式系统的一实施例,仲裁节点从多个容错排序节点中选择主容错排序节点进一步包括:
根据节点序号大小来选择:以最小序号对应的容错排序节点作为主容错排序节点;或者
以最先启动的容错排序节点作为主容错排序节点。
根据本发明的业务无关的分布式系统的一实施例,只有主容错排序节点才能够从前置节点中订阅数据并排队后向外发布排队流,其余的备容错排序节点只能够订阅主容错排序节点发布的排队流。
根据本发明的业务无关的分布式系统的一实施例,容错排序节点与仲裁节点、持久化节点组成排队机,排队机采用回流操作:盘中主容错排序节点挂掉时,备容错排序节点切换成新的主容错排序节点后,新的主容错排序节点先从所有订阅排队流的进程(备容错节点、集群订阅节点、持久化节点)发起TCP连接,询问对方已经订阅到排队流的序号,若序号比新的主容错排序节点的序号大则回传排队流到新的主容错排序节点,以此来保证新的主容错排序节点发布的排队流序号是最大的。
根据本发明的业务无关的分布式系统的一实施例,在排队机的配置中,当所有容错节点故障,盘中新增一个容错排序节点作为主容错排序节点时,为了防止排队流不一致,新增的主容错排序节点进行补发流平衡,补发流平衡进一步包括:
第一步,先与持久化节点建立TCP连接,查询持久化节点排队流的大小;
第二步,判断持久化节点的排队流是否大于本地排队流,若本地排队流大于持久化节点排队流,则转第三步;若本地排队流小于持久化节点排队流,则让持久化节点回传排队流到新增的主容错排序节点,直到回传结束;
第三步,断开和持久化节点的TCP连接,开启订阅,接收前置的各请求。
根据本发明的业务无关的分布式系统的一实施例,在排队机的配置中,对新增的备容错排序节点或者集群订阅节点提供了补发流平衡功能:
第一步,先与持久化节点建立TCP连接,查询持久化节点排队流的大小,同时侦听主容错排队节点采用UDP模式发布流的大小;
第二步,若持久化节点排队流小于新增节点流,则断开连接,从主容错排序节点订阅排队流;
第三步,若持久化节点排队流大于新增节点流,则发起回传请求,持久节点开始回传排队流,同时持久化节点实时侦听主容错排序节点发布的流水号,当持久化节点的流水号与主容错排序节点发布的流水号差额小于一定阈值时,则该新增节点断开与持久化节点的TCP链接,并从主容错排序节点订阅数据。
根据本发明的业务无关的分布式系统的一实施例,备容错排序节点切换成主容错排序节点后的回流过程包括:
第一步,当主容错排序节点挂掉后,仲裁节点选择另一节点作为新的主容错排序节点;
第二步,新的主容错排序节点首先与所有其他容错排序节点、持久化节点以及集群订阅节点建立TCP连接,然后查询对方排队流大小;
第三步,选择对方排队流最大的节点作为回流节点,回传排队流;
第四步,回流结束后,新的主容错排序节点断开所有TCP连接,开启订阅,接收前置输入并重新发布排队流。
根据本发明的业务无关的分布式系统的一实施例,业务无关的分布式系统的架构还支持发布抑制功能。
根据本发明的业务无关的分布式系统的一实施例,业务无关的分布式系统的架构支持双网段,容错排序节点的排队流和集群订阅节点的结果流在双网段发布。
根据本发明的业务无关的分布式系统的一实施例,业务无关的分布式系统还包括多点容错功能:当连续2个主排队节点挂在同一个报文时,通过仲裁,第三个容错节点切主后会跳过该报文,从而保证整个系统正常运行,其中若系统有N个容错节点,则可以跳过的故障报文个数为N-2。
本发明对比现有技术有如下的有益效果:本发明的系统通过业务和架构的高度解耦,使得多种产品线可以有一个统一的架构。同时,本发明在架构层中创新的增加了一种高效容错方案,可以在业务层无感的情况下剔除数据流中的坏点数据,充分保证金融系统的高效和稳定运行。与传统相比,本发明的系统:1)有效解决金融系统中架构不统一的问题进而降低维护成本,并且多种容错方案来有效降低系统在运行过程中出现的进程崩溃、机器故障、网络中断等故障引起的系统性风险;2)将所有业务过程抽象化,做到业务层和架构层的彻底分离,同时通过分布式架构中的所有节点多活、排队机模型、剔除业务坏点、补发流平衡等众多容错手段,可以有效应对实际运行中的各种突发情况,从而保证整个系统的稳定运行。
附图说明
在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。
图1示出了本发明的业务无关的分布式系统的一实施例的架构图。
图2示出了本发明的业务无关的分布式系统的实施例的排队机结构图。
图3示出了本发明的业务无关的分布式系统的实施例的主排队节点补发流平衡的示意图。
图4示出了本发明的业务无关的分布式系统的实施例的其他节点补发流平衡的示意图。
图5示出了本发明的业务无关的分布式系统的实施例的回流示意图。
图6示出了本发明的业务无关的分布式系统的多点容错的示意图。
具体实施方式
以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
图1示出了本发明的业务无关的分布式系统的一实施例的架构。请参见图1,分布式系统包括:仲裁节点、容错排序节点、集群订阅节点、普通节点(包括多个前置节点和多个报盘节点)和持久化节点。
前置节点连接容错排序节点,容错排序节点分别连接持久化节点、集群订阅节点,集群订阅节点连接报盘节点,仲裁节点连接容错排序节点。
集群订阅节点用于订阅容错排序节点的主容错排序节点的排队流,根据不同的业务规则处理这些排队流,最后输出一个结果流给报盘节点。
普通节点中的前置节点主要用于接收各类客户的报单、查询、出入金等请求,再将这些请求报文转换成统一格式,发布给容错排序节点。
普通节点中的报盘节点用于将集群订阅节点的结果流中的报单上报到交易所并等待交易所的响应。
容错排序节点可以有多个,用于接收多个前置节点的请求报文,将这些原始报文排序,并调用应用层接口处理产生一个或多个新报文,将这些原始报文和新报文组合成一个定序的排队流,再发布出去,以使所发布的排队流中的每个包都有唯一的递增序号。
仲裁节点用于从多个容错排序节点中选择一个作为主容错排序节点,其他的容错排序节点均作为备容错排序节点。通常有2种选择策略,一种是根据节点序号大小来选择,即以最小序号对应的容错排序节点作为主容错排序节点,另一种以最先启动的容错排序节点作为主容错排序节点。只有容错排序节点中的主容错排序节点才能够从前置节点中订阅数据并排队后向外发布排队流,其余的备容错排序节点只能够订阅主容错排序节点发布的排队流。只有在主容错排序节点无法正常工作,仲裁节点选择其中的某个备容错排序节点切换成新的主容错排序节点后,才会由新的主容错排序节点继续从前置节点订阅数据并向外发布排队流。
持久化节点用于订阅主容错排序节点的排队流,将排队流落地成文件,并帮助集群订阅节点和容错排序节点回流和进行补发流平衡。
上述设计的分布式系统的架构,可实现业务和架构的彻底分离。在架构层剥离了所有业务含义,将所有金融系统的数据传输过程抽象化,简化为:前置节点接收用户的报单、查询、出入金等请求报文,然后再将收到的请求报文发布给容错排序节点;主容错排序节点将多个普通节点的输入数据定序成一个排队流,然后再发布出来;集群订阅节点负责订阅排队流,集群订阅节点根据不同的金融业务规则处理这些数据,然后产生结果流并发布出来;最后报盘节点再将结果流中的报单上报到交易所。
上述这种做法将不同的业务过程抽象成数据流过程,最终形成架构中的四步过程:接收用户输入、定序形成排队流、集群订阅节点进行业务处理、上报交易所。通过上述抽象化,本实施例的分布式系统做到了架构层和业务层的分离。架构层实现整个数据报文的流转,解析后回调用户层接口。用户层业务开发人员通过在回调接口中实现业务逻辑,从而不用关心该数据报文怎么收到、怎么发出去。
如图2所示,本实施例的业务无关的分布式系统采用排队机模型。容错排序节点与仲裁节点、持久化节点组成排队机。排队机采用回流操作,即盘中主容错排序节点挂掉时,备容错排序节点切换成新的主容错排序节点后,此时新的主容错排序节点会首先从所有订阅排队流的进程发起TCP连接,询问对方已经订阅到排队流的序号,若序号比新的主容错排序节点的序号大则回传排队流到新的主容错排序节点,以此来保证新的主容错排序节点发布的排队流序号是最大的。因此数据流不需要经过备容错排序节点的确认,减少了2跳的延迟,提高了报单速度;主容错排序节点发布数据不再需要备容错排序节点的确认,因此容错排序节点没有了个数限制,可以部署多个容错排序节点,进一步提高系统健壮性。
进一步如图3所示,示出了容错排序节点的补发流平衡图,为了应对所有容错排序节点都挂掉,盘中新增一个容错排序节点作为主容错排序节点导致排队流不一致问题。新增的主容错排序节点需要进行补发流平衡。第一步,先与持久化节点建立TCP连接,查询持久化节点排队流的大小;第二步,判断持久化节点的排队流是否大于本地的排队流,若本地排队流更大,则转第三步。若本地排队流小,则让持久化节点回传排队流到新增的主容错排序节点,直到回传结束;第三步,断开和持久化节点的TCP连接,开启订阅,接收前置的各种请求。
图4表示其他节点的补发流平衡图,为了应对盘中新增一个备容错排序节点或者集群订阅节点,该节点向主容错排队节点从0开始订阅,导致主容错排序节点的发布线程压力过大和网络产生瞬间产生大量NAK(Negative Acknowledgment,无应答),进而影响正常的数据流传递过程,本发明对上述两类新增节点提供了补发流平衡功能。
第一步,先与持久化节点建立TCP连接,查询持久化节点排队流的大小,同时侦听主容错排序节点采用UDP模式发布流的大小;
第二步,若持久化节点的流小于新增节点流,则断开连接,从主容错排序节点订阅排队流;
第三步,若持久化节点的流大于新增节点的流,则发起回传请求,持久节点开始回传排队流。同时,持久化节点实时侦听主容错排序节点发布的流水号。当持久化节点的流水号与主容错排序节点发布的流水号差额小于一个阈值时(例如1000),则表示回传结束后,新增节点断开TCP链接,并从主容错排序节点订阅数据。
图5为备容错排序节点切换成主容错排序节点后的回流图。为了保证盘中主容错排序节点挂掉,备容错排序节点切主后发布的排队流序号最大,提供了回流功能。
第一步,当主容错排序节点1挂掉后,仲裁节点选择节点2作为新的主容错排序节点;
第二步,节点2首先与所有其他容错排序节点、持久化节点以及集群订阅节点建立TCP连接,然后查询对方排队流大小;
第三步,选择排队流最大的节点最为回流节点,回传排队流。假设容错排序节点3的排队流最大序号是1000,持久化节点的排队流的最大序号是990,集群订阅节点1的排队流最大序号是1005,集群订阅节点2的排队流最大序号是1100,则选择集群订阅节点2作为回流节点,回传排队流给新的主容错排序节点2;
第四步,回流结束后,容错排序节点2断开所有TCP连接,然后开启订阅,接收前置输入并重新发布排队流。
为了应对主容错排序节点一个原始报文产生多个新报文,但是新报文还没发完就挂了这个流不完整问题,本发明的系统提供了延迟提交功能。备容错排序节点总是比主容错排序节点晚处理一个原始报文,例如主容错排序节点处理第N个原始报文时,被节点只处理到第N-1个。第一步,主容错排序节点对收到的原始包进行排序,然后调用应用层接口进行处理,获得一个或者多个新生成的报文,此时排队流由原始报文+新生成的报文组成。假设Sn表示原始报文;Mn表示新报文,一个原始报文可能生成多个新报文;第二步,假设主容错排序节点当前排队流为S1-M1-S2-M2-M2-S3-S4-M4-M4,(即主容错排序节点已经处理到第四个请求S4),此时若主容错排序节点挂掉了,备容错排序节点可能只订阅了一部分排队流,S1-M1-S2-M2-M2-S3-S4-M4(即丢了一个M4的新报文)。第三步,重新选定主容错排序节点,备容错排序节点切换成主容错排序节点后,先将之前订阅到的排队流中的最后一个原始报文和其对应的新报文删除掉,即排队流变为S1-M1-S2-M2-M2-S3。第四步,此时,由于备容错排序节点已经切换成主容错排序节点了,不再执行延迟提交策略。因此直接处理第四个请求S4,产生M4-M4,追加到排队流中。即新生成的排队流与主备切换之前一致S1-M1-S2-M2-M2-S3-S4-M4-M4。
图6是多点容错图,为解决坏点报文导致进程崩溃问题,本发明提供了多点容错技术来剔除坏点报文。
第一步,主容错排序节点每次处理业务数据报文时,都先将该报文信息(主题号、序列号)通过UDP广播给其他备容错排序节点;
第二步,基于上文所述的延迟提交特性,即假设主容错排序节点处理主题A的100序号时,其它备容错节点只会处理主题A的99序号报文;
第三步,假设主容错排序节点1在处理主题A的100序号报文时异常退出。通过仲裁后,容错排序节点2切主;
第四步,此时,容错排序节点2也先广播主题A的100序号,然后才处理该报文。相同的业务过程会导致相同的过程,所以容错排序节点2也会异常退出;
第五步,此时,通过仲裁后,容错排序节点3切主。容错排序节点3发现容错排序节点1、2都故障在了主题A的100序号报文处,因此跳过该报文,直接处理主题A的101号报文。从而达到系统健壮性,保证了系统后续数据流的正常处理;由此可见,如果有N个容错排序节点,则最多可以跳过N-2个异常报文。
图1所示的业务无关的分布式系统的架构支持双网段,容错排序节点的排队流和集群订阅节点的结果流在双网段发布,例如排队流可以在172和192两个网段上同时发布排队流,集群订阅节点就会同时在172和192两个网段都收到同样的数据,然后根据主题号+序列号进行去重。
图1所示的业务无关的分布式系统的架构还支持发布抑制功能。具体而言,若集群订阅节点1/2的结果流同时在172和192上发布,那么报盘节点就会收到4份相同的数据,对网络产生很大压力。所以报盘节点在检测到图1的集群订阅节点1和集群订阅节点2同时发布后,会选择节点号小的作为发布端,即集群订阅节点1作为发布端,抑制住集群订阅节点2的发布。只有在集群订阅节点1挂掉后,报盘节点才会通知集群订阅节点2开启双网段发布。
尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。

Claims (9)

1.一种业务无关的分布式系统,其特征在于,系统包括仲裁节点、容错排序节点、集群订阅节点、普通节点和持久化节点,普通节点包括多个前置节点和多个报盘节点,前置节点连接容错排序节点,容错排序节点分别连接持久化节点、集群订阅节点,集群订阅节点连接报盘节点,仲裁节点连接容错排序节点,其中:
前置节点用于接收各类客户的包含报单、查询、出入金在内的请求,再将这些请求报文转换成统一格式,发布给容错排序节点;
报盘节点用于将集群订阅节点的结果流中的报单上报到交易所并等待交易所的响应;
集群订阅节点用于订阅主容错排序节点的排队流,根据不同的业务规则处理这些排队流,最后输出一个结果流给报盘节点;
容错排序节点用于接收多个前置节点的请求报文,将这些原始的请求报文排序,并调用应用层接口处理产生一个或多个新报文,将这些原始的请求报文和新报文组合成一个定序的排队流再发布出去,以使所发布的排队流中的每个包都有唯一的递增序号;
仲裁节点用于从多个容错排序节点中选择一个作为主容错排序节点,其他的容错排序节点均作为备容错排序节点;
持久化节点用于订阅主容错排序节点的排队流,将排队流落地成文件;
其中,在排队机的配置中,对新增的备容错排序节点或者集群订阅节点提供了补发流平衡功能:
第一步,先与持久化节点建立TCP连接,查询持久化节点排队流的序号,同时侦听主容错排队节点采用UDP模式发布流的序号;
第二步,若持久化节点排队流的序号小于新增节点流的序号,则断开连接,从主容错排序节点订阅排队流;
第三步,若持久化节点排队流的序号大于新增节点流的序号,则发起回传请求,持久节点开始回传排队流,同时持久化节点实时侦听主容错排序节点发布的流水号,当持久化节点的流水号与主容错排序节点发布的流水号差额小于一定阈值时,则该新增节点断开与持久化节点的TCP链接,并从主容错排序节点订阅数据。
2.根据权利要求1所述的业务无关的分布式系统,其特征在于,仲裁节点从多个容错排序节点中选择主容错排序节点进一步包括:
根据节点序号大小来选择:以最小序号对应的容错排序节点作为主容错排序节点;或者
以最先启动的容错排序节点作为主容错排序节点。
3.根据权利要求1所述的业务无关的分布式系统,其特征在于,只有主容错排序节点才能够从前置节点中订阅数据并排队后向外发布排队流,其余的备容错排序节点只能够订阅主容错排序节点发布的排队流。
4.根据权利要求1所述的业务无关的分布式系统,其特征在于,容错排序节点与仲裁节点、持久化节点组成排队机,排队机采用回流操作:盘中主容错排序节点挂掉时,备容错排序节点切换成新的主容错排序节点后,新的主容错排序节点先从所有订阅排队流的进程发起TCP连接,询问对方已经订阅到排队流的序号,若序号比新的主容错排序节点的序号大则回传排队流到新的主容错排序节点,以此来保证新的主容错排序节点发布的排队流序号是最大的。
5.根据权利要求1所述的业务无关的分布式系统,其特征在于,在排队机的配置中,当所有容错节点故障,盘中新增一个容错排序节点作为主容错排序节点时,为了防止排队流不一致,新增的主容错排序节点进行补发流平衡,补发流平衡进一步包括:
第一步,先与持久化节点建立TCP连接,查询持久化节点排队流的序号;
第二步,判断持久化节点的排队流的序号是否大于本地排队流的序号,若本地排队流的序号大于持久化节点排队流的序号,则转第三步;若本地排队流的序号小于持久化节点排队流的序号,则让持久化节点回传排队流到新增的主容错排序节点,直到回传结束;
第三步,断开和持久化节点的TCP连接,开启订阅,接收前置的各请求。
6.根据权利要求1所述的业务无关的分布式系统,其特征在于,备容错排序节点切换成主容错排序节点后的回流过程包括:
第一步,当主容错排序节点挂掉后,仲裁节点选择另一节点作为新的主容错排序节点;
第二步,新的主容错排序节点首先与所有其他容错排序节点、持久化节点以及集群订阅节点建立TCP连接,然后查询对方排队流的序号;
第三步,选择对方排队流序号最大的节点作为回流节点,回传排队流;
第四步,回流结束后,新的主容错排序节点断开所有TCP连接,开启订阅,接收前置输入并重新发布排队流。
7.根据权利要求1所述的业务无关的分布式系统,其特征在于,业务无关的分布式系统的架构还支持发布抑制功能。
8.根据权利要求1所述的业务无关的分布式系统,其特征在于,业务无关的分布式系统的架构支持双网段,容错排序节点的排队流和集群订阅节点的结果流在双网段发布。
9.根据权利要求1所述的业务无关的分布式系统,其特征在于,业务无关的分布式系统还包括多点容错功能:当连续2个主排队节点挂在同一个报文时,通过仲裁,第三个容错节点切主后会跳过该报文,从而保证整个系统正常运行,其中若系统有N个容错节点,则可以跳过的故障报文个数为N-2。
CN202110480281.5A 2021-04-30 2021-04-30 一种业务无关的分布式系统 Active CN113194000B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110480281.5A CN113194000B (zh) 2021-04-30 2021-04-30 一种业务无关的分布式系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110480281.5A CN113194000B (zh) 2021-04-30 2021-04-30 一种业务无关的分布式系统

Publications (2)

Publication Number Publication Date
CN113194000A CN113194000A (zh) 2021-07-30
CN113194000B true CN113194000B (zh) 2022-11-01

Family

ID=76983091

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110480281.5A Active CN113194000B (zh) 2021-04-30 2021-04-30 一种业务无关的分布式系统

Country Status (1)

Country Link
CN (1) CN113194000B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153526A (zh) * 2017-04-20 2017-09-12 浙江工业大学 一种流式计算环境下的并行数据回流方法
CN109495540A (zh) * 2018-10-15 2019-03-19 深圳市金证科技股份有限公司 一种数据处理的方法、装置、终端设备及存储介质
CN110336702A (zh) * 2019-07-11 2019-10-15 上海金融期货信息技术有限公司 一种消息中间件的系统和实现方法
CN111309501A (zh) * 2020-04-02 2020-06-19 无锡弘晓软件有限公司 高可用分布式队列
CN112116444A (zh) * 2020-06-11 2020-12-22 上海金融期货信息技术有限公司 银行金融服务系统和金融期货数据交换平台的对接系统
CN112558948A (zh) * 2020-12-16 2021-03-26 武汉绿色网络信息服务有限责任公司 一种海量流量下报文识别的方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785480B2 (en) * 2015-02-12 2017-10-10 Netapp, Inc. Load balancing and fault tolerant service in a distributed data system
US10412158B2 (en) * 2016-07-27 2019-09-10 Salesforce.Com, Inc. Dynamic allocation of stateful nodes for healing and load balancing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107153526A (zh) * 2017-04-20 2017-09-12 浙江工业大学 一种流式计算环境下的并行数据回流方法
CN109495540A (zh) * 2018-10-15 2019-03-19 深圳市金证科技股份有限公司 一种数据处理的方法、装置、终端设备及存储介质
CN110336702A (zh) * 2019-07-11 2019-10-15 上海金融期货信息技术有限公司 一种消息中间件的系统和实现方法
CN111309501A (zh) * 2020-04-02 2020-06-19 无锡弘晓软件有限公司 高可用分布式队列
CN112116444A (zh) * 2020-06-11 2020-12-22 上海金融期货信息技术有限公司 银行金融服务系统和金融期货数据交换平台的对接系统
CN112558948A (zh) * 2020-12-16 2021-03-26 武汉绿色网络信息服务有限责任公司 一种海量流量下报文识别的方法和装置

Also Published As

Publication number Publication date
CN113194000A (zh) 2021-07-30

Similar Documents

Publication Publication Date Title
CN103562890B (zh) 在发布/订阅消息系统中管理消息订阅的方法和系统
US10171661B2 (en) System and method of distributed maintenance of contact center state
CN104604189B (zh) 大型企业的高效状态发布机制
CN112217847A (zh) 微服务平台及其实现方法、电子设备及存储介质
CN112583931A (zh) 消息处理方法、消息中间件、电子设备和存储介质
CN103516918A (zh) 资源故障恢复方法及装置
CN105553682A (zh) 事件通知方法及用于事件通知的系统
CN108259595A (zh) 一种服务间异步调用的方法及系统
CN109412890B (zh) 基于dds的联合试验平台中间件节点状态检测方法
CN113194000B (zh) 一种业务无关的分布式系统
CN111769909B (zh) 一种基于行情数据级联重传的装置及方法
CN101707687A (zh) 一种会议电视业务调度方法和会议电视系统
US9426114B2 (en) Parallel message processing on diverse messaging buses
CN112613859B (zh) 一种基于上交所联通圈机制的集群报盘系统
CN114938376B (zh) 基于优先级处理数据的工业物联网及其控制方法
CN112256454B (zh) 消息延时处理方法和系统
WO2013189421A2 (zh) 分布式的话单统计方法、装置以及系统
CN111813795B (zh) 在区块链网络中确认交易的方法及装置
CN109039732B (zh) 消息处理系统及消息处理方法
CN114237910A (zh) 客户端负载均衡实现方法及装置
CN109831385B (zh) 一种消息处理方法、装置及电子设备
CN114125057B (zh) 一种面向多业务中心的分布式数据交互方法及装置
JP6171494B2 (ja) 情報処理装置、処理要求プログラム、および処理要求方法
CN115396516A (zh) 一种访问请求的处理方法、装置、设备和存储介质
CN116244098A (zh) 数据处理方法、系统、服务器、存储介质及产品

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant