我们不久前设计了一种用于处理事务的软件体系结构。 它的工作方式如下:根据事件的类型,将传入的事件转换为Callable ,然后根据事件类型将其运行到Executor 例如,“ Event_A”类型被转换为EventAHandler (一个Callable ),然后在Executor运行。

现在,我们必须支持交互式事件,即需要用户通过网络进一步输入的事件,这很慢。 例如,对于新类型的事件,我们向用户显示一个菜单并等待响应。 如果我们遵循上述架构,即将每个事件转换为Callable ,那么我们将束缚线程以等待用户响应,这不是一个好主意。

我正在寻找建议或建筑风格,以让我们做到这一点。 我们每秒需要支持约10,000个事件。 我想坚持使用Executor框架,并且如果可能的话,不能更改系统以支持异步循环。

===============>>#1 票数:2

使用基于Actor模型的体系结构可能会满足您的需求, 是此范例的众所周知的实现。

===============>>#2 票数:0

首先,您必须将架构表示为数据流程图 它可以是动态的,在执行期间创建新节点。 与其等待用户响应,不如创建一个对该响应做出反应的新节点,然后将响应路由到该节点。 这样,您就永远不会阻塞线程。

然后,了解所需的数据流图元素的哪些属性,例如:

  • 节点对多个后续消息(例如对象)作出反应还是用于处理单个消息(例如方法调用)?

  • 节点是单个输入还是多个输入

  • 如果有多个输入,则当所有输入都已填充(“与”门)或任何输入都已填充(“或”门)时,节点是否应执行执行

-等

然后确定哪个数据流/角色库适合您的需求。 我不会排除Akka,但我建议我开发df4j,因为它紧凑,可扩展,并支持开箱即用的多输入节点。

  ask by goblinjuice translate from so

未解决问题?本站智能推荐: