JMS 支持五种消息主体类型,下面大致按复杂性顺序显示这些类型:
BytesMessage 包含一组字节,格式由应用程序确定。
TextMessage 是一种简单的 Java 字符串。
StreamMessage 包含 Java 基元值流。
MapMessage 包含一组名称/值对。
ObjectMessage 包含 Java 序列化对象。
尽管通常情况下消息类型是由应用程序的需要所决定的,但较复杂的类型(MapMessage 和 ObjectMessage)会增加性能成本:对数据进行序列化和反序列化的成本。性能成本取决于数据的简单或复杂程度。