我看了akka连载page ,他们将 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
}
我正在考虑使用 kyro序列化并想知道是否有一种方法可以默认为完整的应用程序打开 kyro
序列化?而不是给每个类或包名称?
有点像
serialization-bindings {
default = kyro
}
最佳答案
是这样的,我用的是kryo:
serializers {
kryo = "com.romix.akka.serialization.kryo.KryoSerializer"
}
serialization-bindings {
"com.ex.es.Msg" = kryo
"java.io.Serializable" = none
}
类似于 Kunal 我所有的消息,我通过网络发送/存储/序列化以任何方式扩展 Msg
类。这不仅是因为我不确定是否有办法设置默认序列化程序,而且还不确定我的应用程序中序列化了什么。
现在试一试您的实际问题:
我还必须设置 "java.io.Serializable"= none
否则我会收到警告,它不确定为我的类选择哪个序列化程序。
所以这可能意味着,默认情况下 case 类扩展 Serializable 并使类似这样的东西作为默认设置工作:
serializers {
kryo = "com.romix.akka.serialization.kryo.KryoSerializer"
}
serialization-bindings {
"java.io.Serializable" = kryo
}
但这只是一个有根据的猜测,目前我无法进行测试。
关于java - 如何更改 Akka 应用程序的默认序列化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38165886/