【技术实现步骤摘要】
基于NIO针对大数据分布式系统进行消息处理优化的系统及方法
本专利技术涉及计算机应用领域,尤其涉及大数据处理领域,具体是指一种基于NIO针对大数据分布式系统进行消息处理优化的系统及方法。
技术介绍
随着互联网发展,需要处理的数据量越来越大,传统的单体应用架构已经难以满足现阶段互联网的发展需求,当今的互联网应用普遍采用基于网络的分布式架构。通过对服务的拆分降低不同业务模块之间的耦合度,不同模块以独立的方式部署,模块与模块之间通过网络的方式进行交互,从而提高系统处理性能、可靠性和可扩展性。对于高访问量、高并发的系统,基于网络的分布式应用架构成为了必然选择。传统的单体软件架构只部署在一台机器上,如图1所示,不同模块间的交互都是通过本地的方法调用完成,数据的传送都是在内存上进行的,开销比较小,延迟比较低。相对于单体应用架构,基于网络的分布式应用架构给我们带来了许多的好处,但与此同时也带来了新的问题。在基于网络的分布式架构中,一个业务操作可能需要多个不同模块的交互完成,不同模块之间的交互需要跨越网络,如图2所示。基于网络的应用架构在提高系统处理性能、可靠性和可扩展性的同时也带来了如下的问题:提高了应用业务处理的延时;增加了系统在处理网络连接方面的资源开销;不同模块之间存在大批量的数据传输可能造成网络的拥堵。在传统的方式中,由于需要保证业务上的操作是正确的,模块间是以同步的方式进行通信的,需要等待对方的返回结果来判断调用是否成功,从而执行下一步的操作或是进行失败回滚。同步处理的调用时序图如图3所示,从同步调用的时序图可以看出,在等待调用远程服务的方法的过程中,调用者需 ...
【技术保护点】
1.一种基于NIO针对大数据分布式系统进行消息处理优化的系统,其特征在于,所述的系统包括:消息产生模块,用于生成业务消息并将业务消息对象加入到消息发送队列;消息分发模块,与所述的消息产生模块相连接,用于对消息进行合并和格式转换;消息发送模块,与所述的消息分发模块相连接,用于将业务消息对象转换成可在网络上传输的格式,并使用非阻塞的方式发送消息;消息接收模块,与所述的消息发送模块相连接,用于将消息交由后续模块进行处理,并在处理后将处理的结果信息返回给消息发送模块;消息处理模块,与所述的消息接收模块相连接,用于对消息进行处理,根据接收的消息中的业务信息进行相应的业务操作,并生成操作的结果信息;消息返回处理模块,与所述的消息处理模块相连接,用于等待消息的处理结果,并根据返回的处理结果进行相应的业务操作。
【技术特征摘要】
1.一种基于NIO针对大数据分布式系统进行消息处理优化的系统,其特征在于,所述的系统包括:消息产生模块,用于生成业务消息并将业务消息对象加入到消息发送队列;消息分发模块,与所述的消息产生模块相连接,用于对消息进行合并和格式转换;消息发送模块,与所述的消息分发模块相连接,用于将业务消息对象转换成可在网络上传输的格式,并使用非阻塞的方式发送消息;消息接收模块,与所述的消息发送模块相连接,用于将消息交由后续模块进行处理,并在处理后将处理的结果信息返回给消息发送模块;消息处理模块,与所述的消息接收模块相连接,用于对消息进行处理,根据接收的消息中的业务信息进行相应的业务操作,并生成操作的结果信息;消息返回处理模块,与所述的消息处理模块相连接,用于等待消息的处理结果,并根据返回的处理结果进行相应的业务操作。2.一种利用权利要求1所述的系统基于NIO针对大数据分布式系统进行消息处理优化控制的方法,其特征在于,所述的方法包括以下步骤:(1)所述的消息产生模块解耦消息发送,产生消息并将消息封装成消息对象之后加入到消息发送队列中;(2)所述的消息分发模块从消息发送队列中获取消息对象,并对消息对象进行合并和转换;(3)所述的消息发送模块使用NIO组件,以非阻塞的方式通过网络发送给远程服务端;(4)所述的消息接收模块处理消息发送方的发送请求,将消息报文信息重新封装成消息对象后交由消息处理模块处理;(5)所述的消息处理模块获取到消息对象之后根据消息进行相关的业务处理并生成处理结果;(6)所述的消息返回处理模块通过等待远程服务的处理结果,并根据返回消息的信息进行后续的业务处理。3.根据权利要求2所述的基于NIO针对大数据分布式系统进行消息处理优化控制的方法,其特征在于,所述的步骤(1)具体包括以下步骤:(1.1)所述的消息产生模块从业务处理的逻辑中生成消息,将消息封装成单独的消息对象;(1.2)所述的消息产生模块将消息对象加入到消息的发送队列中,继续后续的业务处理或完成业务处理。4.根据权利要求2所述的基于NIO针对大数据分布式系统进行消息处理优化控制的方法,其特征在于,所述的步骤(2)具体包括以下步骤:(2.1)所述的消息分发模块从配置文件中获取消息分发服务线程的配置参数信息,并根据参数启动消息分发服务;(2.2)所述的消息分发模块从消息队列中读取消息信息;(2.3)所述的消息分发模块将消息对象加入到消息待处理列表中,判断消息待处理列表中的消息数量是否达到了配置的最大消息合并长度,如果是,则继续步骤(2.6);否则,继续(2.5);(2.4)消息待处理列表不为空时,计算当前系统的时间和最后一次进行消息批量处理时间的时间差,判断时间差是否大于或等于配置的带处理消息最长等待时间,如果是,则继续步骤(2.5);否则,继续步骤(2.2);(2.5)达到最大合并消息数或最长等待时间时,提取带处理消息列表中的消息,生成新的待处理消息数组;(2.6)所述的消息分发模块使用新的待处理消息数组构造新的消息发送处理线程,将消息发送现场加入到消息发送线程池中执行;(2.7)所述的消息分发模块将原来列表中的带处理信息清空用于下次使用,更新最后一次处理待处理列表中的消息的时间为当前时间,继续步骤(2.2)。5.根据权利要求4所述的基于NIO针对大数据分布式系统进行消息...
【专利技术属性】
技术研发人员:李丹超,骆宇园,王克强,张志平,
申请(专利权)人:普元信息技术股份有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。