day*_*mer 5 java serialization scala akka kryo
我读了阿卡序列化页面,这里只讲serialization-bindings作为
serialization-bindings {
"java.lang.String" = java
"docs.serialization.Customer" = java
"com.google.protobuf.Message" = proto
"docs.serialization.MyOwnSerializable" = myown
"java.lang.Boolean" = myown
}
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用kyro序列化,并想知道是否有一种方法可以kyro默认启用序列化以完成整个应用程序?而不是给每个类或包名?
就像是
serialization-bindings {
default = kyro
}
Run Code Online (Sandbox Code Playgroud)
这是方式,我使用kryo:
serializers {
kryo = "com.romix.akka.serialization.kryo.KryoSerializer"
}
serialization-bindings {
"com.ex.es.Msg" = kryo
"java.io.Serializable" = none
}
Run Code Online (Sandbox Code Playgroud)
与Kunal类似,我通过有线/存储/序列化以任何方式发送的所有消息都扩展了Msg该类.这不仅是因为我不确定是否有办法设置默认的序列化程序,而且还要让我明确,我的应用程序中序列化了什么.
现在试试你的实际问题:
我还必须设置,"java.io.Serializable" = none否则我收到了一个警告,它不确定,哪个序列化程序可以选择我的课程.
所以这可能意味着,默认情况下,case类扩展Serializable并使这样的工作作为默认设置:
serializers {
kryo = "com.romix.akka.serialization.kryo.KryoSerializer"
}
serialization-bindings {
"java.io.Serializable" = kryo
}
Run Code Online (Sandbox Code Playgroud)
但这只是一个有根据的猜测,目前我没有可能进行测试.
我这样做的方法是让所有可序列化的类扩展 a SerializableTrait,然后在我的绑定中,我只需指定要使用自定义序列化器序列化的特征。
akka.actor {
serializers {
json-serializer = "io.example.MySerializerClass"
}
serialization-bindings {
"io.example.SerializableTrait" = json-serializer
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2661 次 |
| 最近记录: |