2011-05-03 6 views
2

저는 한 곳에서 많은 출처의 메시지를 수집하는 것이 목표 인 새로운 프로젝트를 계획하고 있습니다. 동일한 네트워크에있는 서로 다른 서버의 기본적으로 다른 웹 사이트는 중앙 로거에 취해진 조치에 대한 정보를보고해야합니다. 나는이 서비스를 클라이언트에게 제공하기를 원합니다. 각 사이트는 메시지를 중앙에서 실행합니다. 메시지가 실제로 수신되었다는 응답을 할 필요가 없으며,로드가 걸린 메시지를 삭제하면 정상입니다. 클라이언트가 요청할 경우 메시지를 수신하고 로깅 할 수있는 응답을 선호합니다.여러 소스에서 메시지를 수집하는 가장 좋은 방법은 무엇입니까?

저는 사이트 측에서 PHP로 작업하고 있으며 로깅 측면에서도 마찬가지로 작업하는 것을 선호합니다. 아무도 나를 위해 어떤 프로토콜이나 아키텍처에 통찰력을 줄 수 있을까요?

편집 또는 다른 사람이 제안하는 메시징 라이브러리가 있습니까? 나는 프로토콜이나 디자인에 대한 좋은 해답을 찾고 있는데, db가 가장 쉽게 확장 될 수 있고, 말할 수있는 네트워크 프로토콜이 무엇인지에 관한 것입니다. UDP가 이와 같은 것에 좋을까요? 메시지 전송 속도는이 설계에서 가장 중요한 요소입니다.

현재 계획에 로그인하기 위해 하나의 서버로 작업하고 있습니다.

+0

음, 좀 더 "시스템"언어와 UDP를보아야합니다. – zerkms

+0

단일 로그 파일이어야합니까? (실제로 로거가 파일입니까?) 나중에 결합되는 여러 로그가 될 수 있습니까? HTTP가 어떤 이유로 사용하기에 좋지 않은 프로토콜이라고 생각합니까? – Marvo

+0

@Marvo : TCP/IP를 통한 응용 프로그램 계층 프로토콜 인 http는로드가 많은 환경의 UDP와 비교할 때 훨씬 나쁩니다. – zerkms

답변

0

중간에 메시지 대기열 시스템을 찾고 있습니다. 그 뒤에는 메시지를 수집하고 처리하는 로거가 있습니다.

내가 찾은 선택 중 일부는 RabbitMQ, Kestrel 및 Beanstalkd입니다.

1

나는 강력하게을 사용하려면 node.js을 사용하는 것이 좋습니다. 서버를 시작하고 실행하는 것은 간단합니다 (UDP 기반 서버의 예제는 this link 참조). node.js가 아니기 때문에 노드 (npm은 제 3 자 모듈 설치에 적합합니다)에 설치할 수있는 데이터베이스 모듈이 있습니다.

성능을 비하면 PHP로 작성된 모든 것을 넣을 수 있습니다.

관련 문제