2

我通过支持多种通知方法为应用程序增加了一些深度。目前,如果网站上出现异常或网站上发生事件,则会向这些用户发送一封电子邮件,但我希望它更通用。我希望用户能够优先考虑他们的通知方法。如果他们想在在线时收到 XMPP 消息,那么他们会以这种方式收到通知。如果他们不在线,那么他们会收到一封电子邮件,依此类推。

似乎 ESB 是我想在这里使用的,但我看到的每个 ESB 看起来都是重量级的。现在,我没有任何发送/移动文件的意图,也没有集群/故障转移的需要。

我和 Smack 玩过一点,它很适合我想要的东西。它只是一个 XMPP 客户端库。我想在阅读了这些回复之后,我必须确定我从 Apache Camel 或 Active MQ 等获得多少收益。我想要的主要组件是路由引擎。我可以很容易地编写自己的一个,对不同的方法进行优先级/排序,但我想知道现在咬紧牙关而不是以后不得不废弃我的自定义路由引擎是否更有益。

4

4 回答 4

4

ESB 是非常重量级的。除非你有来自埃森哲的人在你耳边窃窃私语,否则我强烈建议你选择一些更易于管理的东西。

EventBus 之类的东西似乎更符合您的要求,或者,如果您使用的是 Spring,它有一个内置的同步/异步事件分派器机制,可以在单个 JVM 上很好地完成这项工作。

于 2010-01-02T23:54:42.327 回答
1

ESB 很重。其中一个集成项目应该可以解决问题。我想到了 Apache Camel 和 Spring 集成。Apache Camel已经内置了对电子邮件和 XMPP 的支持。Spring Integration 内置了电子邮件,但目前您需要构建自己的 XMPP 适配器,但它似乎正在开发中,请参阅Spring Integration 2.0

您需要在其中任何一个中构建一些路由逻辑,以便当您向用户发送消息时,它可以判断用户是否在线并正确路由。

编辑:从技术上讲,Apache Camel 和 Spring Integration 都可以被视为 ESB,但它们绝对属于轻量级,因为它们都没有强制执行容器机制。有关Camel 是否为 ESB 的更多信息。

于 2010-01-03T00:47:40.330 回答
0

我会推荐 Apache Camel - 它非常易于使用,并带有XMPP邮件 支持 - 以及许多其他组件

如果稍后,您想独立管理骆驼 - 您也可以将其部署在OSGI 容器中

于 2010-01-03T12:02:10.570 回答
0

我认为现在就像我过去在其他项目中所做的那样,我将暂时推出自己的消息路由器。它的重量会更轻,我会对这些东西的工作原理有更多的欣赏/理解。

我使用的基础设施可以使用 JMS 后端,但目前正在为单个 JVM 使用观察者/发布者模型。我正在使用 Quartz 作业来处理所有请求,因此服务器不会被太多请求所淹没。当我扩展到更多服务器时,如果需要,我可以使用 JMS 队列,而无需更改我的代码库。

沃尔特

于 2010-01-04T03:03:28.787 回答