如何提高在Spring Boot中使用MQ JMS的效率 -Mark Taylor
Spring框架為Java程式使用各種介面提供了簡單的方法。它的JMS元件包括一些類,這些類可幫助程式等待新訊息,類似於訊息驅動Bean。已知使用IBM MQ時,Spring實現的預設行為不是最佳的,我想提高效率。
本文顯示了對Spring Boot和相應的MQ JMS Spring Boot元件的最新改進。他們消除了應用程式開發人員瞭解和編寫程式碼以解決這種低效率的需求。
有關MQ Spring Boot Starter的更多資訊,請參見本文。
保羅寫了關於輪詢監聽的行為的詳細資訊,這篇文章。但總而言之,使用Spring DefaultMessageListenerContainer實現輪詢方法來接收JMS訊息。本質上它在做:
while (no message received) { MQGET(wait for receiveTimeout value) see if anything else needs to be done } |
receiveTimeout設定了輪詢迴圈有多快。該值對於處理到達的訊息的響應速度無關緊要,無論設定引數多少,只要輸入佇列中有可用的訊息,便會立即讀取該訊息。但是,將其設定為高值將意味著可能需要處理的其他事情(例如,Spring Framework可能正在尋找關閉請求)會延遲到計時器到期為止。因此,調值非常重要。預設值為1秒,這可能意味著發出的MQGET數量遠遠超過期望的數量。
Spring Boot版本2.2.0以上半比可以為JMS偵聽器設定外部計時引數:spring.jms.listener.receive-timeout=30s,在屬性檔案中設定。
MQ Spring Boot 2.2.0版將檢測spring.jms.listener.receive-timeout是否存在外部屬性配置,如果找到,則將使用新值。如果未設定,則該值將自動從1s更改為30s。當然,如果應用程式程式碼稍後再設定該值,則優先使用該值。
如果將Spring Boot與MQ JMS一起使用,則現在可以更好地利用MQ資源,而無需進行應用程式更改。現有應用程式僅透過使用當前版本的mq-jms-spring-boot-starter進行構建即可自動獲得此增強。
相關文章
- 六,Spring Boot 容器中 Lombok 外掛的詳細使用,簡化配置,提高開發效率Spring BootLombok
- Spring Boot:使用Rabbit MQ訊息佇列Spring BootMQ佇列
- 如何提高使用Java反射的效率?Java反射
- 透過Docker啟動Solace,並在Spring Boot透過JMS整合SolaceDockerSpring Boot
- 如何使用Spring Boot的ProfilesSpring Boot
- 在spring boot3中使用native imageSpring Boot
- 在 Spring Boot 中使用 RedisSpring BootRedis
- 如何使用ParcelJS在Spring Boot應用程式中打包前端 - codecentric AG BlogJSSpring Boot前端
- spring boot中zookeeper使用Spring Boot
- spring boot中redis使用Spring BootRedis
- ArrayMap是如何提高記憶體的使用效率的?記憶體
- Spring Boot中如何使用Ostara監控應用?Spring Boot
- 在Spring Boot框架中使用AOPSpring Boot框架
- 善用快取提高你的SPRING工程效率快取Spring
- 如何在spring boot 使用 gitlab的ApiSpring BootGitlabAPI
- 在spring boot專案(maven)中引入其他 spring boot專案Spring BootMaven
- Docker中Mq的使用DockerMQ
- springboot(十一):Spring boot中mongodb的使用Spring BootMongoDB
- Spring Boot中攔截器的使用Spring Boot
- 在不同的專案管理實踐中,如何提高運營效率和創收?專案管理
- 如何提高介面測試的效率
- 如何提高App開發的效率?APP
- 在 Laravel 中使用 TypeScript 、CoffeeScript 、pug 提高開發效率LaravelTypeScript
- 在 Kubernetes 上使用Spring Boot+ActiveMQSpring BootMQ
- 在Spring Boot中建立自己的啟動器Spring Boot
- EVCache快取在 Spring Boot中的實戰快取Spring Boot
- 在Java Spring Boot中的Akka流! -Lalit VatsalJavaSpring Boot
- 在Spring Boot中禁用CSRF保護的原因?Spring Boot
- 嵌入式Redis伺服器在Spring Boot測試中的使用Redis伺服器Spring Boot
- Spring Boot(三):Spring Boot中的事件的使用 與Spring Boot啟動流程(Event 事件 和 Listeners監聽器)Spring Boot事件
- Spring Boot中如何幹掉if elseSpring Boot
- AspectJ 在 Spring 中的使用Spring
- 在 Spring Boot 中使用 HikariCP 連線池Spring Boot
- 在 Spring Boot 中使用搜尋引擎 ElasticsearchSpring BootElasticsearch
- 如何提高Java學習效率Java
- 專案管理效率如何提高?專案管理
- 如何使用Git提高研發團隊工作效率?Git
- 【Java面試】如何理解Spring Boot中的Starter?Java面試Spring Boot