标签: activemq-classic

多播,消息传递,ActiveMQ与MSMQ?

我正在为我们的产品开发消息/通知系统.基本要求是:

  • 火与忘记
  • 持久性消息集,可能更新,留在那里直到发送者说要删除它们

这些库将用C#编写.Spring.NET刚刚发布了一个具有大量优秀消息抽象的里程碑版本,这很棒 - 我计划广泛使用它.我的基本问题归结为消息经纪人的问题.我的架构看起来像应用程序 - >消息代理队列 - >侦听的服务器应用程序,将所有消息分派到他们需要去的地方,并处理那些长期消息的生命周期 - >消息代理队列或主题 - >监听应用.

最后,问题是:我应该使用哪个消息代理?我偏向于ActiveMQ - 我们在上一个项目中使用它并喜欢它.我不能想到对它的单一攻击,除了它是Java,并且需要在某个地方的服务器上安装java,这对于将使用这项服务的一些人来说可能很难卖.我一直在关注的另一个选择是MSMQ.我出于某种未知原因对它有偏见,而且它似乎也没有很好的多播支持.

有没有人用MSMQ这样的东西?任何利弊,可能会以某种方式影响投票的东西?

最后一点,我们使用的是.NET 2.0.

messaging activemq-classic msmq

22
推荐指数
3
解决办法
2万
查看次数

RESTful v/s MQ.除保证交付之外的差异和其他关键功能

好的..所以我开始研究MQ及其目的/用例等...我现有的应用程序(使用JSP等制作的Web)使用RestFUL接口与远程服务器通信并从服务器发布/接收数据.

我们经常要处理远程服务器的连接问题.同步问题总是在那里.

从我们的结束发送的消息.但是远程服务器发生故障.或相反亦然.

我遇到了MQ的事情,并发现在从远程服务器发送和接收消息时它是可靠的.

但同样,使用REST我认为对MQ的整个需求似乎有点模糊.我基本上在寻找MQ和RestFUL之间的一些差异.

我在其他博客文章中看到,随着RestFUL领域研究的不断增加,MQ的速度将逐渐放松.

我对MQ没有太多了解,所以不会发表任何评论,但肯定与RestFUL合作很有趣.

如果有人提供使用RestFUL和MQ之间的差异,将不胜感激.

rest activemq-classic web-applications rabbitmq

22
推荐指数
3
解决办法
2万
查看次数

Active MQ与JBoss Messaging

我将为项目选择一个JMS消息代理.JMS服务器稳定并且可以处理大量消息是至关重要的.我缩小了列表以包含Active MQ和JBoss Messaging.

我想知道你是否有任何经验,甚至更好,在同一环境中尝试过这两种方法.任何研究论文或类似文件的链接都会很好.

java jboss activemq-classic jms

20
推荐指数
3
解决办法
2万
查看次数

避免在JMS/ActiveMQ上重复的消息

有一种方法可以抑制ActiveMQ服务器上定义的队列上的重复消息吗?

我尝试手动定义JMSMessageID,(message.setJMSMessageID("uniqueid")),但服务器忽略此修改并传递带有内置生成的JMSMessageID的消息.

根据规范,我没有找到关于如何重复删除邮件的参考.

在HornetQ中,为了解决这个问题,我们需要在消息定义上声明HQ特定属性org.hornetq.core.message.impl.HDR_DUPLICATE_DETECTION_ID.

即:

Message jmsMessage = session.createMessage();
String myUniqueID = "This is my unique id"; // Could use a UUID for this
message.setStringProperty(HDR_DUPLICATE_DETECTION_ID.toString(), myUniqueID);
Run Code Online (Sandbox Code Playgroud)

有人知道ActiveMQ是否有类似的解决方案?

java activemq-classic jms duplicates mom

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

如何在Ubuntu上运行Apache ActiveMQ的实例?

我刚刚apt-get在Ubuntu 11.10上安装了ActiveMQ .

每次我尝试启动它,我都可以在控制台中看到:

No instances found at /etc/activemq/instances-enabled.
Run Code Online (Sandbox Code Playgroud)

要启动服务我正在使用如下service命令:

$ sudo service activemq start
Run Code Online (Sandbox Code Playgroud)

它看起来像在Ubuntu上配置Apache2的方法,但我找不到任何关于如何管理实例的文档.也许这里的任何人都可以帮我一臂之力?

ubuntu activemq-classic

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

ACTIVEMQ-发布者订阅者hello world示例

有两个程序:订阅者和发布者...订阅者能够将消息放入主题并且消息成功发送.当我在浏览器上检查activemq服务器时,它显示1 msg排队.但是当我运行消费者代码时,它没有收到消息

这是生产者代码:

import javax.jms.*;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class producer {

    private static String url = ActiveMQConnection.DEFAULT_BROKER_URL;

    public static void main(String[] args) throws JMSException {

        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
        Connection connection = connectionFactory.createConnection();
        connection.start();

        // JMS messages are sent and received using a Session. We will
        // create here a non-transactional session object. If you want
        // to use transactions you should set the first parameter to 'true'
        Session session = connection.createSession(false,
                Session.AUTO_ACKNOWLEDGE);

        Topic topic = session.createTopic("testt"); …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic jms jmstemplate

20
推荐指数
2
解决办法
5万
查看次数

Kafka和ActiveMQ之间的区别

我已经工作Active MQ了很长时间并且熟悉Active MQ架构.最近我Kafka作为一个消息传递系统听到了很多.它与Active MQ和其他消息传递系统相比有哪些优势?它只是另一个大数据热门词吗?还kafka适用于零丢失消息系统吗?

activemq-classic apache-kafka

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

ActiveMQ故障转移传输 - 为什么这么多连接?

我们在经纪人网络中设置了4个ActiveMQ代理(每个代理在一个单独的服务器上运行).大约有60个生产者.生产者使用JDNI从Glassfish查找ActiveMQ连接工厂.

Glassfish中配置的ActiveMQ URI如下:

failover:(tcp://phxgapm01:61616,tcp://phxgapm02:61616,tcp://phxgapm03:61616,tcp://phxgapm04:61616)?randomize=true&backup=false&maxReconnectAttempts=8
Run Code Online (Sandbox Code Playgroud)

每个生成器进程执行javax.jms.ConnectionFactory的JNDI查找,然后创建1个javax.jms.Connection.当生成器运行时,它将定期创建一个javax.jms.Session和javax.jms.MessageProducer,将一些消息发送到队列,然后关闭Session和MessageProducer.

这就是所有背景 - 现在我的问题.从一些但不是所有的生产者,我们将看到如下的日志输出流:

2014-12-30 21:07:06,534 INFO  FailoverTransport    - Successfully connected to tcp://phxgapm03:61616 - [ActiveMQ Task-1]
2014-12-30 21:07:06,538 INFO  FailoverTransport    - Successfully connected to tcp://phxgapm04:61616 - [ActiveMQ Task-1]
2014-12-30 21:07:06,544 INFO  FailoverTransport    - Successfully connected to tcp://phxgapm02:61616 - [ActiveMQ Task-1]
2014-12-30 21:07:06,548 INFO  FailoverTransport    - Successfully connected to tcp://phxgapm04:61616 - [ActiveMQ Task-1]
2014-12-30 21:07:06,552 INFO  FailoverTransport    - Successfully connected to tcp://phxgapm01:61616 - [ActiveMQ Task-1]
2014-12-30 21:07:06,556 INFO  FailoverTransport    - Successfully connected to tcp://phxgapm02:61616 - [ActiveMQ Task-1] …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic jms glassfish

20
推荐指数
1
解决办法
2431
查看次数

如何使用Spring JMS发布JMS主题?

我有一个组件将消息发送到队列以由另一个系统处理.它还应该每隔一段时间发布一个关于工作状态的主题.我可以使用相同的JmsTemplate用于发送到队列并发布到主题吗?

我在ActiveMQ中创建了一个新主题,不过当我从JmsTemplate发送一条消息时,一个带有主题名称的新队列会被发送的消息创建(而不是将数据发送到实际主题),我在这里做错了什么?

这是我的配置:

<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
    <constructor-arg ref="amqConnectionFactory" />
    <property name="exceptionListener" ref="jmsExceptionListener" />
    <property name="sessionCacheSize" value="100" />
</bean>

<!--  JmsTemplate Definition -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <constructor-arg ref="connectionFactory" />
</bean>


<bean id="messageFacade" class="org.foo.MessageFacadeJms">
    <property name="jmsTemplate" ref="jmsTemplate" />
</bean>
Run Code Online (Sandbox Code Playgroud)

MessageFacadeJms是我用来发送队列消息的类(它可以工作),我还可以用它来发布一个主题吗?

我可以使用它来同时进行队列发送和主题发布吗?:

jmsTemplate.convertAndSend("TOPIC_NAME" /* or queue name */, message);
Run Code Online (Sandbox Code Playgroud)

java spring activemq-classic jms

19
推荐指数
3
解决办法
4万
查看次数

ActiveMQ连接被拒绝

我试图activemq在我的应用程序中使用,但在尝试连接到localhost时不断收到错误:

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: Could not connect to broker URL: tcp://localhost:61616. Reason: java.net.ConnectException: Connection refused
    at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
    at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168)
    at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469)
    at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:534)
    at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:526)
    at sender.MessageSender.sendMessage(MessageSender.java:16)
    at sender.SenderMain.main(SenderMain.java:13)
Caused by: javax.jms.JMSException: Could not connect to broker URL: tcp://localhost:61616. Reason: java.net.ConnectException: Connection …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic

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