0

I am reading about the actor model recently, and I found it's a good programming model for concurrent issues. There are many program languages or tools that use this, like Scala, Jetlang, Klimi, etc.

But how can use these be used in a common web application (a Servlet based one for example)? Servlets are executed in multi-threaded style. Can we use the actor model to eliminate shared date like member variables in a Servlet (or SpringMVC controller etc..)?

Are there any Servlet containers that handle concurrent requests using the actor model?

4

1 回答 1

0

这是一种误解。您不能“在 servlet 环境中使用 actor 模型”,因为应用服务器已经实现了并发模型,它必须遵守 Java EE 规范。

特别是禁止在 servlet 中共享数据(可以修改),因为一个 servlet 对象用于处理所有来往的请求。另一方面,如果你有有状态的 EJB 组件,那么你就不需要关心并发问题 - 线程管理是由 EJB 容器完成的,事实上,你不能乱用它。

如果您想编写自己的服务器(而不是使用现有的基于 Java EE 的服务器),那么在这种情况下,值得考虑选择并发模型。

尽管演员是“热门话题”并且现在似乎是“本周流行语”,但请在网上搜索与演员模型的使用相关的问题和陷阱。现实并不像宣传的理论那么光明。

如果您搜索可以构建的高性能服务器-客户端解决方案,例如在 Netty 上查找 - 这是一款非常酷的软件,对于我们大多数人来说可能就足够了,即使有人想构建第二个 Twitter。

于 2012-05-21T21:51:32.617 回答