复杂事件处理

问题描述:

在设计事件处理系统时需要一点建议。 从高级别上讲,我的Java服务器接收到各种请求,执行并响应(同步和异步)给它们。复杂事件处理

的流程如下:

a)低级别类从客户机接收该事件。这个类有一个MessageRouter类的引用。一旦它得到事件,它就简单地调用MessageRouter上的路由(事件事件)。

b)MessageRouter类将事件排队,并在一个单独的线程中确定消息的类型,找到合适的Handler并将消息传递给它。

c)处理程序执行消息。

d)ResponseRouter收集响应并将其写回。

我的问题是:

1)我应该如何设计C),因为我需要4-5其他“经理”之类的类的引用来执行请求。另外,应该c)参考d)将响应路由回去?

2)同样,d)需要引用其他类来回写响应,因为它们可以同步和异步完成。 ResponseRouter是否需要引用它所需的所有类?

主要是,我正在寻找一种设计模式(或它们的组合)以高效和优雅的方式执行事件及其响应。

+0

我不完全理解那些'经理'类...更多处理程序?例如IORecievers是一些http门异步/同步;并且handler1将数据加载到对象中,handler2执行一些业务逻辑处理程序3将数据写回到存储区,handler4创建响应html等? – 2012-07-16 20:20:01

至于对Q2的回答,因为可以执行异步处理程序,所以我建议在MessageRouter中处理请求和响应可能更直接,可能引用另外两个实现RequestRouter和ResponseRouter接口的对象。

处理程序完成后,它可以以同步或异步方式将结果返回给MessageRouter。

这种方式处理程序不需要引用ResponseRouter。