SpringCloud + RabbitMQ一个消费者配置多生产者以及重试机制(没电脑未完成)

MQ是分布式系统中的一种通信手段,是中高级开发必备的技能。如果是小体量的项目或者产品,直接用单体,用到的中间件也少,但是当业务一点点扩大,用户量增多,需求增加,必定会微服务的设计思想,分布式的部署方式,随着体量增加,肯定会遇到性能瓶颈,这时候就需要引入中间件,而消息队列就是其中比较常见的一个。

目前消息队列的主要作用就是:异步、削峰、解耦。

比如一个支付场景下,需要走到的流程是:支付->累计积分->下发优惠券->短信通知

SpringCloud + RabbitMQ一个消费者配置多生产者以及重试机制(没电脑未完成)

这样一套流程,如果是不停的在各个微服务间调用远程接口,按顺序走下来,这样势必会增加接口的响应时间,会影响到用户体验。

这种场景下就可以使用到MQ。

SpringCloud + RabbitMQ一个消费者配置多生产者以及重试机制(没电脑未完成)

不过还是会面临重复消费、顺序消费,消息丢失的问题。

 在我们当前的业务场景下使用了MQ去同步一些数据,一个消费者配了两个生产者,其中一个生产者在接收到数据的时候需要进行一些处理,但是如果处理的时候出现了错误,这不会报异常,而是不停地在重试,导致log几分钟内就到了上百兆

上一篇:第三天


下一篇:android – 如何在摇动设备时刷新应用程序?