【问题标题】:akka-remote serializable warningakka-remote 可序列化警告
【发布时间】:2016-03-29 15:07:15
【问题描述】:

我在玩 akka 远程处理并创建了一个小型 Scala 应用程序,它可以向其他 Scala 应用程序发送消息。没关系,接收器应用程序设法接收消息,但是我收到了奇怪的序列化警告(如下所示)。我尝试按照akka.io remoting 的文档配置序列化,但没有设法找到消除这些警告的设置。

虽然我做错了什么并克隆了 akka/akka github repo,但我 sbt 运行 akka-samples/akka-sample-remote-scala。我很惊讶他们有同样的错误。

[WARN] [03/29/2016 16:53:40.137] [LookupSystem-akka.remote.default-remote-dispatcher-8] [akka.serialization.Serialization(akka://LookupSystem)] 使用默认由于性能影响,不推荐使用类 [sample.remote.calculator.Subtract] 的 Java 序列化程序。使用另一个序列化程序或使用设置 'akka.actor.warn-about-java-serializer-usage' 禁用此警告

谁能给我指出正确的方向?谢谢。

【问题讨论】:

    标签: scala akka


    【解决方案1】:

    嗯,这不是错误,只是警告。 Akka 对用户消息使用 Java 序列化,因此人们可以快速上手,而无需定义任何映射等。 但是你不想在生产中使用它,因为它很慢。因此,如果您只是在玩耍,您可以忽略警告(或者甚至在配置中禁用它,如消息所述)。对于严肃的业务,请使用 JSON、Avro、Kryo、Protobuf...

    在配置中定义你自己的序列化器

    akka {
      actor {
        serializers {
          java = "akka.serialization.JavaSerializer"
          proto = "akka.remote.serialization.ProtobufSerializer"
          myown = "docs.serialization.MyOwnSerializer"
        }
    
        serialization-bindings {
          "java.lang.String" = java
          "docs.serialization.Customer" = java
          "com.google.protobuf.Message" = proto
          "docs.serialization.MyOwnSerializable" = myown
          "java.lang.Boolean" = myown
        }
      }
    }
    

    您只需要指定接口或抽象基的名称 消息的类别。如果有歧义,即消息 实现了几个配置的类,最具体的 将使用已配置的类,即所有其他类中的一个 候选者是超类。

    这是取自 http://doc.akka.io/docs/akka/2.4.2/scala/serialization.html#serialization-scala

    精彩的 "Zen of Akka" 演示文稿第 7 章也介绍了该主题。

    【讨论】:

      【解决方案2】:

      我认为lutzh的回答很完整。我只能补充一点,如果您想禁用此警告,您应该设置以下配置设置:

      akka {
        actor {
          warn-about-java-serializer-usage = false
        }
      }
      

      如果您只是为了测试、玩耍或出于任何原因不关心性能,则使用 Java 序列化很好。

      【讨论】:

        猜你喜欢
        • 2016-10-27
        • 1970-01-01
        • 2019-10-30
        • 1970-01-01
        • 1970-01-01
        • 2022-07-06
        • 1970-01-01
        • 1970-01-01
        • 2011-11-12
        相关资源
        最近更新 更多