2010-01-20 223 views
1

我们开发了SMPP应用程序。它的短信接收速度仅为每秒16条短信。 我该如何提高这个速度?SMPP短信接收速度

+0

它正在接收不发送?什么是发送 - 它看起来应用程序不是异步的,如果是这样的话就是问题所在。 – abasterfield 2013-12-11 21:26:19

回答

0

这是什么样的应用程序,用Java编写的?

几件事情 1.看看大部分时间在处理中。这将导致解决方案 2.可以优化处理流程来排队和处理消息

还有其他因素,如硬件配置等,但正常的硬件提供了不错的表现。

+0

OpenSMPP是连接到移动网络的Java标准(它是由一家名为Logica的公司开发的,我相信) – laura 2010-01-20 09:43:34

+0

您也可以尝试Cloudhopper:https://github.com/twitter/cloudhopper-smpp.git。这是Twitter用于SMPP的图书馆。 – puzz 2012-09-28 13:03:10

1

首先,我建议让JRat来描述应用程序。在优化之前,您需要知道在哪里进行优化。

这就是说,我也经历了这一点。我遇到的最大瓶颈是ServerPDUEventListener实现 - 在我的第一个版本中,我正在处理该类中的所有传入PDU - 对它们进行序列化访问 - 并且有些正在进行数据库访问!我解决这个问题的方式是通过为实际想要更详细处理的PDU产生线程 - 在我的情况下,这是PDU的DELIVER_SM PDU和SUBMIT_SM_RESP PDU,但取决于您正在开发的实际应用。在不同的线程中处理它们意味着我的主要ServerPDUEventListener可以自由地继续处理下一个PDU。瓶颈与实现服务器套接字相似 - 无论何时您要使用客户端套接字,您都希望返回到侦听其他传入连接并在单独的线程中处理通信。

0

首先在异步模式下处理所有传入和传出的短信。例如,在jsmpp库中,您可以处理异步和同步模式下的所有流量。第一种模式马赫快。

如果可能的话,在单独的线程中处理所有繁重的业务逻辑,如果可能的话,例如在企业java bean中。如果你的流量很大,业务逻辑太大,那么在业务逻辑的smpp和企业java bean中使用异步模式可以极大地改善你的应用程序体系结构。