Tag: jms

哪个embedded式消息系统 – > ActiveMQ或者HornetQ

我将不胜感激关于两个消息系统中的哪一个的一般指针和意见 更容易pipe理 有一些需要知道和避免的陷阱或魔法的东西 具有较less的整体依赖性 很简单的工作。

JMS连接,会话和生产者/消费者之间的关系

我想发送一批20k JMS消息到同一个队列。 我使用10个线程分割任务,所以每个线程都会处理2k个消息。 我不需要交易。 我想知道是否有一个连接,一个会话,10个生产者是否是推荐的方式? 如果我有一个生产者共享所有线程怎么样? 我的邮件是否会被损坏或是否会被同步发送(不会提高性能)? 如果我总是连接到相同的队列,那么决定是否创build新连接或会话的一般准则是什么? 谢谢你,很抱歉,一次问很多。 (这里有一个类似的问题,但是它并没有完全回答我正在寻找的东西。 长时间的JMS会话。保持JMS连接/ JMS会话总是打开一个不好的实践? )

RabbitMQ与Mule相比如何?

RabbitMQ如何与Mule进行比较,我将使用面向消息的体系结构构build一个应用程序,而AMQP(RabbitMQ)则提供了我想要的所有东西,但是我对如此多的相关技术select以及类似的ESB概念感到困惑。 如果我不考虑其他select而做出select,我有疑问。 我大多清楚,RabbitMQ是一个消息代理,它可以帮助我调解生产者和消费者之间的消息(所有表单或发布订阅,我可以理解它是如何使用像twitter或Facebook更新等实际的例子) 什么是mule,如果我能用mule子来实现我在RabbitMQ上做的事情,我该认为mule子与RabbitMQ相似吗? mule子有一个不同于消息经纪人的目标吗? mule是否假定它有一个消息代理将消息传递给适当的mule监听器(我可以在RabbitMQ中轻松地编写监听器) mule是一个完整的Java基础系统(目前我用RabbitMQ做的实验花了我不到30分钟,写一个简单的RPC客户端服务器,客户端为C#和服务器为Java,这样的事情会在mule轻松地完成)。

Java RMI和JMS有什么区别?

在Java中devise分布式应用程序时,似乎有一些技术可以解决同样的问题。 我简要阅读了Java远程方法调用和Java消息服务 ,但很难真正看出差异。 Java RMI似乎比JMS更紧密的耦合,因为JMS使用asynchronous通信,但是除此之外,我没有看到任何大的差异。 他们有什么区别? 其中一个比另一个新? 哪一种在企业中比较普遍/受欢迎? 他们彼此有什么优势? 什么时候比其他人更喜欢? 他们在执行方面有多难? 我也认为Web服务和CORBA解决了同样的问题。

javax.jms。*类的正确Maven依赖关系是什么?

我需要导入javax.jms.*类。 什么是正确的依赖包含到Maven项目中? 我试图javax.jms:jms:1.1 ,但没有运气(这是POM,而不是jar子)。 PS。 目前唯一的解决方法是: javax:javaee-api:6.0 (来自Maven Central)。

你使用哪个JMS实现?

我们使用ActiveMQ 5.2作为我们的select的实现,我们select了一段时间。 它的performance足够好,现在我们的使用。 自从有一段时间以来,我想知道还有哪些Java消息服务实现正在使用,为什么? 当然有不止几个。

ActiveMQ:如何在使用临时队列时处理代理故障转移

在我的JMS应用程序上,我们使用生产者上的临时队列来接收消费者应用程序的回复。 我在这个线程中提到了完全相同的问题: http : //activemq.2283324.n4.nabble.com/jira-Created-AMQ-3336-Temporary-Destination-errors-on-HA-failover-in -broker-networking与故障转移-TT-td3551034.html#a3612738 每当我在我的networking中重新启动一个任意的代理时,我在使用消息应用程序日志中收到许多像这样的错误,同时尝试将答复发送到临时队列: javax.jms.InvalidDestinationException: Cannot publish to a deleted Destination: temp-queue://ID:… 然后,我看到加里在那里build议使用的回应 jms.watchTopicAdvisories=false 作为客户端brokerURL上的url参数。 我立即用这个额外的参数改变了我的客户经纪人url。 但是,现在我看到像这样的错误,当我重新启动networking中的经纪人进行此故障转移testing: javax.jms.JMSException: The destination temp-queue: //ID:client.host-65070-1308610734958-2:1:1 does not exist. 我正在使用ActiveMQ 5.5版本。 而我的客户代理url如下所示: failover:(tcp://amq-host1:61616,tcp://amq-host2.tred.aol.com:61616,tcp://amq-host3:61616,tcp://amq-host4:61616)?jms.useAsyncSend=true&timeout=5000&jms.watchTopicAdvisories=false 另外这里是我的四个经纪人之一的activemqconfigurationXML: amq1.xml 这里有人可以看看这个问题,并build议我在这个设置中犯了什么错误。 更新: 进一步澄清我在我的代码中如何做请求 – 响应: 我已经使用每个生产者的目的地(即临时队列),并将其设置在每封邮件的回复标题中。 我已经在JMSCorrelationID标头中发送了每个消息的唯一关联标识符。 据我所知即使骆驼和Spring也在使用临时队列来请求响应机制。 唯一不同的是,Spring JMS实现为每个消息创build和销毁临时队列,而我为生产者的生命周期创build临时队列。 当客户端(生产者)应用程序closures时,此临时队列被销毁,或者当AMQ代理程序意识到没有活动的生产者与此临时队列连接时,此临时队列被销毁。 我已经在Producer端的每条消息上设置了一个消息过期,这样消息就不会在队列中被搁置太久(60秒)。

ActiveMQ vs阿波罗vs卡夫卡

我以前没有任何关于* MQ的经验,我正在寻求build立关于JMS和消息队列的知识。 那样的话,我想知道我应该从ActiveMQ开始,还是完全“忽略”它,并开始自学阿波罗。 Apollo与ActiveMQ一样function齐全吗? 它是否实现JMS 2.0(我看到ActiveMQ被困在1.1)? 我会错过一些非常重要的东西吗? 另外,卡夫卡如何比较这两个解决scheme?

为什么在将客户端JBoss连接回收到远程队列之后仍然抛出SpyJMSExceptionexception?

我的应用程序在JBoss 7.2.0系统上作为客户端与JBoss 4.2.1系统上的接收者JNDI / JMS进行通信。 它创build一个发送队列和一个接收队列。 这个configuration我们已经连续运行了两个月。 双方都没有改变。 本地客户端应用程序安装了4.2.1 jbossall-client.jar和jnp-client.jars。 在正常的活动之后,我们开始接收一个org.jboss.mq.SpyJMSException: Exiting on IOE; – nested throwable: (java.io.EOFException) at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:72) org.jboss.mq.SpyJMSException: Exiting on IOE; – nested throwable: (java.io.EOFException) at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:72)exception。 我们重新启动了JBoss 7.2.0而不做任何改变,当我们build立接收队列时,我们现在正在接收一个org.jboss.mq.SpyJMSException: Cannot subscribe to this Destination: ; {…} Caused by: java.io.EOFException org.jboss.mq.SpyJMSException: Cannot subscribe to this Destination: ; {…} Caused by: java.io.EOFException在我们的QueueReceiver receiver = […]

JMS的好处是什么?

我正在寻找(简单的)JMS是一个很好的解决scheme的问题的例子,也是为什么JMS在这些情况下是一个好的解决scheme的原因。 在过去,我只是简单地使用数据库作为将消息从A传递给B的手段,而消息不一定要立即由B处理。 这种系统的一个假设例子是,所有新注册的用户都应在注册后的24小时内收到欢迎电子邮件。 为了说明起见,假设数据库不logging每个用户注册的时间,而是将每个新用户的引用(外键)存储在pending_email表中。 电子邮件发件人作业每24小时运行一次,向该表中的所有用户发送电子邮件,然后删除所有pending_emaillogging。 这似乎是JMS应该使用的那种问题,但是我不清楚JMS对于我所描述的方法有什么好处。 DB方法的一个优点是消息是持久的。 我知道JMS消息队列也可以被持久化,但是在这种情况下,JMS和我所描述的“数据库作为消息队列”方法似乎没什么区别? 我错过了什么? – 唐