使用 Jms 发送对象 - HornetQ(性能问题)[关闭]
Posted
技术标签:
【中文标题】使用 Jms 发送对象 - HornetQ(性能问题)[关闭]【英文标题】:Sending Object with Jms - HornetQ (performance issue) [closed] 【发布时间】:2012-09-29 11:39:05 【问题描述】:发送对象消息哪个性能更好?
-
创建 ObjectMessage 并发送它。
将对象序列化为 xml,创建 TextMessage,并发送 xml 内容。
【问题讨论】:
【参考方案1】:将您的对象转换为字节并发送。
序列化很糟糕...... XML 很烂
如果您使用 ObjectMessage,请使您的对象可外部化并避免在可外部化的内部写入对象,这样您的转换就会飞起来。
手动解析为字节可以让您获得最佳性能。这不仅仅是 hornetQ(任何 JMS 服务器)。序列化很烂! (我也是JBoss Serialization的作者,所以我知道我在说什么……对于上面的JBoss名字不多,但我知道序列化的内部工作)
为了让事情顺利进行,必须有人提出代码生成序列化。
【讨论】:
谢谢你!所以我应该使用 BytesMessage? 我很难说你应该使用什么。 BytesMessage 绝对是最快的(消息服务器中的所有其他内容都以某种方式转换为字节数组,因此纯字节数组消息总是最快的)。但是,您应该根据您拥有的处理能力与您必须编写的代码量来衡量速度的好处。即你必须相应地做你的家庭作业。出于这个原因,我相信为什么乔治斯托克结束了这个问题。你的问题太笼统了,很难找到一个答案。 @Clebert 好吧,那我就不看你的书了。任何了解 EAI 的人都知道二进制编码是一种反模式。 jmesnil.net/weblog/2012/07/27/… 我在谈论对象序列化..使用文本消息,流消息..任何你喜欢的东西..但是对象序列化会给你带来一个很大的性能缺陷。如果您宁愿牺牲性能并使用大型 Java 序列化.. 领先。以上是关于使用 Jms 发送对象 - HornetQ(性能问题)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Python 客户端产生和使用 JMS 消息(HornetQ)