DSP功能微服务化系统的制作方法

文档序号:20486699发布日期:2020-04-21 21:43阅读:284来源:国知局
DSP功能微服务化系统的制作方法

本发明涉及dsp技术领域,具体涉及dsp功能微服务化系统。



背景技术:

传统的互联网dsp广告投放系统的实现都是把整个业务看成一个整体,所有功能模块都集成在一个系统中,是偏向系统开发。传统开发模式下,当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,便造成了整个dsp系统的瓶颈。



技术实现要素:

本发明的目的是克服现有技术的不足和缺陷,提供一种dsp功能微服务化系统。

本发明的目的是通过以下技术方案来实现的:

dsp功能微服务化系统,包括:应用层、dsp基础架构层、nginx层、微服务器层和rabbitmq队列层,

应用层:创建计划和/或素材和/或报表请求并将计划请求传输至dsp基础架构层的相对应的模块内;接收微服务器层结果的反馈;

dsp基础架构层:dsp基础架构层解耦成计划模块、素材模块和报表模块,计划模块、素材模块和报表模块接收应用层对应的的计划和/或素材和/或报表请求,并将计划和/或素材和/或报表请求发送到nginx层相对应的nginx服务器;

nginx层:nginx层具有分别与计划模块、素材模块和报表模块相对应的计划nginx服务器、素材nginx服务器和报表nginx服务器,nginx层接收dsp基础架构层相对应计划模块、素材模块和报表模块的数据,分别运用对应的nginx服务器、素材nginx服务器和报表nginx服务器运用负载均衡算法进行数据处理,根据负载均衡算法将请求分配到微服务器层中相对应的计划微服务服务器、素材微服务服务器和报表微服务服务器上;

微服务器层:微服务器层包括计划微服务服务器、素材微服务服务器和报表微服务服务器,计划微服务服务器、素材微服务服务器和报表微服务服务器上接收nginx层对应的数据请求进行处理,并将结果反馈给应用层,当微服务器层处理当前事务的微服务器要和其他微服务器交互时则处理当前事务的微服务器会将消息传输至rabbitmq队列层;微服务器层还对rabbitmq队列层传输过来的数据进行处理;

rabbitmq队列层:接受微服务器层传输的消息事件,并将消息事件转发至相应的微服务器。

具体的,所述dsp基础架构层采用php运行方式运行,所述php结合swoole进行运行。

具体的,rabbitmq队列层内的消息队列进行异步通讯。

具体的,所述dsp功能微服务化系统采用mysql执行分布式事务。

本发明相比现有技术包括以下优点及有益效果:

(1)本发明通过将dsp基础架构层解耦成计划模块、素材模块和报表模块,将整个系统进行微服务化,使得整个dsp功能微服务化系统功能与职责分离,从而使得dsp系统更具扩展性和重复利用性。

(2)本发明通过php结合swoole进行运行,swoole能让php自带http服务器功能,并且能够常驻进程,从而只需要加载和编译一次代码,减少了每次请求重新加载的开销,提升了php的性能。

附图说明

图1为本发明的示意图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

如图1所示,dsp功能微服务化系统,包括:应用层、dsp基础架构层、nginx层、微服务器层和rabbitmq队列层,

应用层:创建计划和/或素材和/或报表请求并将计划请求传输至dsp基础架构层的相对应的模块内;接收微服务器层结果的反馈;应用层按需组合调用对应服务,无需重复开发运行,降低运行成本。

dsp基础架构层:dsp基础架构层解耦成计划模块、素材模块和报表模块,计划模块、素材模块和报表模块接收应用层对应的的计划和/或素材和/或报表请求,并将计划和/或素材和/或报表请求发送到nginx层相对应的nginx服务器;处理计划模块、素材模块和报表模块的nginx服务器均不相同,通过将dsp基础架构层解耦成计划模块、素材模块和报表模块,将整个系统进行微服务化,使得整个dsp功能微服务化系统功能与职责分离,从而使得dsp系统更具扩展性和重复利用性,并且各个模块独立部署,维护成本低。

nginx层:nginx层具有分别与计划模块、素材模块和报表模块相对应的计划nginx服务器、素材nginx服务器和报表nginx服务器,nginx层接收dsp基础架构层相对应计划模块、素材模块和报表模块的数据,分别运用对应的nginx服务器、素材nginx服务器和报表nginx服务器运用负载均衡算法进行数据处理,根据负载均衡算法将请求分配到微服务器层中相对应的计划微服务服务器、素材微服务服务器和报表微服务服务器上;通过nginx层进行负载均衡,将请求分散到各个服务器上,能够有效的降低io操作带来的阻塞事件,从而应对高并发;

微服务器层:微服务器层包括计划微服务服务器、素材微服务服务器和报表微服务服务器,计划微服务服务器、素材微服务服务器和报表微服务服务器上接收nginx层对应的数据请求进行处理,并将结果反馈给应用层,当微服务器层处理当前事务的微服务器要和其他微服务器交互时则处理当前事务的微服务器会将消息传输至rabbitmq队列层;微服务器层还对rabbitmq队列层传输过来的数据进行处理;

rabbitmq队列层:接受微服务器层传输的消息事件,并将消息事件转发至相应的微服务器。

整体系统均为采用领域驱动设计的思想建立领域模型,能够完整准确地描述业务领域需求,并驱动系统设计开发工作,有效降低了dsp功能微服务化系统的复杂性,有效提高了dsp功能微服务化系统的可维护性、可扩展性等质量属性。

具体的,所述dsp基础架构层采用php运行方式运行,所述php结合swoole进行运行,通常的php-fpm+nginx的运行方式,每当一个请求进来都会重新加载源码、编译然后执行,当项目庞大后,每次重新加载代码便成为了性能瓶颈。swoole能让php自带http服务器功能,并且能够常驻进程,从而只需要加载和编译一次代码,减少了每次请求重新加载的开销,提升了php的性能,另一个php的性能问题是,由于大多数web程序都是io密集型程序,而通常的php-fpm是一个请求开启一个线程去处理,当一秒内要同时处理高并发请求时,创建线程的开销会增大;swoole提供的协程模式,只需要一个进程,通过自身的协程调度来处理并发请求,从而减少了io的阻塞等待时间和大量线程之间的切换开销,提高了系统应用的性能。

具体的,rabbitmq队列层内的消息队列进行异步通讯。使用rabbitmq消息队列作为异步通讯因为其能支持路由、可靠性高、安全等特点。比如当计划的出价被修改后,计划服务会发送一条消息到消息队列,素材微服务服务器通过订阅该消息,得知有计划出价被修改后,将该计划下所有的素材价格同步更新。

具体的,所述dsp功能微服务化系统采用mysql执行分布式事务,通过采用mysql执行分布式事务能够保证接口调用中的数据最终一致性。

实施例1:当应用层需要创建计划,则通过http协议调用计划微服务,请求会发送至dsp基础架构层的计划模块内,计划模块会发送到nginx层的计划nginx服务器,计划nginx服务器运用负载均衡算法进行数据处理,根据负载均衡算法将请求分配到微服务器层中相对应的计划微服务服务器中,计划微服务服务器收到请求后会进行业务处理,如果需要其他微服务器交互,例如需要和素材微服务服务器或者报表微服务服务器交互时,则将消息事件发送至rabbitmq队列层进行队列,rabbitmq队列层将消息事件转发至相应的微服务器。

实施例2:当需要创建素材和/或报表时,只需要将实施例1中的计划模块换成素材模块和/或报表模块,计划nginx服务器换成素材nginx服务器和/或报表nginx服务器,计划微服务服务器换成素材微服务服务器和/或报表微服务服务器,其余步骤均相同,因此便不再赘述。

以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1