파일이 끊임없이 생성되는 많은 서버가 있습니다. 이러한 파일은 중앙 위치로 보내야합니다. 파일은 50MB를 초과 할 수 없습니다. ZeroMQ를 사용하여 이러한 파일 (메시지로 캡슐화 됨)을 보낼 계획이므로 중앙 위치에서 파일 쓰기가 동시에 발생하지 않습니다. 예를 들어 전송을 위해 scp를 사용하면 대상에서 많은 디스크 쓰기 프로세스가 시작됩니다.ZeroMQ 이해하기 : 여러 소스의 파일을 단일 싱크대로 보내는 방법은 무엇입니까?
생산자에- 사용 REQ 소켓과 소비자의 단일 REP 소켓 :
나는 ZeroMQ 함께 할 수있는 몇 가지 방법을 볼 수 있습니다. 이것은 효과가있을 수 있지만 공정한 대기열이 없기 때문에 느린 생산자가 굶어 죽을 것이라고 생각합니다. 또한 REP 소켓을 사용할 수없는 경우 REQ 소켓이 메시지를 삭제하는지 확신 할 수 없습니다.
- 생산자의 PUSH 소켓과 소비자의 PULL 소켓을 사용하십시오. 이것은 소비자에게 공정한 대기열을 가지고 있으며 문서에는 PUSH 소켓 never discard messages이 있다고합니다. 그러나 완전히 신뢰할 수 있습니까?
내 신뢰성 요구 사항은 다음과 같습니다 (내 경우 파일의)
- 메시지가 손실되지 않아야한다. 그래서 저는 소비자에게받은 각 메시지에 대한 생산자에 대한 인정이있는 방식으로 그것을 만들고 싶습니다.
- 특정 제작자의 메시지는 생성 된 순서와 동일한 순서로 수신해야합니다.
- 제작자는 출퇴근 할 수 있으며 일정 기간 동안 소비자가 이용할 수 없도록해야합니다.
어떤 종류의 소켓이 이러한 종류의 응용 프로그램에 적합합니까? 어떤 종류의 zmq 패턴을 가리키는 포인터가 좋을까요?