消息队列RabbitMQ的Direct类型消息多节点集群消费
在上一章/rabbitmq-direct-exchange.html我们讲解到了RabbitMQ
消息队列的DirectExchange
路由键消息单个消费者消费,源码请访问SpringBoot对应章节源码下载查看,消息队列目的是完成消息的分布式消费,那么我们是否可以为一个Provider
创建并绑定多个Consumer
呢?
在上一章/rabbitmq-direct-exchange.html我们讲解到了RabbitMQ
消息队列的DirectExchange
路由键消息单个消费者消费,源码请访问SpringBoot对应章节源码下载查看,消息队列目的是完成消息的分布式消费,那么我们是否可以为一个Provider
创建并绑定多个Consumer
呢?
消息队列目前流行的有KafKa、RabbitMQ、ActiveMQ等,它们的诞生无非不是为了解决消息的分布式消费,完成项目、服务之间的解耦动作。消息队列提供者与消费者之间完全采用异步通信方式,极力的提高了系统的响应能力,从而提高系统的网络请求吞吐量。
每一种的消息队列都有它在设计上的独一无二的优势,在实际的项目技术选型时根据项目的需求来确定。
在上一章中我们已经完成了任务的持久化,当我们创建一个任务时任务会被quartz
定时任务框架自动持久化到数据库,我们采用的是SpringBoot
项目托管的dataSource
来完成的数据源提供,当然也可以使用quartz
内部配置数据源方式,我们的标题既然是提到了定时任务的分布式多节点,那么怎么才算是多节点呢?当有节点故障或者手动停止运行后是否可以自动漂移任务到可用的分布式节点呢?
定时任务在企业项目比较常用到,几乎所有的项目都会牵扯该功能模块,定时任务一般会处理指定时间点执行某一些业务逻辑、间隔时间执行某一些业务逻辑等。
在中大型企业项目开发中,环境分离是必不可少的一步,然而现在的开发人员也只是有这个概念,还是有很多项目采用普通的方式,每次打包发布部署的时候改动一大堆的配置文件,有一个地方忘记改就相当于白更新了一次系统,这种修改配置文件完成环境更换的方式给我们带来了很多的困扰,浪费了我们很多宝贵的时间!早在Spring 3.1
版本就已经为我们提供了环境分离的相关注解配置方式,不过在传统的Spring项目中配置Profile
确实有点麻烦,在Spring
版本的不断更新直到后来SpringBoot
成长起来后Profile
已经能够很好支持项目配置环境分离。
在国内企业开发项目中大多数都已经偏向Spring
家族式的开发风格,在前几年国内项目都是以Structs2
作为Web
开发的主导,不过由于近几年发生的事情确实让开发者对它失去了以往的信心。与此同时Spring
家族发布了SpringMVC
,而且完美的整合Spring
来开发企业级大型Web
项目。它有着比Structs2
更强大的技术支持以及更灵活的自定义配置,接下来我们就看看本章的内容,我们自定义实现SpringMVC
参数绑定规则,根据业务定制参数装载实现方式。
WebMvcConfigurerAdapter
配置类其实是Spring
内部的一种配置方式,采用JavaBean
的形式来代替传统的xml
配置文件形式进行针对框架个性化定制,下面我们来看一下该类内的常用方法。
Banner
是SpringBoot
框架一个特色的部分,其设计的目的无非就是一个框架的标识,其中包含了版本号、框架名称等内容,既然SpringBoot
为我们提供了这个模块,它肯定也是可以更换的这也是Spring
开源框架的设计理念。