首页 文章

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

提问于
浏览
2

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

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

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

1 回答

  • 2

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

    • model - 在微服务之间划分的一组类

    • core - 微服务逻辑,取决于型号包

    • gateway - 主微服务接口,取决于型号包,其他微服务包含,可以在这里缓存一些信息

相关问题