springcloud ActiveMQ設置多個並行消費者

仍是結合實際項目說把,最近在作跟保險公司和第三方借貸平臺對接的項目;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

相關文章
相關標籤/搜索