第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何修復(fù) ActiveMQ 持久訂閱拋出“持久消費(fèi)者已在使用”錯(cuò)誤

如何修復(fù) ActiveMQ 持久訂閱拋出“持久消費(fèi)者已在使用”錯(cuò)誤

慕容3067478 2023-04-26 10:37:07
我正在嘗試編寫一個(gè)基本的 ActiveMQ 客戶端來收聽一個(gè)主題。我正在使用 Spring Boot ActiveMQ。我有一個(gè)基于使用 DefaultJmsListenerContainerFactory 的各種教程構(gòu)建的實(shí)現(xiàn),但我在使其正常工作時(shí)遇到了一些問題。@Configuration@EnableJmspublic class JmsConfig {    @Bean    public DefaultJmsListenerContainerFactory jmsContainerFactory(ConnectionFactory connectionFactory,                                                                  DefaultJmsListenerContainerFactoryConfigurer configurer) {        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();        factory.setConcurrency("3-10");        factory.setConnectionFactory(connectionFactory);        configurer.configure(factory, connectionFactory);       factory.setSubscriptionDurable(true);       factory.setClientId("someUniqueClientId");       return factory;   }}@JmsListener(destination="someTopic", containerFactory="jmsContainerFactory", subscription="someUniqueSubscription")public void onMessage(String msg) {    ...}一切正常,直到我嘗試進(jìn)行持久訂閱。當(dāng)我這樣做時(shí),我發(fā)現(xiàn)在容器工廠上設(shè)置了客戶端 ID 時(shí),我收到有關(guān)無法在共享連接上設(shè)置客戶端 ID 的錯(cuò)誤。Cause: setClientID call not supported on proxy for shared Connection. Set the 'clientId' property on the SingleConnectionFactory instead.當(dāng)我更改代碼以在連接工廠上設(shè)置客戶端 ID(它是一個(gè)包裝 ActiveMQConnectionFactory 的 CachingConnectionFactory)時(shí),服務(wù)成功啟動(dòng),讀取幾條消息,然后開始持續(xù)輸出此錯(cuò)誤:Setup of JMS message listener invoker failed for destination 'someTopic' - trying to recover. Cause: Durable consumer is in use for client: someUniqueClientId and subscriptionName: someUniqueSubscription我繼續(xù)收到消息,但這個(gè)錯(cuò)誤也混雜在日志中。這似乎是一個(gè)問題,但我真的不清楚如何解決它。我確實(shí)有一個(gè)沒有任何 spring 代碼的天真實(shí)現(xiàn),直接使用 ActiveMQConnectionFactory 并且似乎很高興使用持久消費(fèi)者(但它有自己的不同問題)。無論如何,我不認(rèn)為這是缺乏對(duì)另一端持久連接的支持。我希望在這方面有更多經(jīng)驗(yàn)的人可以幫助我弄清楚這個(gè)錯(cuò)誤是否是我可以忽略的,或者我需要做些什么來解決它。
查看完整描述

1 回答

?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊

JMS 1.1(這是您使用的,因?yàn)槟褂玫氖?ActiveMQ 5.x)不支持共享持久訂閱。因此,當(dāng)您使用setConcurrency("3-10")并且 Spring 嘗試創(chuàng)建 > 1 個(gè)訂閱時(shí),您會(huì)收到一個(gè)錯(cuò)誤。我看到解決這個(gè)問題的兩種主要方法:

  1. 使用setConcurrency("1")它將訂閱者/消費(fèi)者的數(shù)量限制為 1。根據(jù)您的要求,這可能會(huì)對(duì)性能產(chǎn)生嚴(yán)重的負(fù)面影響。

  2. 切換到支持JMS 2.0的ActiveMQ Artemis并調(diào)用.setSubscriptionShared(true)


查看完整回答
反對(duì) 回復(fù) 2023-04-26
  • 1 回答
  • 0 關(guān)注
  • 287 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)