每个数据库实体一个 Akka 演员?

Posted

技术标签:

【中文标题】每个数据库实体一个 Akka 演员?【英文标题】:One Akka actor per database entity? 【发布时间】:2016-06-28 06:18:16 【问题描述】:

每个数据库实体有一个 Akka 演员是常见的做法吗?也就是说,它是不是要这样使用?

假设我们有数以万计的用户,对于每个登录的用户,我们在 Play 网站上创建一个带有子actor 的actor,它们代表关系数据库中的相关数据。 actors vs. entities

有没有更好的方法?有什么好处和坏处?

【问题讨论】:

【参考方案1】:

请查看 akka actor 系统文档http://doc.akka.io/docs/akka/2.4.7/general/actor-systems.html

一种常见的模式是为 N 个参与者创建一个路由器,每个参与者包装一个数据库连接并处理发送到路由器的查询。然后必须调整数字 N 以获得最大吞吐量,这将取决于部署在什么硬件上的 DBMS。

【讨论】:

因此,扩展它 - 参与者是为了分发工作流,代表数据库连接的参与者是有意义的(除了数据库连接受到限制而用户不受限制)来限制同时处理的查询。每个 DB 实体一个 actor 似乎是一种误解,为什么要异步处理 DB 实体? 感谢 Mario 和 Tomasz 的澄清。你救了我几天,我最好和儿子一起度过。

以上是关于每个数据库实体一个 Akka 演员?的主要内容,如果未能解决你的问题,请参考以下文章

在 Akka 中创建演员的成本是多少?

Akka & Java - 遇到死信

使用 akka 演员休眠

如何从演员本身中获取 Akka 演员的名字?

akka http:Akka 流与演员建立休息服务

通过简单的 akka-http 路由测试与演员陷入无限循环