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;
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官方文档翻译-内嵌消息中间件
- 使用外部容器运行spring-boot项目:不使用spring-boot内置容器让spring-boot项目运行在外部tomcat容器中
- .Net Core vs .Net Framework 如何为一个应用程序选择一个运行时(翻译)
- 判断程序是否运行在虚拟机中的代码,请人翻译
- 容器与虚拟机之间的差别
- Spring Boot 项目在外部容器中运行的配置
- 使用外部容器运行spring-boot项目:不使用spring-boot内置容器让spring-boot项目运行在外部tomcat容器中
- 选择Spring Boot项目的内嵌容器(替换)
- spring boot 项目打成war包发布至外部web容器运行
- ASP.NET Core 如何在运行Docker容器时指定容器外部端口
- 使用外部容器运行spring-boot项目:不使用spring-boot内置容器让spring-boot项目运行在外部tomcat容器中
- activemq的多个broker之间的消息共享
- Mac下安装virtualbox运行win7,Mac和虚拟机之间实现文件共享
- 如何看待docker容器与虚拟机之间的比较
- 选择Spring Boot项目的内嵌容器的理由
- 选择Spring Boot项目的内嵌容器
- 【译】用maven使java web应用运行在内嵌的Jetty或Tomcat容器中
- activemq的多个broker之间的消息共享
- 选择虚拟机还是容器?-【软件和信息服务】2014.09 推荐
- Bluemix虚拟机Docker使用direct-lvm存储方式运行容器