小编Bur*_*ong的帖子

嵌入式ActiveMQ的启动错误:临时存储限制为51200 mb

我有一个Spring Web应用程序,它将发送和监听独立的ActiveMQ.当我启动Web应用程序时,它显示:

20:12:52.684 [localhost-startStop-1] ERROR o.a.activemq.broker.BrokerService - Temporary Store limit is 51200 mb, whilst the temporary data directory: /root/activemq-data/localhost/tmp_storage only has 29021 mb of usable space
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索并阅读了很多文章,他们都参考配置代理和systemusage来限制临时存储大小.但是,我不知道如何在Spring配置中执行此操作.下面是我的配置XML.

<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="${jms.broker_url}" />
</bean>
<bean id="cachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
    <property name="targetConnectionFactory" ref="connectionFactory" />
    <property name="sessionCacheSize" value="10" />
</bean>

<bean id="recvQueue" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg value="q.recv" />
</bean>
<bean id="sendQueue" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg value="q.send" />
</bean>
<bean id="notifyQueue" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg value="q.notify" />
</bean>

<!-- Spring JMS Template -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="cachingConnectionFactory" /> …
Run Code Online (Sandbox Code Playgroud)

java spring activemq-classic

8
推荐指数
2
解决办法
1万
查看次数

ConcurrentUpdateSolrClient如何处理更新请求?

我的应用程序打算定期向 Solr 插入文档。有两个考虑因素:

  1. 向 Solr 发送更新请求是对性能的关键影响。
  2. 事务的线程安全。SolrClient的提交不是线程安全的(如果我错了请指出),当多个用户向Solr输入文档时这可能会导致严重的问题。

我发现了ConcurrentUpdateSolrClient一种候选解决方案,它是线程安全的,并且它有一个队列可以在一个连接中缓冲和刷新许多文档。但当我测试它时我很困惑。我的问题是,

  1. 如果我设置了队列大小,我还需要提交吗?
  2. 如果我提交,即使队列中只有一个文档,它仍然向 Solr 提交一个 http 请求。我可以让它作为消息队列工作吗?

multithreading solr solrj

2
推荐指数
1
解决办法
3287
查看次数

标签 统计

activemq-classic ×1

java ×1

multithreading ×1

solr ×1

solrj ×1

spring ×1