我以前没有任何使用*mqs的经验,我希望建立jms和消息队列方面的知识。这样,我想知道我是应该从activemq开始,还是干脆“忽略”它,从自学阿波罗开始。阿波罗和activemq一样功能齐全吗?它是否实现了jms2.0(我看到activemq被1.1卡住了)?我会错过一些真正重要的东西吗?另外,Kafka如何比较这两种解决方案?
wfsdck301#
apacheactivemq是一个非常好的工具,它有很多特性和不错的东西。它不是最快的mq软件,但是对于大多数用例来说足够快。其中包括灵活的集群、故障转移、与不同应用服务器的集成、安全性等。apacheapollo试图为activemq编写一个新的核心来处理大量的客户机和消息。它没有activemq的所有好的和方便的特性,但是扩展性更好。apacheapollo是一个非常快速的mq实现,它提供了一个大型多核服务器和数千个并发连接。它有一个很好的,简单的用户界面,但不是一个“一刀切”的解决方案。似乎有人正在尝试以activemqartemis的名字将一些activemq特性与hornetq合并。hornetq支持jms2.0,所以我的猜测是它可能会出现在activemq6.x中。吉拉,Git胡布Kafka是另一种野兽。它是一个非常简单的消息代理,旨在在多个服务器上以尽可能快的速度扩展持久发布订阅(主题)。对于中小型部署,Kafka可能不是最佳选择。它还提供了实现高吞吐量的方法,因此您必须在灵活性方面进行大量权衡,以获得高分布式吞吐量。如果你是mq和经纪人领域的新手,我猜Kafka是杀伤力太大了。另一方面,如果您有一个相当大的服务器集群,并且想知道如何通过它推送尽可能多的消息,那就让kafka试试吧!
fquxozlt2#
这是一个老问题,但我会在这里提供一个更现代的答案。阿波罗计划已经非官方地结束了,他们认为阿耳特弥斯是新的热点(链接)阿波罗的发展(似乎)停滞不前,并没有给我对阿耳特弥斯的未来信心。我的经验与petter的答案相似,activemq功能丰富且功能强大。然而,似乎每个版本都修复了随机崩溃和内存泄漏,这并不能激发信心。它对于我的项目(使用集群)来说是稳定的,但是在过去的十几个版本中(目前使用的是5.14.3),我们在代理中看到了奇怪的行为和崩溃我还没有使用rabbitmq(我当前的项目致力于activemq),但我将在下一个需要消息总线的项目上进行尝试。没有厨房Flume的功能支持将有望意味着它更稳定。编辑:2.3.0 apache artemis发布于2017年9月5日。所以到目前为止,它似乎确实在进步。但是(link)changelog看起来还是太可怕了。
xa9qqrwz3#
apachekafka可以被描述为一个“分布式流媒体平台”,其中activemq(面向消息传递的中间件)是一个“通用消息代理”。kafka做了一件事,而且有一件事做得非常好:在发布/订阅(publish/subscribe,pub/sub)体系结构中,消息被写入主题(按分区分发的日志),然后消费者按偏移量从主题中消费。kafka是为云计算而构建的,考虑到非常高的吞吐量,它专注于此,现在是异步消息传递的首选。activemq同时支持pub/sub和点对点语义。在后者中,队列处理单个生产者和特定消费者之间的单个消息。与pub/sub一样,这是异步的,但工作方式略有不同:如果一个使用者在队列中收到消息,但未能确认消息,则该消息将被发送给另一个使用者。activemq还支持多种消息传递协议,包括amqp、stomp、jms、camel和mqtt。而apachekafka可能是简单异步通信的首选;对于更复杂的路由模式(如企业模式),activemq似乎是一些人的首选,然而,许多人认为kafka是对activemq的改进,原因包括更高的吞吐量、更有效的日志/主题分区管理以及更细粒度的acl(用于消费主题的消费者)。
x33g5p2x4#
我为activemq、apollo、hornetq做了一个非持久场景和持久场景下的性能基准,我想您可以选择使用哪一个,链接如下:http://hiramchirino.com/jms-benchmark/ubuntu-2600k/index.html
4条答案
按热度按时间wfsdck301#
apacheactivemq是一个非常好的工具,它有很多特性和不错的东西。它不是最快的mq软件,但是对于大多数用例来说足够快。其中包括灵活的集群、故障转移、与不同应用服务器的集成、安全性等。
apacheapollo试图为activemq编写一个新的核心来处理大量的客户机和消息。它没有activemq的所有好的和方便的特性,但是扩展性更好。apacheapollo是一个非常快速的mq实现,它提供了一个大型多核服务器和数千个并发连接。它有一个很好的,简单的用户界面,但不是一个“一刀切”的解决方案。
似乎有人正在尝试以activemqartemis的名字将一些activemq特性与hornetq合并。hornetq支持jms2.0,所以我的猜测是它可能会出现在activemq6.x中。
吉拉,Git胡布
Kafka是另一种野兽。它是一个非常简单的消息代理,旨在在多个服务器上以尽可能快的速度扩展持久发布订阅(主题)。对于中小型部署,Kafka可能不是最佳选择。它还提供了实现高吞吐量的方法,因此您必须在灵活性方面进行大量权衡,以获得高分布式吞吐量。如果你是mq和经纪人领域的新手,我猜Kafka是杀伤力太大了。另一方面,如果您有一个相当大的服务器集群,并且想知道如何通过它推送尽可能多的消息,那就让kafka试试吧!
fquxozlt2#
这是一个老问题,但我会在这里提供一个更现代的答案。
阿波罗计划已经非官方地结束了,他们认为阿耳特弥斯是新的热点(链接)阿波罗的发展(似乎)停滞不前,并没有给我对阿耳特弥斯的未来信心。
我的经验与petter的答案相似,activemq功能丰富且功能强大。然而,似乎每个版本都修复了随机崩溃和内存泄漏,这并不能激发信心。它对于我的项目(使用集群)来说是稳定的,但是在过去的十几个版本中(目前使用的是5.14.3),我们在代理中看到了奇怪的行为和崩溃
我还没有使用rabbitmq(我当前的项目致力于activemq),但我将在下一个需要消息总线的项目上进行尝试。没有厨房Flume的功能支持将有望意味着它更稳定。
编辑:2.3.0 apache artemis发布于2017年9月5日。所以到目前为止,它似乎确实在进步。但是(link)changelog看起来还是太可怕了。
xa9qqrwz3#
apachekafka可以被描述为一个“分布式流媒体平台”,其中activemq(面向消息传递的中间件)是一个“通用消息代理”。
kafka做了一件事,而且有一件事做得非常好:在发布/订阅(publish/subscribe,pub/sub)体系结构中,消息被写入主题(按分区分发的日志),然后消费者按偏移量从主题中消费。kafka是为云计算而构建的,考虑到非常高的吞吐量,它专注于此,现在是异步消息传递的首选。
activemq同时支持pub/sub和点对点语义。在后者中,队列处理单个生产者和特定消费者之间的单个消息。与pub/sub一样,这是异步的,但工作方式略有不同:如果一个使用者在队列中收到消息,但未能确认消息,则该消息将被发送给另一个使用者。activemq还支持多种消息传递协议,包括amqp、stomp、jms、camel和mqtt。
而apachekafka可能是简单异步通信的首选;对于更复杂的路由模式(如企业模式),activemq似乎是一些人的首选,然而,许多人认为kafka是对activemq的改进,原因包括更高的吞吐量、更有效的日志/主题分区管理以及更细粒度的acl(用于消费主题的消费者)。
x33g5p2x4#
我为activemq、apollo、hornetq做了一个非持久场景和持久场景下的性能基准,我想您可以选择使用哪一个,链接如下:http://hiramchirino.com/jms-benchmark/ubuntu-2600k/index.html