- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在构建的应用程序有一个非常简单的概念:它接收来自数据库的传入事件,并且对于每个事件,它通过显示菜单打开与客户端(在事件中)的交互式 session 。根据客户的 react ,我们进入下一个状态或采取一些具体行动(例如转移资金)。
session 是相互独立的。例如,假设我们从数据库中得到两个事件,表明客户 A 和 B 的账户余额已达到零状态。为了响应这个事件,我们建立了两个连接到 A 和 B 显示一个如下所示的菜单:
Please select an option:
1. Get $5
2. Get $10
3. Ignore
对于选项 1 和 2,我们要求以第二个菜单的形式进行确认。
Are you sure?
1. yes
2. no
在这种情况下,我们将有两个 session 。客户 A 可能会选择选项 1(1. 获得 5 美元
),而客户 B 选择选项 3 [在第一个菜单中]。对于客户端 A,如果响应为 1,我们将显示第二个菜单(上图)。是的
,我们将采取一些具体的行动,例如转移资金和结束 session 。
所有客户端通信均由第 3 方系统完成,该系统采用 JSON 格式(包括客户端地址、菜单文本)并将响应返回给我们。它负责实际维护在线 session ,而我们只需要进行响应关联和处理 session 状态。
我们预计将同时处理 50,000 个此类 session 。
之前,我们使用 SEDA 模型用 Java 设计系统。听说过 Actors,我们愿意检查它们并快速编写一个 PoC 项目(Java/AKKA)。我的问题是:
有没有人有构建此类应用程序的经验? 50,000 个并发 session 对 AKKA 来说是否太多了? (注意,我们只是在等待响应。当响应到来时,我们根据答案跳转到下一阶段,所以应该可以)。
哪种架构风格/范式最适合 AKKA 中的这个问题?有没有解决这类问题的框架?
最佳答案
这实际上是 Akka 集群的一个相当简单的用例。 50K session 表示为每个 Actor 实例的负载不是很高。使用集群的原因只是为了容错。
该架构背后的想法是拥有一个 Web 层来处理与 session 相对应的 RESTful 请求。这些请求将被发送到 Akka 集群并通过 session ID 路由到适当的 session Actor,或者创建一个新的。 session 完成后,您将停止与其关联的参与者。
请注意, session 参与者应通过调度程序向自己发送超时消息。处理完一条新消息后,Actor 应该通过 ActorSystem 调度程序为自己安排一条消息,持续 15 分钟(或任何超时时间)。当收到新的 session 消息时,应该取消该计划的任务,处理新的更新,然后安排新的超时。这里有一个合理的竞争条件,因为超时消息可能在 session 消息之后的 session 参与者的邮箱队列中,但是如果您的超时消息包含它被安排的时间(15 分钟前),您可以检查并忽略它并重新安排另一个(就像避免内存泄漏的安全机制一样)。如果时间大于 15 分钟前,则停止 actor。
要了解如何将工作分配给 session 参与者,请参阅 Typesafe 激活器中的“使用 Akka 和 Java 的分布式工作人员”模板。您将拥有一个完全运行的集群 Akka 应用程序,您可以对其进行定制以执行我上面描述的 session 管理。然后您可以导出项目并在 Eclipse/IntelliJ/Sublime/TextMate/等中处理它。要下载 Activator,请参阅 here .
关于java - 使用 Actors/AKKA 的面向 session 的异步架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20938075/
我正在尝试使用 Scala 2.12.3、sbt 0.13.6 以及 build.sbt 文件中的以下库依赖项构建一个项目: libraryDependencies ++= Seq( "com.t
我根本没有任何 Akka 经验。我想知道 Akka 消息传递如何在 JVM 内以及 JVM 之间工作。 JVM 中的消息是一些类似 POJO 的对象吗? JVM之间的通信是否需要任何类型的JMS(如服
Akka的EventBus是否可以与远程 Actor 一起使用? 据我所知,它本身不支持此功能。任何人都可以确认吗? 看起来有可能对提供相似功能的Actor进行编码。例如。在订阅远程服务器上的Even
我在单个 JVM 上使用 Akka 开发了我的应用程序。现在我想在多台机器上分配工作负载。我开始阅读文档并感到困惑。 有两种方法可以通过集群和远程处理使 Akka 应用程序分发。 我不明白两者之间的区
我想使用 Akka HTTP 构建一个连接到现有接收器(带有 Kafka react 流)的 REST 服务,但我不知道如何将 HTTP 流链接到 Akka 流接收器... 我应该选择使用 Flows
我在某处听说默认情况下是一个 Actor 系统,这意味着它的 ExecutorService/Dispatcher 正在创建一个非 Deamon 线程池来运行 Actor。如果确实如此,那将解释我所经
在我的应用程序中,我有一个角色需要在等待某些操作完成时存储消息,同时它需要支持高优先级消息(控制消息)。 stash trait 需要一个 Dequeue邮箱类型,我找不到控制感知出队邮箱是否有意义。
Akka.NET 和原始 Akka 可以使用 Remoting 进行通信吗? 换句话说,Akka 可以用于连接系统中的 JVM 和 CLR 吗? 最佳答案 这个问题在 akka.net Github
Akka 新手。创建一个扩展 SupervisorStrategy 的新 Scala 类为我提供了以下模板: class MySupervisorStrategy extends Supervisor
我正在尝试为包含并行处理流的 Akka 流定义一个图(我正在使用 Akka.NET,但这应该无关紧要)。想象一个订单的数据源,每个订单由一个订单 ID 和一个产品列表(订单商品)组成。工作流程如下:
我有一个 akka actor(worker)接收请求并回复它。请求处理可能需要 3-60 分钟。来电者(也是 Actor )目前正在使用 !!!并等待 future.get,但是如果需要,可以更改
我应该如何在 Akka 持久化 (Eventsourcing/CQRS) 中构建我的 Actor? 分层 平行 我的电子商务应用程序中有这些域对象 用户 - 用户可以创建帐户 商店 - 用户可以创建商
我正在尝试构建和运行一个 akka 流(在 Java DSL 中),以 2 个 actor 作为源,然后是一个合并结点,然后是 1 个接收器: Source src1 = Source.act
我正在尝试监督 Akka Actor ,更具体地说是 Cluster Singleton创建使用 ClusterSingletonManager .我试图更好地控制异常、日志和 Actor 的生命周期
我试图了解何时何地使用不同的 built-in Akka mailboxes以及何时适合自己滚动。但是,该页面上的任何地方都没有解释“ 有界邮箱 ”实际上是什么,或者它的行为方式与无界邮箱有何不同。此
在Akka中等待多个actor的结果的正确方法是什么? Principles of Reactive Programming Coursera 类(class)有一个带有复制键值存储的练习。无需深入研
我正在为一个项目评估 Akka,我正在尝试弄清楚我是否可以通过将参与者状态保存在高可用数据存储中来使用 Akka-Persistence 实现服务的高可用性。 (我不打算使用 Akka-Cluster
我阅读了 Akka 文档并找到了这个 As mentioned before, if a node is unreachable then gossip convergence is not poss
我正在使用 akka 流,并且我有一段我需要有条件地跳过的图表,因为流程无法处理某些值。具体来说,我有一个接受字符串并发出 http 请求的流,但是当字符串为空时,服务器无法处理这种情况。但我只需要返
我们正在考虑使用 Akka 进行客户端服务器通信,并尝试对数据传输进行基准测试。目前我们正在尝试发送一百万条消息,其中每条消息都是一个具有 8 个字符串字段的案例类。 目前,我们正在努力获得可接受的性
我是一名优秀的程序员,十分优秀!