【问题标题】:Add Web controllers to an Akka Actor System将 Web 控制器添加到 Akka Actor 系统
【发布时间】:2019-12-04 15:31:41
【问题描述】:

我正在使用 Akka 和 Spring。

我有一个在 Kafka Stream 设置上运行的演员系统(使用 akka-stream-kafka_2.12),演员在内存中保存一些数据并使用 akka-persistence 保持他们的状态。

我想知道的是,我能否创建一个 REST 端点,它可以与我的 Actor-System 交互以提供一些数据或向我的 actors 发送消息。

我的问题是,如何实现?

【问题讨论】:

  • 是的,这是可能的,这就是我们的项目当前工作的方式,但唯一的区别是我们使用的是 PlayFramework 而不是 Spring。但这不应该是一个问题。希望baeldung.com/akka-with-spring这可能会有所帮助。
  • @Unknown 听到有可能让我松了一口气。框架并不是真正的问题。我也偶然发现了那个博客。如果您可以共享一些代码片段或 git 演示项目,您正在调用 API 并且该 API 正在与您的 Akka Actor 系统交互以获取数据或 Actor 的当前状态,这将非常有帮助
  • 是的,当然,将创建一个演示秒杀项目并分享给您。你从哪里来?只是想知道时差。
  • @Unknown 这会很有帮助,我真的很感激。我目前在印度新德里(所以基本上是同一时区)。
  • 是的,那么时区没问题。

标签: java spring-boot akka


【解决方案1】:

正如 cmets 中所说,我在 github 中创建了一个示例工作应用程序来演示 Spring 与 Akka 的用法。

请注意:

  1. 我使用 Springboot 进行快速设置和配置。
  2. 您不能期望在此演示中出现任何类型的良好/最佳实践 项目,因为我必须在 30 分钟内创建它。它只是解释了其中之一 在 Spring 中使用 akka 的方法(简单)。
  3. 此示例无法在微服务架构中使用,因为存在 这里不涉及远程处理或集群。 API 控制器直接与参与者对话。
  4. 在控制器中,为简单起见,在所有地方都使用了 GetMapping 而不是 PostMapping。
  5. 将使用另一个示例来更新存储库,解释用法 与 Clustering API 之间的通信方式 控制器和 ActorSystem 发生变化。

这里是Repo 的链接。希望这能让你开始。

您可以自己构建应用程序,也可以在命令提示符下运行 api-akka-integration-0.0.1-SNAPSHOT.jar 文件。它在默认的 8080 端口中运行。 本示例包含两种 API,/Calc/{Operation}/{operand1}/{operand2}/Chat/{message}

/聊天/你好

/calc/add/1/2

/calc/mul/1/2

/calc/div/1/2

/calc/sub/1/2

编辑:2

使用 API 中的 Akka 集群用法更新了 repo

API-Akka-Cluster

【讨论】:

  • 干杯!我对它的工作原理有预感,工作原理是一样的。但最重要的是,你不能用它插入 Akka Streams 吗?
  • 是的,将尝试将其与集群实现一起推送。
  • @iam.Carrot 在 repo 中添加了集群使用示例。
  • 你能把你的推特句柄放进去吗?或任何我可以与您联系的在线句柄。或者你也可以直接私信on twitter here
  • @iam.Carrot :我不使用 Twitter。也许你可以使用我的 Github ID(gitter.im/NeotericDev)在 Gitter 上联系到我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 2013-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-01
相关资源
最近更新 更多