如何在Akka微服务之间共享通信模型?

时间:2016-01-24 07:12:41

标签: scala akka microservices

我们正在使用Akka作为我们的微服务平台。我们暂时不支持非JVM平台,因此我们使用Akka actor之间的直接消息传递作为通信平台。

这样,我们的通信单元只是案例类。我们是否必须重复自己并为每个微服务定义案例类,或者我们可以将所有消息类放入单个项目中并在微服务项目之间共享它?

我知道不推荐在微服务之间共享模型,但是当我们使用Akka通信协议时,我不确定在多个项目中创建相同的通信案例类是否正确。如果微服务改变了它的模型而其他人不知道该怎么办?如何在不破坏整个系统的情况下处理版本控制并升级到新版本的通信模型。

1 个答案:

答案 0 :(得分:2)

一种可能的解决方案是将每个微服务构建为少量软件包并通过SBT处理版本控制:

  • 模型 - 在微服务之间划分的一组类
  • 核心 - 微服务逻辑,取决于型号包
  • 网关 - 主要微服务的接口,取决于型号包,其他微服务包含,可以在这里缓存一些信息