CN113037839B - 一种分布式批量框架通讯***及方法 - Google Patents
一种分布式批量框架通讯***及方法 Download PDFInfo
- Publication number
- CN113037839B CN113037839B CN202110250368.3A CN202110250368A CN113037839B CN 113037839 B CN113037839 B CN 113037839B CN 202110250368 A CN202110250368 A CN 202110250368A CN 113037839 B CN113037839 B CN 113037839B
- Authority
- CN
- China
- Prior art keywords
- batch
- job
- information
- message
- distributed
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
一种分布式批量框架通讯***及方法,涉及计算机应用***领域,可用于金融领域和其他领域,所述***包含:分布式通讯服务器集群构建作业消息目录和消息处理目录;分布式批量控制器监听作业消息目录获取批量作业信息,根据批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行作业名的分布式批量执行器信息;根据分布式批量执行器信息和作业信息于分布式通讯服务器集群中建立监听子节点;根据消息处理目录中的处理结果删除对应的批量作业信息;分布式批量执行器集群包含多个分布式批量执行器,分布式批量执行器获得对应的作业信息,并调用对应的作业逻辑代码对作业信息执行作业处理,将处理结果存放至消息处理目录。
Description
技术领域
本发明涉及计算机应用***技术领域,可应用于金融领域和其他领域,尤指一种分布式批量框架通讯***及方法。
背景技术
当前技术中,很多应用都使用了分布式批量框架,即为平台应用批量开发的一种框架,主要实现功能:批量作业按时开启(传统批量由Entegor控制),实现批量内部各作业步之间的调度,控制台对批量进行可视化控制(传统批量由Entegor控制),调度执行器执行作业逻辑。针对该框架,还存在以下问题:指令传输单向性,无法回传调度,其次针对分布式构架通信过程中,指令发送较为复杂无法批量高效调度。
发明内容
本发明目的在于提供一种分布式批量框架通讯***及方法,予以克服现有技术中分布式批量框架通讯负载,调度繁琐的问题。
为达上述目的,本发明所提供的分布式批量框架通讯***,具体包含:分布式批量控制器、分布式通讯服务器集群和分布式批量执行器集群;所述分布式通讯服务器集群用于构建作业消息目录和消息处理目录,通过所述作业消息目录存放接收到的批量作业信息,通过所述消息处理目录存放接收到的处理结果;所述分布式批量控制器用于监听所述作业消息目录获取批量作业信息,根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息;根据所述分布式批量执行器信息和作业信息于所述分布式通讯服务器集群中建立监听子节点;以及,监听所述消息处理目录,根据所述消息处理目录中的处理结果删除对应的批量作业信息;所述分布式批量执行器集群包含多个分布式批量执行器,所述分布式批量执行器用于监听所述监听子节点获得对应的作业信息,并调用对应的作业逻辑代码对所述作业信息执行作业处理,将处理结果存放至所述消息处理目录。
在上述分布式批量框架通讯***中,优选的,所述分布式批量控制器包含控制器注册模块、解析消息模块、删除消息模块、批量调度模块、发送指令模块和执行器管理模块;所述控制器注册模块用于监听所述作业消息目录和所述消息处理目录,当所述作业消息目录新增批量作业信息时,获取新增的批量作业信息;所述解析消息模块用于根据预设消息格式解析所述批量作业信息获得多个作业信息及对应的批量作业名、日期、场次号信息;所述批量调度模块用于根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息;所述发送指令模块用于根据所述作业信息、批量作业名、日期、场次号信息及预设指令格式拼接生成指令字符串,根据所述指令字符串和所述分布式批量执行器信息于所述分布式通讯服务器集群中建立监听子节点;所述删除消息模块用于根据所述消息处理目录中的处理结果删除对应的批量作业信息;所述执行器管理模块用于监听所述监听子节点的删除情况,根据所述删除情况获取所述作业消息目录中对应的下线监听子节点,通过下线监听子节点获得对应的作业信息,将所述作业信息的作业名提供至所述批量调度模块。
在上述分布式批量框架通讯***中,优选的,所述分布式批量执行器包含执行器注册模块、指令解析模块、指令删除模块、作业执行模块和发送消息模块;所述执行器注册模块用于监听所述监听子节点获取所述指令字符串;所述指令解析模块用于解析所述指令字符串获得批量作业名、日期、场次号信息和指令类型;所述指令删除模块用于根据处理结果删除对应的监听子节点;所述作业执行模块用于根据所述指令类型调用对应的作业逻辑代码对所述作业信息执行作业处理,生成处理结果;所述发送消息模块用于根据所述处理结果和所述作业信息,通过预设消息格式组装消息字符串,根据所述消息字符串在所述作业消息目录中建立下线监听子节点。
在上述分布式批量框架通讯***中,优选的,所述***还包含批量调度控制台,所述批量调度控制台用于遍历所述分布式通讯服务器集群内的所有监听子节点,解析所述监听子节点获得作业信息对应的作业名并显示输出;以及,获取所述作业消息目录中所述批量作业信息,解析获得所述批量作业信息内所有作业信息的作业名并显示输出。
在上述分布式批量框架通讯***中,优选的,所述批量调度控制台包含指令查看模块和消息查看模块;所述指令查看模块用于遍历所述分布式通讯服务器集群内的所有监听子节点,解析所述监听子节点获得作业信息对应的作业名并显示输出;所述消息查看模块用于获取所述作业消息目录中所述批量作业信息,解析获得所述批量作业信息内所有作业信息的作业名并显示输出。
在上述分布式批量框架通讯***中,优选的,所述分布式通讯服务器集群包含多台zookeeper服务器,通过所述zookeeper服务器构建作业消息目录和消息处理目录,通过所述作业消息目录存放接收到的批量作业信息,通过所述消息处理目录存放接收到的处理结果。
本发明还提供一种适用上述分布式批量框架通讯***的通讯方法,所述方法包含:构建作业消息目录和消息处理目录,利用所述作业消息目录存放接收到的批量作业信息;监听所述作业消息目录获取批量作业信息,根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息;根据所述分布式批量执行器信息和作业信息于所述分布式通讯服务器集群中建立监听子节点;监听所述监听子节点获得对应的作业信息,并调用对应的作业逻辑代码对所述作业信息执行作业处理,将处理结果存放至所述消息处理目录;监听所述消息处理目录,根据所述消息处理目录中的处理结果删除对应的批量作业信息。
在上述通讯方法中,优选的,根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息包含:根据预设消息格式解析所述批量作业信息获得多个作业信息及对应的批量作业名、日期、场次号信息;根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息。
在上述通讯方法中,优选的,根据所述分布式批量执行器信息和作业信息于所述分布式通讯服务器集群中建立监听子节点包含:根据所述作业信息、批量作业名、日期、场次号信息及预设指令格式拼接生成指令字符串;根据所述指令字符串和所述分布式批量执行器信息于所述分布式通讯服务器集群中建立监听子节点。
在上述通讯方法中,优选的,将处理结果存放至所述消息处理目录还包含:根据所述处理结果和所述作业信息,通过预设消息格式组装消息字符串,根据所述消息字符串在所述作业消息目录中建立下线监听子节点。
在上述通讯方法中,优选的,监听所述作业消息目录获取批量作业信息还包含:监听所述监听子节点的删除情况;根据所述删除情况获取所述作业消息目录中对应的下线监听子节点;通过下线监听子节点获得对应的作业信息。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明所提供的分布式批量框架通讯***及方法,使得指令与消息的传递是双向的,批量控制器能接收批量执行器的消息,也能向批量执行器发送指令,批量执行器能接收批量控制器的指令,也能发送消息给批量控制器,指令与消息是持久化的,可通过通讯监控服务器查询待处理的指令与消息,指令与消息也是高可用的,如果批量控制器下线,指令与消息不会删除,待批量控制器重新上线后继续处理,如果批量执行器下线,指令与消息会重新分配给在线的批量执行器继续执行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例所提供的分布式批量框架通讯***的结构示意图;
图2为本发明一实施例所提供的分布式批量控制器的结构示意图;
图3为本发明一实施例所提供的分布式批量执行器的结构示意图;
图4为本发明一实施例所提供的批量调度控制台的结构示意图;
图5为本发明一实施例所提供的指令展示页面示意图;
图6为本发明一实施例所提供的消息展示页面示意图;
图7为本发明一实施例所提供的分布式批量框架通讯***的应用流程示意图;
图8为本发明一实施例所提供的通讯方法的流程示意图;
图9为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
请参考图1所示,本发明所提供的分布式批量框架通讯***,具体包含:分布式批量控制器1、分布式通讯服务器集群2和分布式批量执行器集群3;所述分布式通讯服务器集群2用于构建作业消息目录和消息处理目录,通过所述作业消息目录存放接收到的批量作业信息,通过所述消息处理目录存放接收到的处理结果;所述分布式批量控制器1用于监听所述作业消息目录获取批量作业信息,根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息;根据所述分布式批量执行器信息和作业信息于所述分布式通讯服务器集群中建立监听子节点;以及,监听所述消息处理目录,根据所述消息处理目录中的处理结果删除对应的批量作业信息;所述分布式批量执行器集群3包含多个分布式批量执行器,所述分布式批量执行器用于监听所述监听子节点获得对应的作业信息,并调用对应的作业逻辑代码对所述作业信息执行作业处理,将处理结果存放至所述消息处理目录。
在上述实施例中所述***还可包含批量调度控制台4,所述批量调度控制台4用于遍历所述分布式通讯服务器集群内的所有监听子节点,解析所述监听子节点获得作业信息对应的作业名并显示输出;以及,获取所述作业消息目录中所述批量作业信息,解析获得所述批量作业信息内所有作业信息的作业名并显示输出。进一步的,所述分布式通讯服务器集群包含多台zookeeper服务器,通过所述zookeeper服务器构建作业消息目录和消息处理目录,通过所述作业消息目录存放接收到的批量作业信息,通过所述消息处理目录存放接收到的处理结果。其中,分布式批量控制器1、分布式批量执行器集群3、批量调度控制台4都与分布式通讯服务器集群2连接,分布式批量控制器1、分布式批量执行器集群3、批量调度控制台4之间的通讯都是通过分布式通讯服务器集群2完成。
具体的,在实际工作中,所述分布式批量控制器1,由一主一备两台服务器组成,当主分布式批量控制器下线后,由备分布式批量控制器接管。主分布式批量控制器1 与分布式通讯服务器集群2连接,包括控制器注册模块、解析消息模块、删除消息模块、批量调度模块、发送指令模块、执行器管理模块,详见图2。
所述分布式通讯服务器集群2,是由多台zookeeper服务器组成,zookeeper可以实现集群中的分布式协调服务,即在集群的节点中进行可靠的消息传递,来协调集群的工作,zookeeper工作在集群中,提供的分布式协调服务具有如下的特点:顺序一致性:从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到 zookeeper中。原子性:所有事务请求的处理结果再整个集群中所有机器上的应用情况是一致的,即,要么整个集群中所有机器都成功应用了某一事务,要么都没有应用,一定不会出现集群中部分机器应用了该事务,另外一部分没有应用的情况。单一视图:无论客户端连接的是哪个zookeeper服务器,其看到的服务端数据模型都是一致的。可靠性:一旦服务端成功的应用了一个事务,并完成对客户端的响应,那么该事务所引起的服务端状态变更将会一直保留下来,除非有另一个事务又对其进行了改变。在该实施例中使用zookeeper实现通讯***:分布式批量执行器注册在“/Executors”节点下;发送给分布式批量执行器的指令在“/Batch/Scheduled/Executor/执行器名称”节点下;发送给分布式批量控制器的消息在“/Batch/Command”节点下;发送给分布式批量执行器的指令采用分隔符报文,以“|”分割,格式为“指令类型|批量作业名|日期|场次号”,指令类型包括:启动作业、停止作业;发送给分布式批量控制器的消息采用分隔符报文,以“|”分割,格式为“消息类型|批量作业名|日期|场次号”,消息类型包括:作业完成、作业出错。
所述分布式批量执行器3,主要功能是解析分布式批量控制器发来的指令,并根据指令执行对应的作业逻辑,并返回作业执行情况的消息,分布式批量执行器包括执行器注册模块、指令解析模块、指令删除模块、作业执行模块、发送消息模块,如图 3。
所述批量调度控制台4,主要功能是查看指令与消息,包括指令查看模块,消息查看模块,如图4。
请参考图2所示,在本发明一实施例中,所述分布式批量控制器包含控制器注册模块11、解析消息模块12、删除消息模块15、批量调度模块13、发送指令模块14 和执行器管理模块16;
所述控制器注册模块11用于监听所述作业消息目录和所述消息处理目录,当所述作业消息目录新增批量作业信息时,获取新增的批量作业信息;具体的,所述控制器注册模块11,作用是在分布式批量控制器启动时,连接分布式通讯服务器集群2,建立“/Batch/Command”节点的监听,当有新的子节点添加到该节点下时,说明接收到新的消息,获取该新的子节点值,并触发解析消息模块12工作,另外也对“/Executors”节点建立监听,当有子节点被删除时,代表有分布式批量执行器下线了,此时会触发执行器管理模块16进行处理。
所述解析消息模块12用于根据预设消息格式解析所述批量作业信息获得多个作业信息及对应的批量作业名、日期、场次号信息;具体的,所述解析消息模块12,作用是根据规定的消息格式,解析监听到的“/Batch/Command”新增的子节点值,获取到消息类型,批量作业名、日期、场次号信息,然后将这些信息送入批量调度模块 13。
所述批量调度模块13用于根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息;具体的,所述批量调度模块13,作用是根据消息中的批量作业名,并根据批量排程信息,计算下一步要执行的作业名,以及执行该作业的分布式批量执行器,例如,消息类型是作业完成,作业名是A,排程信息是作业B依赖于作业A,那么下一步要执行的作业就是B,选择分布式批量执行器有多种方法,例如随机选取分布式批量执行器注册节点“/Executors”下的一个节点,最后将此计算结果送入发送指令模块14,另外一个作用是,选择分布式批量执行器,将执行器管理模块16传来的作业信息,送给发送指令模块14。
所述发送指令模块14用于根据所述作业信息、批量作业名、日期、场次号信息及预设指令格式拼接生成指令字符串,根据所述指令字符串和所述分布式批量执行器信息于所述分布式通讯服务器集群中建立监听子节点;具体的,所述发送指令模块 14,是根据作业信息,以及指令格式,拼装完整的指令字符串,并在“/Batch/Scheduled/Executor/执行器名称”下新增子节点,节点值为拼装好的指令字符串,由于执行器注册模块31会建立“/Batch/Scheduled/Executor/执行器名称”节点的监听,因此该操作将会触发指令解析模块32工作,使得分布式批量执行器根据指令内容运行。
所述删除消息模块15用于根据所述消息处理目录中的处理结果删除对应的批量作业信息;具体的,所述删除消息模块15,是在消息处理完成后,将“/Batch/Command”下对应的节点删除。
所述执行器管理模块16用于监听所述监听子节点的删除情况,根据所述删除情况获取所述作业消息目录中对应的下线监听子节点,通过下线监听子节点获得对应的作业信息,将所述作业信息的作业名提供至所述批量调度模块。具体的,所述执行器管理模块16,是在监听到“/Executors”节点下有子节点被删除时触发的,即在分布式批量执行器下线时触发,该模块的作用是,获取“/Batch/Scheduled/Executor/下线执行器名称”下的子节点,这些子节点代表下线执行器没处理完的指令,然后从这些未处理完的指令中获得作业信息,并将作业信息送给批量调度模块13,当所有子节点都处理完成后,将“/Batch/Scheduled/Executor/下线执行器名称”节点删除。
请参考图3所示,在本发明一实施例中,所述分布式批量执行器包含执行器注册模块31、指令解析模块32、指令删除模块35、作业执行模块33和发送消息模块34;
其中,所述执行器注册模块31用于监听所述监听子节点获取所述指令字符串;具体的,所述执行器注册模块31,作用是在分布式批量执行器启动时,连接分布式通讯服务器集群2,新增“/Batch/Scheduled/Executor/执行器名称”节点,并建立该节点的监听,当有新的子节点添加到该节点下时,说明有新的指令,获取该新的子节点值,并触发指令解析模块32工作,另外,新增临时节点“/Executors/执行器名称”,说明该执行器已上线,并且,由于是临时节点,在执行器下线时,节点会自动删除,因此可以触发执行器管理模块16工作。
所述指令解析模块32用于解析所述指令字符串获得批量作业名、日期、场次号信息和指令类型;具体的,所述指令解析模块32,作用是根据规定的指令格式,解析监听到的“/Batch/Scheduled/Executor/执行器名称”新增的子节点值,获取到指令类型,批量作业名、日期、场次号信息,然后将这些信息送入作业执行模块33。
所述指令删除模块35用于根据处理结果删除对应的监听子节点;具体的,所述指令删除模块35,是在指令处理完成后,将“/Batch/Scheduled/Executor/执行器名称”下对应的节点删除。
所述作业执行模块33用于根据所述指令类型调用对应的作业逻辑代码对所述作业信息执行作业处理,生成处理结果;具体的,所述作业执行模块33,作用是根据不同的指令类型,执行不同的任务,如果指令类型为启动作业,则根据作业名找到对应的作业逻辑代码,并分配一条线程执行,当作业的逻辑代码执行完毕,将触发发送消息模块34,通知分布式批量控制器作业执行结果,如果指令类型为停止作业,则根据作业名找到执行该作业的线程,并停止该作业的执行。
所述发送消息模块34用于根据所述处理结果和所述作业信息,通过预设消息格式组装消息字符串,根据所述消息字符串在所述作业消息目录中建立下线监听子节点;具体的,所述发送消息模块34,是根据作业信息,以及消息格式,拼装完整的消息字符串,并在“/Batch/Command”下新增子节点,节点值为拼装好的消息字符串,由于控制器注册模块11会建立“/Batch/Command”节点的监听,因此该操作将会触发解析消息模块12工作,使得分布式批量控制器根据消息内容运行。
请参考图4所示,在本发明一实施例中,所述批量调度控制台包含指令查看模块41和消息查看模块42;所述指令查看模块41用于遍历所述分布式通讯服务器集群内的所有监听子节点,解析所述监听子节点获得作业信息对应的作业名并显示输出;所述消息查看模块42用于获取所述作业消息目录中所述批量作业信息,解析获得所述批量作业信息内所有作业信息的作业名并显示输出。在实际工作中,所述指令查看模块41,是遍历所有“/Batch/Scheduled/Executor/执行器名称”节点,获取这些节点下的子节点,即可获取所有执行器正在处理的指令,并解析指令,将其中的作业名称通过页面展示出来,如图5所示。所述消息查看模块42,是获取“/Batch/Command”下所有子节点,根据消息格式进行解析,并通过页面展示出来,如图6所示。
综上所述,实际工作中各模块的协调通讯方式如图7所示,具体包含:
步骤S701:批量调度模块13得到批量作业名,以及执行该作业的分布式批量执行器。
步骤S702:发送指令模块14根据作业信息,以及指令格式,拼装完整的指令字符串,并在“/Batch/Scheduled/Executor/执行器名称”下新增子节点,节点值为拼装好的指令字符串。
步骤S703:指令解析模块32根据规定的指令格式,解析监听到的“/Batch/Scheduled/Executor/执行器名称”新增的子节点值,获取到指令类型,批量作业名、日期、场次号信息。
步骤S704:执行模块33根据指令执行作业逻辑代码。
步骤S705:发送消息模块34根据作业信息,以及消息格式,拼装完整的消息字符串,并在“/Batch/Command”下新增子节点,节点值为拼装好的消息字符串。
步骤S706:指令删除模块35将“/Batch/Scheduled/Executor/执行器名称”下对应的节点删除。
步骤S707:解析消息模块12根据规定的消息格式,解析监听到的“/Batch/Command”新增的子节点值,获取到消息类型,批量作业名、日期、场次号信息。
步骤S708:执行器管理模块16获取“/Batch/Scheduled/Executor/下线执行器名称”下的子节点,从这些未处理完的指令中获得作业信息。
步骤S709:执行器管理模块16将“/Batch/Scheduled/Executor/下线执行器名称”节点删除。
请参考图8所示,本发明还提供一种适用上述分布式批量框架通讯***的通讯方法,所述方法包含:
S801构建作业消息目录和消息处理目录,利用所述作业消息目录存放接收到的批量作业信息;
S802监听所述作业消息目录获取批量作业信息,根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息;
S803根据所述分布式批量执行器信息和作业信息于所述分布式通讯服务器集群中建立监听子节点;
S804监听所述监听子节点获得对应的作业信息,并调用对应的作业逻辑代码对所述作业信息执行作业处理,将处理结果存放至所述消息处理目录;
S805监听所述消息处理目录,根据所述消息处理目录中的处理结果删除对应的批量作业信息。
在上述实施例中,根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息可包含:根据预设消息格式解析所述批量作业信息获得多个作业信息及对应的批量作业名、日期、场次号信息;根据所述批量作业消息中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息。基于该实施例,根据所述分布式批量执行器信息和作业信息于所述分布式通讯服务器集群中建立监听子节点可包含:根据所述作业信息、批量作业名、日期、场次号信息及预设指令格式拼接生成指令字符串;根据所述指令字符串和所述分布式批量执行器信息于所述分布式通讯服务器集群中建立监听子节点;该实施例的具体应用方式及流程已在前述实施例中详细说明,在此就不再一一详述。
在本发明一实施例中,将处理结果存放至所述消息处理目录可包含:根据所述处理结果和所述作业信息,通过预设消息格式组装消息字符串,根据所述消息字符串在所述作业消息目录中建立下线监听子节点。由此,监听所述作业消息目录获取批量作业信息还可包含:监听所述监听子节点的删除情况;根据所述删除情况获取所述作业消息目录中对应的下线监听子节点;通过下线监听子节点获得对应的作业信息;该实施例的具体应用方式及流程已在前述实施例中详细说明,在此就不再一一详述。
本发明所提供的分布式批量框架通讯***及方法,使得指令与消息的传递是双向的,批量控制器能接收批量执行器的消息,也能向批量执行器发送指令,批量执行器能接收批量控制器的指令,也能发送消息给批量控制器,指令与消息是持久化的,可通过通讯监控服务器查询待处理的指令与消息,指令与消息也是高可用的,如果批量控制器下线,指令与消息不会删除,待批量控制器重新上线后继续处理,如果批量执行器下线,指令与消息会重新分配给在线的批量执行器继续执行。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图9所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图9中所示的所有部件;此外,电子设备600还可以包括图9中没有示出的部件,可以参考现有技术。
如图9所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600 的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140 存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140 的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130 可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等) 上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种分布式批量框架通讯***,其特征在于,所述***包含:分布式批量控制器、分布式通讯服务器集群和分布式批量执行器集群;
所述分布式通讯服务器集群用于构建作业消息目录和消息处理目录,通过所述作业消息目录存放接收到的批量作业信息,通过所述消息处理目录存放接收到的处理结果;
所述分布式批量控制器用于监听所述作业消息目录获取批量作业信息,根据所述批量作业信息 中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息;根据所述分布式批量执行器信息和作业信息于所述分布式通讯服务器集群中建立监听子节点;以及,监听所述消息处理目录,根据所述消息处理目录中的处理结果删除对应的批量作业信息;
所述分布式批量执行器集群包含多个分布式批量执行器,所述分布式批量执行器用于监听所述监听子节点获得对应的作业信息,并调用对应的作业逻辑代码对所述作业信息执行作业处理,将处理结果存放至所述消息处理目录。
2.根据权利要求1所述的分布式批量框架通讯***,其特征在于,所述分布式批量控制器包含控制器注册模块、解析消息模块、删除消息模块、批量调度模块、发送指令模块和执行器管理模块;
所述控制器注册模块用于监听所述作业消息目录和所述消息处理目录,当所述作业消息目录新增批量作业信息时,获取新增的批量作业信息;
所述解析消息模块用于根据预设消息格式解析所述批量作业信息获得多个作业信息及对应的批量作业名、日期、场次号信息;
所述批量调度模块用于根据所述批量作业信息 中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息;
所述发送指令模块用于根据所述作业信息、批量作业名、日期、场次号信息及预设指令格式拼接生成指令字符串,根据所述指令字符串和所述分布式批量执行器信息于所述分布式通讯服务器集群中建立监听子节点;
所述删除消息模块用于根据所述消息处理目录中的处理结果删除对应的批量作业信息;
所述执行器管理模块用于监听所述监听子节点的删除情况,根据所述删除情况获取所述作业消息目录中对应的下线监听子节点,通过下线监听子节点获得对应的作业信息,将所述作业信息的作业名提供至所述批量调度模块。
3.根据权利要求2所述的分布式批量框架通讯***,其特征在于,所述分布式批量执行器包含执行器注册模块、指令解析模块、指令删除模块、作业执行模块和发送消息模块;
所述执行器注册模块用于监听所述监听子节点获取所述指令字符串;
所述指令解析模块用于解析所述指令字符串获得批量作业名、日期、场次号信息和指令类型;
所述指令删除模块用于根据处理结果删除对应的监听子节点;
所述作业执行模块用于根据所述指令类型调用对应的作业逻辑代码对所述作业信息执行作业处理,生成处理结果;
所述发送消息模块用于根据所述处理结果和所述作业信息,通过预设消息格式组装消息字符串,根据所述消息字符串在所述作业消息目录中建立下线监听子节点。
4.根据权利要求1所述的分布式批量框架通讯***,其特征在于,所述***还包含批量调度控制台,所述批量调度控制台用于遍历所述分布式通讯服务器集群内的所有监听子节点,解析所述监听子节点获得作业信息对应的作业名并显示输出;以及,获取所述作业消息目录中所述批量作业信息,解析获得所述批量作业信息内所有作业信息的作业名并显示输出。
5.根据权利要求4所述的分布式批量框架通讯***,其特征在于,所述批量调度控制台包含指令查看模块和消息查看模块;
所述指令查看模块用于遍历所述分布式通讯服务器集群内的所有监听子节点,解析所述监听子节点获得作业信息对应的作业名并显示输出;
所述消息查看模块用于获取所述作业消息目录中所述批量作业信息,解析获得所述批量作业信息内所有作业信息的作业名并显示输出。
6.根据权利要求1至5中任一项所述的分布式批量框架通讯***,其特征在于,所述分布式通讯服务器集群包含多台zookeeper服务器,通过所述zookeeper服务器构建作业消息目录和消息处理目录,通过所述作业消息目录存放接收到的批量作业信息,通过所述消息处理目录存放接收到的处理结果。
7.一种适用于权利要求1所述的分布式批量框架通讯***的通讯方法,其特征在于,所述方法包含:
构建作业消息目录和消息处理目录,利用所述作业消息目录存放接收到的批量作业信息;
监听所述作业消息目录获取批量作业信息,根据所述批量作业信息 中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息;
根据所述分布式批量执行器信息和作业信息于所述分布式通讯服务器集群中建立监听子节点;
监听所述监听子节点获得对应的作业信息,并调用对应的作业逻辑代码对所述作业信息执行作业处理,将处理结果存放至所述消息处理目录;
监听所述消息处理目录,根据所述消息处理目录中的处理结果删除对应的批量作业信息。
8.根据权利要求7所述的通讯方法,其特征在于,根据所述批量作业信息 中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息包含:
根据预设消息格式解析所述批量作业信息获得多个作业信息及对应的批量作业名、日期、场次号信息;
根据所述批量作业信息 中的各作业信息的作业名和预存排程信息分析获得执行所述作业名的分布式批量执行器信息。
9.根据权利要求8所述的通讯方法,其特征在于,根据所述分布式批量执行器信息和作业信息于所述分布式通讯服务器集群中建立监听子节点包含:
根据所述作业信息、批量作业名、日期、场次号信息及预设指令格式拼接生成指令字符串;
根据所述指令字符串和所述分布式批量执行器信息于所述分布式通讯服务器集群中建立监听子节点。
10.根据权利要求9所述的通讯方法,其特征在于,将处理结果存放至所述消息处理目录还包含:根据所述处理结果和所述作业信息,通过预设消息格式组装消息字符串,根据所述消息字符串在所述作业消息目录中建立下线监听子节点。
11.根据权利要求10所述的通讯方法,其特征在于,监听所述作业消息目录获取批量作业信息还包含:
监听所述监听子节点的删除情况;
根据所述删除情况获取所述作业消息目录中对应的下线监听子节点;
通过下线监听子节点获得对应的作业信息。
12.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求7至11任一所述方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求7至11任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110250368.3A CN113037839B (zh) | 2021-03-08 | 2021-03-08 | 一种分布式批量框架通讯***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110250368.3A CN113037839B (zh) | 2021-03-08 | 2021-03-08 | 一种分布式批量框架通讯***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113037839A CN113037839A (zh) | 2021-06-25 |
CN113037839B true CN113037839B (zh) | 2022-11-29 |
Family
ID=76466833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110250368.3A Active CN113037839B (zh) | 2021-03-08 | 2021-03-08 | 一种分布式批量框架通讯***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113037839B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791354A (zh) * | 2014-12-23 | 2016-07-20 | 中兴通讯股份有限公司 | 作业调度方法和云调度服务器 |
CN110113387A (zh) * | 2019-04-17 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 一种基于分布式批量处理***的处理方法、装置及*** |
CN110955506A (zh) * | 2019-11-26 | 2020-04-03 | 浙江电子口岸有限公司 | 一种分布式作业调度处理方法 |
CN111459640A (zh) * | 2020-04-03 | 2020-07-28 | 中国工商银行股份有限公司 | 跨平台批量作业调度方法及*** |
CN111767126A (zh) * | 2020-06-15 | 2020-10-13 | 中国建设银行股份有限公司 | 分布式批量处理的***和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10789097B2 (en) * | 2017-02-16 | 2020-09-29 | Nasdaq Technology Ab | Methods and systems of scheduling computer processes or tasks in a distributed system |
-
2021
- 2021-03-08 CN CN202110250368.3A patent/CN113037839B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105791354A (zh) * | 2014-12-23 | 2016-07-20 | 中兴通讯股份有限公司 | 作业调度方法和云调度服务器 |
CN110113387A (zh) * | 2019-04-17 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 一种基于分布式批量处理***的处理方法、装置及*** |
CN110955506A (zh) * | 2019-11-26 | 2020-04-03 | 浙江电子口岸有限公司 | 一种分布式作业调度处理方法 |
CN111459640A (zh) * | 2020-04-03 | 2020-07-28 | 中国工商银行股份有限公司 | 跨平台批量作业调度方法及*** |
CN111767126A (zh) * | 2020-06-15 | 2020-10-13 | 中国建设银行股份有限公司 | 分布式批量处理的***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113037839A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108965932B (zh) | 一种连麦窗口展示方法及装置 | |
CN111507674B (zh) | 任务信息处理方法、装置及*** | |
CN111324480B (zh) | 大型主机交易故障定位***及方法 | |
CN111970359B (zh) | 基于Node.js服务器的前端无服务架构***及建立方法 | |
CN111953784B (zh) | 基于异步通信框架的文件传输方法、装置及*** | |
US7366505B2 (en) | Apparatus and method for delivering messages to a mobile information terminal | |
CN113626002A (zh) | 一种服务执行方法及装置 | |
CN113760611B (zh) | ***站点切换方法、装置、电子设备及存储介质 | |
CN113256095A (zh) | 可拖拽配置的敏捷流程服务构建方法、***、设备及介质 | |
CN111767558A (zh) | 数据访问监控方法、装置及*** | |
CN113037839B (zh) | 一种分布式批量框架通讯***及方法 | |
CN111008209B (zh) | 数据的对账方法、装置及***、存储介质、电子装置 | |
CN115951923B (zh) | 订阅事件管理方法、显示***、设备和存储介质 | |
CN115827771A (zh) | 跨平台数据异构调度方法及装置 | |
CN113377682A (zh) | 服务测试方法及装置 | |
CN109150696B (zh) | 信息处理方法、服务器、客户端及计算机可读存储介质 | |
CN107066444B (zh) | 基于多轮交互的语料生成方法和装置 | |
CN108574622B (zh) | 一种基于xmpp的即时消息处理方法及装置 | |
CN111080250A (zh) | 流程回退补偿方法、装置、存储介质及电子设备 | |
US20240152504A1 (en) | Data interaction method, apparatus, and electronic device | |
CN110874274B (zh) | 一种界面组件的通信管理方法、装置、设备和存储介质 | |
CN115292067A (zh) | 任务处理方法、装置、电子设备和存储介质 | |
CN114661669A (zh) | 文件处理方法、装置、电子设备和存储介质 | |
CN117118938A (zh) | 操作任务处理方法及装置 | |
CN115357510A (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 |