Hi,
I’m getting the following error when I use Akka persistence with Cassandra plugin:
Caused by: akka.persistence.typed.internal.JournalFailureException: Exception during recovery. Last known sequence number [0]. PersistenceId [abc], due to: null
at akka.persistence.typed.internal.ReplayingEvents.onRecoveryFailure(ReplayingEvents.scala:221)
at akka.persistence.typed.internal.ReplayingEvents.onJournalResponse(ReplayingEvents.scala:143)
... 31 more
my build.sbt is :
libraryDependencies += "com.typesafe.akka" %% "akka-persistence-typed" % "2.6.4"
libraryDependencies += "org.slf4j" % "slf4j-simple" % "1.8.0-beta4"
val AkkaVersion = "2.6.4"
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-persistence-cassandra" % "1.0.0",
"com.typesafe.akka" %% "akka-persistence" % AkkaVersion,
"com.typesafe.akka" %% "akka-persistence-query" % AkkaVersion,
"com.typesafe.akka" %% "akka-cluster-tools" % AkkaVersion
)
my code is:
object MyPersistentBehavior {
sealed trait Command
final case class Add(data: String) extends Command
case object Clear extends Command
case class Read(id: String) extends Command
sealed trait Event
final case class Added(data: String) extends Event
case object Cleared extends Event
final case class State(history: List[String] = Nil)
val commandHandler: (State, Command) => Effect[Event, State] = { (state, command) =>
command match {
case Add(data) =>
println("接收到Add命令")
Effect.persist(Added(data))
case Clear => Effect.persist(Cleared)
case Read(id) =>
println("接收到Read命令")
println(state)
Effect.none
}
}
val eventHandler: (State, Event) => State = { (state, event) =>
event match {
case Added(data) =>
println("持久化成功")
state.copy((data :: state.history).take(5))
case Cleared => State(Nil)
}
}
def apply(id:String): Behavior[Command] =
EventSourcedBehavior[Command, Event, State](
persistenceId = PersistenceId.ofUniqueId(id),
emptyState = State(Nil),
commandHandler = commandHandler,
eventHandler = eventHandler)
}
and:
def main(args: Array[String]): Unit = {
val theSystem = ActorSystem(MyPersistentBehavior("abc"),"cook")
theSystem ! Add("lklk")
}
Am I doing something wrong here?
5 posts - 2 participants