您的位置:首页 > 其它

ActiveMQ翻译: broker内嵌虚拟机和外部容器运行broker之间的选择

2017-05-04 00:00 751 查看
摘要: 翻译官方说明
http://activemq.apache.org/should-i-deploy-the-broker-inside-my-jvm-or-appserver.html
你能将ActiveMQ Broker内嵌到JVM或者应用服务器之中。

这取决于多少的JVMS以及你的备份和还原策略。

嵌入式broker的优势:

1 嵌入式broker可以使用VM transport,而不需要使用序列化和sockets。VM transport可以代替AcitiveMQ通过value来传输Messages。

这种ObjectMessage可能出现少部分异常情况。JMS规范要求你必须序列化ObjectMessage 的body,无论是否发送。

你可以选择禁用这个特性,如果你在使用VM transport时想要更高的性能。

2 它只需要单独部署在nuit/JVM中,而不是2台。

嵌入式broker的劣势:

如果你有很多的JVMs(虚拟机),我说的是100个左右量级并且成功率要求很高的情况下,你不希望丢失Message,所以你需要备份并持久化Message到数据库或者文件中。

以上情况下,一个嵌入式broker中每个JVM都能处理大量的Message,或许你可以简单的将其中2个进行分离识别,当100个jvm与一个较小的broker集群进行交互时,处理每个jvm的持久化区、服务器崩溃、管理持久化文件/和数据库会是一个困扰。

将ActiveMQ brokers分别运行和管理相对容易。或许你会有一些ClassLoader的故障但你将ActiveMQ嵌入一个应用服务器(application server)比如这样:

java.lang.NoSuchMethodError:

javax.jms.Session.createConsumer(Ljavax/jms/Destination;)Ljavax/jms/MessageConsumer;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ActiveMQ 翻译