向Akka Serialization模块注入特殊情况

时间:2013-03-19 09:47:05

标签: scala networking serialization pattern-matching akka

我想添加特殊情况来提高任何 Akka序列化模块的性能,即允许更快地序列化Array[Double]或用户包装的任何原始类型。是否存在允许基于每种类型进行自定义序列化的规范方法?

我的想法是添加一个定义方法CanSerialize[T]serialize(o:T):Array[Byte]的特征deserialize(bytes:Array[Byte]):T。有没有办法实现这样的事情,而不会像模式匹配那样失去Akka的好处?

修改 我也可以对Kryo或其它比Java的序列化程序更快的满意,但似乎没有任何预先打包的jar文件用于Kryo和Akka 2.1。

1 个答案:

答案 0 :(得分:2)

您可以为特定类型注册自己的序列化程序。

akka.actor {
  serialization-bindings {
    "[D" = doubleBytes
  }

  serializers {
    doubleBytes = "a.b.YourDoubleArraySerializer"
  }
}

请注意,[DArray[Double]的类名。

http://doc.akka.io/docs/akka/2.1.2/scala/serialization.html