将 akka 远程迁移到 akka-http 如何序列化到 json 而不是 protocolBuffer 而无需大量工作

Migrating akka remote to akka-http how to serialize to json instead of protocolBuffer without huge amount of work

我在 scala 中已有一个应用程序,它使用 akka-remote 将消息从网络服务器发送到应用程序服务器。我打算将其更改为 http 请求。

我看到今天 akka-remote 已经为我处理了所有的序列化和反序列化 没有写任何序列化器/反序列化器,但是协议是协议缓冲区。

我希望使用 http 请求-响应 json 而不是协议缓冲区。

从网络服务器发送到应用服务器的消息是复杂的 类。我不想写所有的 writer/reader/formatters 来做 json 序列化,就像不需要用 akka remote 写协议缓冲区序列化一样。

是否有任何解决方案可以让我在不编写所有 writer/readers 的情况下进行 json 序列化?

谢谢

使用circe JSON 库。 play json、spray json 等其他库要求您为每种情况明确指定格式化程序 class。另一种方法是将 Avro 序列化与模式注册表结合使用。它将 json 包装了一些附加信息,因此它也是可读的。这种方法需要一些例程来弥补 运行,但它可以保护您免受向后不兼容的更改。