RabbitMQ を使用する Spring AMQP は初めてです。私は、この質問がより広い問題に対処していることを理解しています。コンシューマーに送信できるメッセージにオブジェクトのリストを保存したいと考えています。誰でもこの問題の簡単な解決策を提供できますか?
シリアル化が解決策になることは知っていますが、それは私が使用している単純なアプリケーションにとってはやり過ぎです。メッセージは本質的に非同期です。他のアプローチはありますか?
RabbitMQ を使用する Spring AMQP は初めてです。私は、この質問がより広い問題に対処していることを理解しています。コンシューマーに送信できるメッセージにオブジェクトのリストを保存したいと考えています。誰でもこの問題の簡単な解決策を提供できますか?
シリアル化が解決策になることは知っていますが、それは私が使用している単純なアプリケーションにとってはやり過ぎです。メッセージは本質的に非同期です。他のアプローチはありますか?
を使用できますMessageConverter
。Spring RabbitMQ のドキュメントを参照してください:
http://static.springsource.org/spring-amqp/docs/1.1.x/reference/htmlsingle/#d4e293
JsonMessageConverter
おそらくあなたが探しているものがあります。
標準の Java シリアライゼーションとSimpleMessageConverter
.
ドキュメントから:
With AMQP being a wire-level protocol, it would be unfortunate to lose
much of that advantage with such restrictions.
ドキュメントから抜粋したコード例を次に示します。
<bean class="org.springframework.amqp.rabbit.core.RabbitTemplate">
<property name="connectionFactory" ref="rabbitConnectionFactory"/>
<property name="messageConverter">
<bean class="org.springframework.amqp.support.converter.JsonMessageConverter"/>
</property>
</bean>
これを設定すると、リスト オブジェクトを JSON にシリアライズ/デシリアライズして戻すことができるようになります。
AMQP は、1 つのタイプのメッセージ (バイナリ (バイト)) のみをサポートします。これは、オブジェクトをシリアル化する必要があることを意味します。
ただし、JSON、XML、または Java シリアライゼーションなど、シリアライゼーションのタイプを選択することはできます。