AkkaJackson介绍

以下是如何在Lagom中使用Akka-Jackson serialiser的简短总结。有关更多详细信息,请参阅Jackson序列化 文档

在Lagom中使用Akka Jackson序列化

设置Akka Jackson序列化需要三个步骤。

  • 首先,创建一个自定义标记trait,例如trait CommandSerializable
  • 然后,确保所有使用Akka Jackson序列化类都继承了该特质: ```scala package com.example.shoppingcart.impl

object ShoppingCart { trait CommandSerializable sealed trait Command extends CommandSerializable final case class AddItem(itemId: String, quantity: Int, replyTo: ActorRef[Confirmation]) extends Command final case class RemoveItem(itemId: String, replyTo: ActorRef[Confirmation]) extends Command // More command classes }

  1. - 最后,在`application.conf`配置文件中,注册标记使用Akka Jackson JSON序列化特质程序的绑定。
  2. ```scala
  3. akka.actor {
  4. serialization-bindings {
  5. # Commands won't use play-json but Akka's jackson support.
  6. # See https://doc.akka.io/docs/akka/2.6/serialization-jackson.html
  7. "com.example.shoppingcart.impl.ShoppingCart$CommandSerializable" = jackson-json
  8. }
  9. }

模式演化

当您在Akka持久化日志中持久化事件时,在软件早期迭代中创建的事件仍必须在应用程序的未来版本中可读。随着模式的发展,您必须创建并注册数据迁移代码,以便从数据库中的日志中读取事件时,旧事件可以在在运行情况下升级。可以阅读Akka关于模式演化的文档了解详细信息。