仍是结合实际项目说把,最近在作跟保险公司和第三方借贷平台对接的项目;html
其中须要第三方借贷平台借款并和保险挂对勾,也就是每次借钱的时候能够作一次保;spring
这里面正常状况下的逻辑场景:spa
借贷平台:借贷审核经过-->接收信息-->保险审核经过-->下发钱款通知APP执行出单;.net
APP:出单{保单建立-->保单核保-->保单支付-->保单承保-->回调通知完成}3d
其中核保、支付、承保都是对接的保险公司内部接口,他们这几个接口耗时分别是保单建立小于1s、核保1-3s、支付2-5s、承保1-3s,大体走完一个下单流程最快须要5s左右;日志
出单接口用消息队列彻底能hold住,刚开始测的时候没任何问题(此时尚未设置并行消费者个数),等上线以后第三方借贷平台大量放单进来致使这一个队列卡了几千条出单数据,等最后一单执行完毕,接收队列的时间是15:00:00,消费的时间是16:30:13,中间居然隔了1个小时,致使钱被用户取走,并未扣费成功;code
设置并行消费者我知道的有2种方式,可能还有其余的;htm
方式一:blog
在配置文件上直接作设置,jms是一个标准或者说是一个协议,activemq是jms的一种实现,因此配置spring jms监听就能够接口
yml文件:
spring: jms: listener: max-concurrency: 10 concurrency: 6
concurrency当前并行消费者数量;
max-concurrency当前并行消费者数量达到6以后会再开至最大10;
properties文件
spring.jms.listener.concurrency=6 spring.jms.listener.maxConcurrency=10
方式二:
在注解上设置,这个比较灵活,能够根据某个消费者的应用场景去设置
@JmsListener(destination = "issuePolicy", concurrency = "6")
concurrency设置当前并行消费者数量;
未设置并行消费者以前日志打印状况:
设置并行消费者以后日志打印状况:
转载请注明出处,谢谢!
如今人的素质都没有了,辛辛苦苦作的东西都被转载,又不注明出处,稍微改点东西就美其名曰本身原创?笑死我了,不屑于跟你计较;
上面这人某n抄袭地址:https://blog.csdn.net/u014209975/article/details/78599961
本人原创地址:https://www.cnblogs.com/zhouyantong/p/7682941.html