Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 将特殊情况注入Akka序列化模块_Scala_Networking_Serialization_Pattern Matching_Akka - Fatal编程技术网

Scala 将特殊情况注入Akka序列化模块

Scala 将特殊情况注入Akka序列化模块,scala,networking,serialization,pattern-matching,akka,Scala,Networking,Serialization,Pattern Matching,Akka,我想添加一些特殊情况来提高任何Akka序列化模块的性能,即允许更快地序列化数组[Double]或用户包装的任何基本类型。是否有一种规范化的方法允许按类型进行自定义序列化 我的想法是添加一个traitCanSerialize[T],它定义方法serialize(o:T):数组[Byte]和反序列化(bytes:Array[Byte]):T。有没有一种方法可以在不失去Akka模式匹配的好处的情况下实现这样的目标 编辑 我也可以对Kryo或其他比Java的序列化程序更快的东西感到满意,但是Kryo和A

我想添加一些特殊情况来提高任何Akka序列化模块的性能,即允许更快地序列化
数组[Double]
或用户包装的任何基本类型。是否有一种规范化的方法允许按类型进行自定义序列化

我的想法是添加一个trait
CanSerialize[T]
,它定义方法
serialize(o:T):数组[Byte]
反序列化(bytes:Array[Byte]):T
。有没有一种方法可以在不失去Akka模式匹配的好处的情况下实现这样的目标

编辑
我也可以对Kryo或其他比Java的序列化程序更快的东西感到满意,但是Kryo和Akka 2.1似乎没有任何预打包的jar文件。

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

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

  serializers {
    doubleBytes = "a.b.YourDoubleArraySerializer"
  }
}
请注意,
[D
数组[Double]
的类名


你能详细解释一下“[D”吗?我看不出这是什么数组[Double]?scala>Array[Double](2)。getClass.getName res1:String=[我在考虑这个方案:注册一个接受数组[Byte]并返回数组[Byte]的自定义序列化程序(即不执行任何操作),然后用我自己的序列化模块对其进行预序列化。这对我的HPC框架很有用。