【问题标题】:How to change akka-scala response model without breaking existing setup如何在不破坏现有设置的情况下更改 akka-scala 响应模型
【发布时间】:2018-12-09 01:40:28
【问题描述】:

我有一个服务 A,多个微服务(内部)通过此服务 A 中的客户端包使用该服务 A,其中包括 MyRequest、MyResponse 等模型。我们在客户端 akka ask? 模式上使用 akka-scala 演员用来。这是当前的系统。

现在我想在case class MyResponse(a: Int, b: String, x: Option[String] = None) 中添加一个属性x。但是当我部署它时,旧客户端的服务停止工作,并且没有从服务 A 接收任何内容。我想以不间断的方式推动这个更改,因为它被多个服务使用,它不可能更新所有他们一下子。为此,我已经为x 添加了默认值。

需要帮助找出问题所在,以及使用 akka 系统发布此类更改的最佳方式是什么?

【问题讨论】:

  • 能否请您添加旧客户的receive 块。

标签: scala akka microservices


【解决方案1】:

仅出于我的理解:您有带有案例类 MyResponse(a: Int, b: String) 的服务器 A 和带有 MyResponse(a: Int, b: String, x: Option[String] = None) 的服务器 B? 如果是这样,听起来好像不是同一条消息...服务器 B 发送到服务器 A 无法处理的消息(如果是这样,它将到达死信 Q)

如果 B 发送给 A,这应该是部署步骤: 1. 部署支持服务器A的新消息 2.部署服务器B新消息并开始使用它 3. 从服务器 B 删除消息 4.从服务器A删除消息

【讨论】:

  • 你会收到什么错误信息,所以有方向。
  • 旧客户端的服务无法接收来自服务 A 的消息,出现超时错误。
猜你喜欢
  • 2010-12-21
  • 2020-12-29
  • 1970-01-01
  • 2020-01-09
  • 1970-01-01
  • 2021-10-12
  • 2015-02-23
  • 2019-02-28
  • 1970-01-01
相关资源
最近更新 更多