10

我熟悉 Camel-SMPP,它也非常适合我的消费者和生产者路线。我正在使用 Selenium SMPP SIM 进行测试。

来自 uri="smpp://smppclient@127.0.0.1:8056?password=password&systemType=consumer"/>

到 uri="smpp://smppclient@localhost:2775?password=password&&systemType=producer"/>

但是,我想让我的 Camel 作为服务器运行(它接受来自众多客户端的 SMS)。我当前的 From 路由与一个 SMS 发送者紧密耦合。如何将其修改为通用服务器。骆驼有可能吗?

4

1 回答 1

0

如果我理解你的问题是正确的,你有:

  • 127.0.0.1:8056 作为短信客户端
  • localhost:2775 作为短信发送者

看起来像这样

from:client1 ----> to:sender1

假设您想将更多SMS 客户端连接到您的SMS 发件人

from:client1 -----> to:sender1
from:client2 ----/
from:client3 ---/

您需要做的就是节点添加更多内容。

我认为您正在使用 springish xml 文件来配置 Camel。这意味着您以声明方式执行此操作,而骆驼执行的操作与您在 xml 文件中声明的一样多。没有for循环什么的。因此,从字面上看,您需要在from uri="smpp://smppclient@127.0.0.1:8056?password=password&systemType=consumer"/>xml 中添加更多行。以其他方式,您可以使用骆驼 java API 动态配置/添加节点。因此,您可以从 DB 或其他任何方式配置或添加节点。

好吧,但是您必须添加尽可能多的to uri="smpp://smppclient@localhost:2775?password=password&&systemType=producer"/>节点,这并不是我们的意思。为了解决这个问题,我们在两者之间添加了一个抽象节点。它看起来像:

from:client1 -----> direct:sender ----> to:sender1
from:client2 ----/
from:client3 ---/

所以你的代码将是:

from uri="smpp://smppclient@127.0.0.1:8056?password=password&systemType=consumer"/>
to uri="direct://sender"
from uri="smpp://smppclient2@...."/>
to uri="direct://sender"
from uri="smpp://smppclient3@..."/>
to uri="direct://sender"

from uri="direct://sender"
to uri="smpp://smppclient@localhost:2775?password=password&&systemType=producer"/>

你可以考虑使用seda而不是direct这样你很容易排队。

于 2013-12-16T08:44:05.983 回答