草庐IT

java - 部署在 Wildfly 8.2.1 上的 Java 8 应用的 Metaspace 内存消耗问题

问题描述我注意到,我们的Java8应用程序之一在Wildfly8.2.1上的每次部署都会使用元空间内存池中的大约30-40MB。这很好,但问题是,一旦我重新部署同一个应用程序,Metaspace内存使用量就会增加同样的30-40MB,而旧的已经分配的内存不会被释放。我什至不会注意到它,但问题是我们有大约20个应用程序,有时我需要同时重新部署多达10个应用程序。这反过来会导致一幅可怕的画面。基本上显示的是大约10个应用程序的2次重新部署。我不确定为什么GC不能释放分配给旧类的内存。该服务器总共有16GB物理内存,因此我可以重新部署所有应用程序多达20-40次,仅此而已。应用服务器将达到限

java - 在 Java 中连续处理异步队列的最佳方法是什么?

我很难弄清楚如何构建我的系统的最后一部分。目前我正在运行一个Tomcat服务器,它有一个响应客户端请求的servlet。每个请求依次将处理消息添加到异步队列(我可能会通过Spring或更可能使用AmazonSQS使用JMS)。事件的顺序是这样的:发送方:1.接受客户请求2.将一些数据添加到具有唯一ID的与此请求相关的数据库中3.在消息队列中添加一个代表本次请求的消息对象接收方:1.从队列中拉取一个新的消息对象2.展开对象并根据包含在msg对象中的信息从网站获取一些信息。3.发送电子邮件提醒4.使用已针对此请求完成操作的信息更新我的数据库行(相同的唯一ID)。我很难弄清楚如何正确处理接收

java - 我如何控制 Spring 从队列接收的速率?

我正在使用Spring的消息驱动POJO框架(尤其是DefaultMessageListenerContainer)来监听多个队列和主题。在一个特定队列的情况下,需要减慢我排空队列的速度,大约每五分钟一条消息。消息的实际处理是亚秒级操作,但我希望监听器在消息之间闲置一段时间。我创建了一些hack,但绝对不是最优的:我所做的是将最大并发设置为1并添加一个Thread.sleep(..)处理每条消息后。我想找到一种方法,而不是使用DefaultMessageListenerContainer在尝试接收之间等待,而不是让处理程序在可能处理消息的过程中进行等待。我考虑过是否有一个Schedul

WSO2 ESB消息处理器:未接收Javax.jms.objectMessage

我插入了一些json内容中的内容queue的WSO2MessageBroker使用API的WSO2ESB:在这一点API,我在json响应endpoint并将订单插入一个MessageBroker'squeue使用此sequence:然后,我创建了一个MessageProcessor在WSO2ESB,因为我想在orders_mb上消耗这些消息queue然后在另一个sequence。这是MessageStore和MessageProcessor:org.wso2.andes.jndi.PropertiesFileInitialContextFactoryrepository/conf/jndi.

java - 如何从 Web 应用程序收听消息队列? (Tomcat, ActiveMQ)

我很高兴改进我在ApacheTomcat上运行的网络应用程序。添加了一个ActiveMQJMS服务器来发送和接收消息。我已经可以发送和接收消息,但在接收方方面需要帮助。我的网络应用程序应该如何持续监听一个队列以接收消息?新消息到达,服务器应对它们采取行动。例如:将数据添加到数据库或发回消息。我已经可以发送消息了。这是代码。ActiveMQConnectionFactoryfactory=newActiveMQConnectionFactory("tcp://localhost:61616");Connectionconnection=factory.createConnection()

java - 在 Java 中动态创建异步消息队列

我需要在Java中动态创建异步消息队列。我的用例是通过多个SMTP服务器发送电子邮件:我需要强制顺序处理发送到同一SMTP服务器的电子邮件,但可以同时处理发送到不同SMTP服务器的电子邮件。我过去使用过JMS,但据我所知,它只允许在编译时创建队列,而我需要在运行时创建队列(每个SMTP服务器一个队列)。我是否遗漏了一些关于JMS的信息,或者是否有其他一些我应该看看的工具/建议? 最佳答案 我同意Adam的观点,这个用例听起来像是JMS的开销。足够的Java内置功能:packagede.mhaller;importjava.util.

java - JMS 消息大小

我目前正在为使用JMS(即Spring框架JMS和ActiveMQ)的应用程序开发带宽限制功能(不要问我为什么,这不是我的决定)以在服务器和客户端之间发送带有负载的消息。我发现了很多限制传入JMS消息的节流方法(但没有一个基于实际带宽负载),但是我没有找到任何可能的方法来限制传出消息流。所以我决定写Leakybucketalgorithm靠我自己。有什么方法可以获取JMS消息的大小吗?除了Java中的“sizeof”实现(InJava,whatisthebestwaytodeterminethesizeofanobject?) 最佳答案

java - 使用 Java 管理非常长时间的操作

实际上,我有以下流程:用户点击“大操作”按钮;它调用RESTful服务;其余服务调用HugeOpServiceBean,它是一个EJB;此EJB将通知JMS队列执行HugeOperation;这个HugeOperation可以有两个或多个实现,因此,每个正在监听它的MDBean都会运行(这意味着它可能在另一个.ear中)我想听听你们如何做或建议我让我能够获得这些MDBeans的“状态”。基本上,每个MDBean都会运行一些对象类型列表中的一些方法,因此,计算完成的百分比应该很容易,我只是不知道如何以及哪个是我可以做出的最好的架构决策来使它易于访问在一些RESTful服务中。提前致谢。

java - 在 JMS 上找不到带有 JNDI 的 ConnectionFactory

我是JMS的新手,我正在尝试加载connectionFactory。我遵循了几个教程,但由于某种原因它似乎不起作用,每次我尝试“.lookup”connectionfactory时都会出现异常。我正在使用JBoss7.1。这是我试图从中获取connectionFactory的类:publicclassQueueSendextendsFrameimplementsActionListener{privateQueueConnectionFactoryqconFactory;privateQueueConnectionqcon;privateQueueSessionqsession;pri

java - 使用 JAVA 在 JMS 队列中发布消息

我是JMS的新手,经过长时间的研究,我用谷歌搜索了一个连接到JMS的代码并发布了一条消息。问题是我需要在远程队列中发布消息,但我不确定如何与它建立连接并发布消息。服务器类型:TIBCOEMS服务器主机:**.*****.net端口:***用户名:用户密码:user123队列:*.*...。订单.管理..1我想建立连接,发布一个简单的消息并取回它。请帮忙!提前致谢我从互联网上得到的代码importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.