2010-01-20 11 views
1

우리는 SMPP 응용 프로그램을 개발했습니다. SMS 수신 속도는 초당 16 SMS입니다. 어떻게이 속도를 높일 수 있습니까?SMPP SMS 수신 속도

+0

송신하지 않고 수신 하시겠습니까? 무엇이 전송을하고있는 것인가? 응용 프로그램이 비동기 적이 지 않은지, 문제가있는 곳인 것처럼 보입니다. – abasterfield

답변

0

Java로 작성된 응용 프로그램의 종류는 무엇입니까?

몇 가지 1. 처리에서 대부분의 시간을 차지하고 있는지 확인하십시오. 그러면 처리 솔루션으로 이어질 것입니다.

하드웨어 구성 등의 다른 요소도 있지만 정상적인 하드웨어는 훌륭한 성능을 제공합니다.

+0

OpenSMPP는 모바일 네트워크에 연결하기위한 자바 표준입니다. Logica라고하는 회사가 개발했습니다. – laura

+0

Cloudhopper도 시도해 볼 수 있습니다. https://github.com/twitter/cloudhopper-smpp.git. 트위터가 SMPP 용으로 사용하는 도서관입니다. – puzz

1

맨 먼저 애플리케이션을 프로파일 링하기 위해 JRat를 가져 오는 것이 좋습니다. 최적화하기 전에 최적화 할 위치를 알아야합니다.

내가 말했듯이, 나는 이것 또한 통과했다. 가장 큰 병목은 ServerPDUEventListener 구현이었습니다. 첫 번째 버전에서는 해당 클래스의 모든 들어오는 PDU를 처리했는데,이 PDU는 액세스를 직렬화했으며 일부는 데이터베이스 액세스를 수행했습니다. 이 문제를 해결 한 방법은 실제로 더 세부적인 방식으로 처리하고자하는 PDU에 대한 스레드를 생성하는 것입니다. 제 경우에는 이것이 DELIVER_SM PDU와 SUBMIT_SM_RESP PDU이지만 실제 개발하는 응용 프로그램에 따라 다릅니다. 별도의 스레드에서 처리하면 내 메인 ServerPDUEventListener은 다음 PDU를 계속 처리 할 수있었습니다. 병목 현상은 서버 소켓을 구현하는 것과 비슷합니다. 클라이언트 소켓이 accept 일 때마다 다른 들어오는 연결을 청취하고 별도의 스레드에서 통신을 처리하려고합니다.

0

먼저 비동기 모드에서 수신 및 발신되는 모든 SMS를 처리합니다. 예를 들어 jsmpp lib에서 모든 트래픽을 비동기 및 동기 모드로 처리 할 수 ​​있습니다. 첫 번째 모드는 빠릅니다.

가능한 경우 별도의 스레드에서 모든 중요한 비즈니스 논리를 처리하고 가능한 경우 예를 들어 엔터프라이즈 Java Bean에서 처리하십시오. 트래픽이 매우 크고 비즈니스 로직이 너무 무거울 경우 smpp에서 비동기 모드를 사용하고 비즈니스 로직에 대한 엔터프라이즈 자바 빈은 애플리케이션 아키텍처를 매우 향상시킬 수 있습니다.

관련 문제