2016-12-21 2 views
0

ejabberd를 서버로 선택한 XMPP 애플리케이션을 구축하고 있습니다. 우리는 유스 케이스에 맞게 프로토콜 수준에서 많은 변경을했습니다. 그러나 우리는 ejabberd가 어떻게 응용 프로그램 논리를 그 부영양화 백엔드와 결합시키는 지에 만족하지 않습니다. 쉬운 유지 보수와 디버깅을 위해 시스템을 분리하고 ejabberd 제어 로직과의 자원 경쟁을 피하기 위해 세션을 보유하고있는 세션을 제외하고 모든 쉐이더 테이블을 다른 노드로 이동하려고합니다. 이 경우 레이턴시로 인해 어려움을 겪게 될 것입니다. 우리의 질문은 그러한 접근법을 사용하는 더 나은 디자인입니까? 유통 문제가 더 심해질 것인가? 아니면 또 뭐야? 옵션에 대한 세부적인 이유를 알려주십시오.Ejabberd는 애플리케이션 로직을 백엔드와 결합합니다.

답변

0

실제로 데이터를 저장하는 모듈은 백엔드 개념을 중심으로 설계되었습니다. 그들은 기억 상실증에 단단하지 않습니다. 기존 코드에서 각 모듈 백엔드에 대한 API를 확인할 수 있습니다. 관계형 DB, Riak, Redis 등에서 저장할 수있는 모듈이 보통 있음을 알 수 있습니다.

정확한 동일한 API를 사용하여 사용자 정의 백엔드를 구현할 수 있습니다.

+0

다른 서비스에서 사용할 수 있도록 non-ejabberd 노드로 테이블을 이동하는 것에 대해 어떻게 이야기합니까? 이런 식으로 ejabberd는 특수 메시지 API를 사용하여 메시지를 전달하여 백엔드를 읽고 씁니다. –

+0

ejabberd 백엔드 API 덕분에 원하는대로 백엔드 모듈을 작성할 수 있습니다. 실제로 이러한 백엔드 모듈은 HTTP/ReST API를 호출 할 수 있습니다. 이것은 ejabberd 백엔드 API에 대한 일반적인 용도입니다. –