深入理解RocketMq普通消息和顺序消息使用,原理,优化
最近一直再做一些系统上的压测,并对一些问题做了优化,从这些里面收获了一些很多好的优化经验,后续的文章都会以这方面为主。
最近一直再做一些系统上的压测,并对一些问题做了优化,从这些里面收获了一些很多好的优化经验,后续的文章都会以这方面为主。
在这次SpringBoot
升级后,之前的系统内使用实体传输受到了限制,如果使用SpringBoot
默认的序列化方式不会出现信任package
的问题,之所以出现这个问题是因为项目使用fastjson
方式进行类的序列化
已经反序列化
,在之前SpringBoot 1.5.10
版本的时候 RabbitMQ
依赖内的DefaultClassMapper
类在构造函数内配置*
,表示信任项目内的所有package
,在SpringBoot 2.0.0
版本时,DefaultClassMapper
类源码构造函数进行了修改,不再信任全部package
而是仅仅信任java.util
、java.lang
。
在2018-3-1
日SpringBoot
官方发版了2.0.0.RELEASE
最新版本,新版本完全基于Spring5.0
来构建,JDK
最低支持也从原来的1.6
也改成了1.8
,不再兼容1.8
以下的版本,更多新特性请查看官方文档。
我们在之前的两个章节第四十一章: 基于SpringBoot & RabbitMQ完成DirectExchange分布式消息消费、第四十二章: 基于SpringBoot & RabbitMQ完成DirectExchange分布式消息多消费者消费提高了RabbitMQ
消息队列的DirectExchange
交换类型的消息消费,我们之前的章节提到了RabbitMQ
比较常用的交换类型有三种,我们今天来看看TopicExchange
主题交换类型。
在上一章/rabbitmq-direct-exchange.html我们讲解到了RabbitMQ
消息队列的DirectExchange
路由键消息单个消费者消费,源码请访问SpringBoot对应章节源码下载查看,消息队列目的是完成消息的分布式消费,那么我们是否可以为一个Provider
创建并绑定多个Consumer
呢?
消息队列目前流行的有KafKa、RabbitMQ、ActiveMQ等,它们的诞生无非不是为了解决消息的分布式消费,完成项目、服务之间的解耦动作。消息队列提供者与消费者之间完全采用异步通信方式,极力的提高了系统的响应能力,从而提高系统的网络请求吞吐量。
每一种的消息队列都有它在设计上的独一无二的优势,在实际的项目技术选型时根据项目的需求来确定。