akkaakka-cluster

Wrong protocol for root guardian when changing from akka to pekko


We have changed from akka to pekko in our microservice, but when trying to install the new microservice, that should replace the one running in our kubernetes kluster, we get this error:

No root guardian at [akka://app@10.54.3.251:25520]","stacktrace":"java.lang.IllegalArgumentException: Wrong protocol of [akka://app@10.54.3.251:25520/], expected [pekko]

It works fine if I deploy in a clean kubernetes cluster without any services running, but it doesn't work when upgrading.

I've tried to change

pekko {
  remote.artery {
    canonical.port = 25521

but that didn't make any difference, I still get the same error message about port 25520.

I also looked in our code and config files, and there are no reference to akka://app@xxx:25520 (or akka://app for that matter, only pekko://app).

What should I change to make it work? I would like to keep the old actor system name, since a lot of network polices etc refer to that.


Solution

  • For now, there are no approaches to make them compatible. However, you can keep an eye on the progress within the pekko community: https://github.com/apache/incubator-pekko/issues/108

    Update

    Got a good news, Pekko just merged a pull request for handle mixed akka/pekko protocol. https://github.com/apache/incubator-pekko/pull/765