[英]How to send Kryo serialized objects over JMS?
我想使用Kryo來(去)序列化對象並通過JMS發送/接收它們。
我遇到的問題是雙方,發送方和接收方都必須使用相同的ID注冊類。
Kryo有一個我使用的方法register (Class type, int id)
。 不幸的是, id
是一個int(與Serializable接口使用的long serialVersionUID
相比)。 如果我可以使用serialVersionUID來注冊類,那將是很好的。
你們如何通過網絡使用Kryo?
您不必明確注冊要使用Kryo序列化的每個類。 注冊課程的主要好處是:
但是,當您注冊一個類時,您必須在任何地方以相同的順序注冊完全相同的類。 這並不總是可能的。
在您的情況下,JMS規范沒有定義有關類的序列化的任何內容。 這取決於您使用的實現。 如果您想要可移植的東西,可以在應用程序層中執行此操作:
MessageListener
使用Kryo反序列化消息 你可以控制誰序列化/反序列化,你可以注冊你在這里使用的類,或者讓Kryo自己生成ID
ActiveMQ不支持自定義序列化掛鈎。 您無法插入自己的序列化實現,因此無法告訴ActiveMQ在發送ObjectMessage時使用Kryo(請參閱ActiveMQObjectMessage )。 您必須使用此BytesMessage。 也許其他JMS提供者提供這樣的功能(JMS只是一個API規范,它沒有定義如何發送/序列化消息,只有API可訪問)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.