2010-01-02 2 views
2

알림을 위해 여러 가지 방법을 지원하여 애플리케이션에 좀 더 깊이를 더하고 있습니다. 현재 사이트에 예외가 있거나 사이트에서 이벤트가 발생하면 전자 메일이 해당 사용자에게 발송되지만 더 일반적인 것으로 지정합니다. 사용자가 알림 메서드의 우선 순위를 지정할 수 있기를 바랍니다. 그들이 온라인 일 때 XMPP 메시지를 받고 싶다면 그렇게 통보 받게됩니다. 온라인 상태가 아니면 이메일 등을 받게됩니다.ESB를 언제 사용합니까? 이메일/XMPP/SMS로 메시지 보내기

ESB가 내가 여기에서 사용하기를 원하는 것처럼 보이지만 모든 ESB는 헤비급처럼 보입니다. 지금은 클러스터링/장애 조치 (failover)를 위해 파일 전송이나 이동의 필요성을 아직 갖고 있지 않습니다.

나는 Smack으로 조금 놀았으며, 내가 원하는 것에 잘 맞습니다. 이것은 단순히 XMPP 클라이언트 라이브러리입니다. 이 응답을 읽은 후에는 Apache Camel이나 Active MQ 등에서 얻을 수있는 양을 결정해야합니다. 원하는 주요 구성 요소는 라우팅 엔진입니다. 나는 쉽게 내 자신의 하나를 쓸 수 있습니다, 우선 순위/다른 방법을 주문하지만, 나중에 더 많은 도움이 될지 궁금하네요. 이제는 반대로 나중에 내 맞춤 라우팅 엔진을 폐기해야합니다.

답변

0

나는 다른 프로젝트와 과거에 해왔 던 것처럼 지금 당분간 내 자신의 메시지 라우터를 출시 할 것입니다. 그것은 더 가벼울 것이고, 나는 그 물건이 어떻게 작동하는지 더 큰 이해/이해를 가질 것이다.

내가 사용하는 인프라는 JMS 백엔드를 사용할 수 있지만 현재 현재 단일 JVM에 대해 Observer/Publisher 모델을 사용하고 있습니다. Quartz 작업을 사용하여 모든 요청을 처리하므로 서버가 너무 많은 요청을 처리하지 못한다. 더 많은 서버로 확장 할 때 필요한 경우 코드 기반을 변경하지 않고 JMS 대기열을 사용할 수 있습니다.

월터

4

ESB는 매우 중량입니다. 귀사에 속삭이는 액센추어 직원이 없으면 좀 더 관리하기 쉬운 것으로가는 것이 좋습니다.

EventBus과 같은 것은 사용자의 요구 사항에 따라 더 많은 것처럼 보이거나 Spring을 사용하는 경우 단일 JVM에서 작업을 멋지게 처리하는 내장 된 sync/async 이벤트 디스패처 메커니즘을 가지고 있습니다.

+0

을 나는 보스 솔기를 사용하고, 또한 잘 작동하는 여러 JVM에 대한 JMS를 사용하도록 구성 할 수있는 좋은 관찰자/프로듀서 이벤트 시스템이 있습니다. 이벤트가 발생하면 궁금한 점이 있습니다. ESB를 사용하여받는 사람에게 알리는 방법을 결정하거나 직접 구현해야합니까? –

1

ESB는 중량입니다. 통합 프로젝트 중 하나가 트릭을 수행해야합니다. Apache Camel과 Spring Integration이 마음에 듭니다. Apache Camel은 이미 Email 및 XMPP를 지원합니다. Spring Integration에는 전자 메일이 내장되어 있지만 현재 자신 만의 XMPP 어댑터를 구축해야하지만, 앞으로 진행되는 것처럼 보입니다. Spring Integration 2.0을 참조하십시오.

사용자에게 메시지를 보낼 때 사용자가 온라인 상태인지 적절하게 경로를 알 수 있도록 라우팅 논리를 작성해야합니다.

편집 : 기술적으로 Apache Camel과 Spring Integration은 모두 ESB로 간주 될 수 있지만 어느 쪽도 컨테이너 메커니즘을 시행하지 않기 때문에 분명히 규모의 경량 끝에 있습니다. whether Camel is an ESB에 대한 자세한 내용.

+0

나는 Apache Camel을 보았고 XMPP/이메일 지원 기능을 가지고 있다는 것을 알게되었다. Ok, 예, 라우팅에 주로 관심이 있다고 생각합니다. ESB에 메시지가 라우팅/변환되는 방식을 정의하는 XML 구문이 있다는 인상하에있었습니다. 그것이 제가 주로 원하는 부분입니다. 또한 크기를 줄이기 위해 지원하는 모듈을 선택하고 싶습니다. –

+0

Camel과 Spring 통합 모두 규칙을 정규 코드로 작성할 수 있습니다. 또한 두 모듈 모두 모듈을 별도의 jar 파일 (예 : http://repo2.maven.org/maven2/org/apache/camel/)로 나눕니다. 따라서 필요한 jar 파일 만 포함 할 수 있어야합니다. –

+0

나는 덧붙이려고했다. Camel과 Spring Integration 모두 사용자의 기호에 따라 규칙을 일반 코드 또는 XML로 작성할 수있게 해준다. –

0

아파치 카멜을 사용하는 것이 좋습니다. 매우 사용하기 쉽고 XMPPmail을 지원하며 많은 다른 components과 함께 제공됩니다.

나중에 낙타를 관리하려는 경우 OSGI container too에 배포 할 수 있습니다.