Java 何时使用ESB?通过电子邮件/XMPP/SMS发送消息

Java 何时使用ESB?通过电子邮件/XMPP/SMS发送消息,java,architecture,jakarta-ee,esb,Java,Architecture,Jakarta Ee,Esb,我通过支持多种通知方法为应用程序增加了一些深度。目前,如果网站出现异常或网站上发生事件,将向这些用户发送电子邮件,但我希望这是更通用的。我希望用户能够优先考虑他们的通知方法。如果他们想在联机时获得XMPP消息,那么他们会得到这样的通知。如果他们不在线,那么他们会收到一封电子邮件,等等 看起来ESB将是我在这里想要使用的,但我看到的每一个ESB看起来都是重量级的。现在,我没有任何发送/移动文件的意图,也没有集群/故障切换的需要 我玩了一点Smack,它对我想要的东西很有效。它只是一个XMPP客户端

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

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


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

ESB非常重磅。除非你有一个埃森哲的人在你耳边低语,否则我强烈建议你做一些更容易管理的事情


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

ESB很重。其中一个集成项目应该可以做到这一点。我想到了ApacheCamel和Spring的集成。已经内置了对电子邮件和XMPP的支持。SpringIntegration内置了电子邮件,但目前您需要构建自己的XMPP适配器,但它似乎正在开发中

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


编辑:从技术上讲,ApacheCamel和Spring集成都可以被视为ESB,但它们肯定处于轻量级的一端,因为它们都没有强制实施容器机制。有关的更多信息。

我建议使用ApacheCamel,它非常易于使用,并提供了支持,以及许多其他工具


如果以后您想单独管理camel,您可以将其部署到一个应用程序中。

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

我正在使用的基础设施可以使用JMS后端,但目前正在为单个JVM使用Observer/Publisher模型。我使用Quartz作业来处理所有请求,这样服务器就不会被太多的请求压垮。当我扩展到更多的服务器时,如果需要,我可以使用JMS队列,而无需更改代码库


Walter

我正在使用JBoss Seam,它还有一个很好的观察者/生产者事件系统,可以配置为对多个JVM使用JMS。我只是想知道在该事件发生后,它应该去哪里,使用ESB来确定如何通知收件人,或者我自己的实现?我遇到了ApacheCamel,并注意到它具有XMPP/email支持,所以这是一个加号。好的,是的,我想我主要关心的是路由,我的印象是ESB有自己的XML语法来定义消息如何路由/转换。这是我最想要的部分。我还想选择它支持哪些模块来保持较小的大小。Camel和Spring集成都可以让您将规则编写为常规代码。他们还将模块拆分为单独的jar文件,例如:,因此您应该只能包含所需的jar。我的意思是添加:Camel和Spring集成都可以让您根据自己的喜好将规则编写为常规代码或XML。