고유 한 파일을 생성하는 시스템 세트를 생성해야하며이를 PRODUCERS라고 부르며 컴퓨터 세트는 CONSUMERS라고하는 이러한 파일을 수신해야합니다. PRODUCERS의 모든 컴퓨터는 하나 이상의 소비자에게 파일을 보낼 수 있습니다 (일부 해시 메커니즘을 기반으로). 필자는 보장 된 mannner에서 파일 전송이 이루어 지도록 보장하는 메커니즘을 구축해야합니다. 즉 제작자 또는 소비자가 충돌하거나 재부팅되어 중단 된 부분부터 계속할 수 있습니다. 이것을 구현할 수있는 어리석은 확장 가능한 방법이 있습니까? 모든 내결함성 시스템에서 공통적 인 필요가있는 것 같습니다. 생산자와 소비자의 수는 즉석에서 증가/감소 할 것으로 예상됩니다.비동기 분산 파일 전송
2
A
답변
0
당신이 묘사 한 것은 아마 어떤 형태의 메시지 전달을 사용하여 가장 쉽게 구현할 수 있습니다. http://www.zeromq.org을 살펴볼 수도 있습니다. 나는이 도서관과 함께 일해 왔으며 전심으로 그것을 추천 할 수있다.
사이드 노트 : C++을 사용할 필요가없는 경우 Erlang을 선택하는 것이 좋습니다.
1
설명하는 내용은 Google File System 아키텍처의 복제 메커니즘과 비슷합니다. 보내는
- 생산자 : 그것은 귀하의 케이스에 적용 당신은 그림의 그림 (단순화와) 2.
요약과 함께 3.1 용지의 3.2에 가장 관심이있을거야 데이터, 응답을 기다립니다.
- 소비자 (s) 답장, "모든 데이터를 받았습니다."
- PRODUCER은 "finish write"명령을 보내고 응답을 기다립니다.
- 소비자 (s) 회신, "데이터를 디스크로 플러시했습니다."
- 지금은 데이터가 "저장 됨"으로 간주됩니다. 신문에 설명
GFS로 소비자에게 쓰기를 파이프 라이닝 대신 동시에 N 기계를 통해 하나의 시스템의 대역폭을 분할 포함 최적화의 숫자를 구현합니다.
충돌을 통한 안전 보장을 위해 Intent Log을 사용하여 멱등 원기 쓰기 작업을 수행 할 수 있습니다. 이것은 생산자가 끝날 때만 가능합니다 (예를 들어 시간 초과 후 재 시도) 또는 소비자 측에서도 가능합니다 (재부팅시 작업 계속).
관련 문제
- 1. 분산 컴퓨팅 : 비동기 수신
- 2. C# 비동기 전송
- 3. 비동기 대리자 메서드를 전송 - 아이폰
- 4. C# 비동기 객체 전송 (소켓?)
- 5. 분산 파일 시스템에서 파일 순회
- 6. .NET에서 분산/비동기 소켓 I/O 수집
- 7. 파일 서버 분산 캐싱
- 8. C# TCP 파일 전송 중지
- 9. TeraTerm을 사용하여 파일 전송 속도, 전송 시간,
- 10. 스트리밍 전송 모드에서 파일 이름 전송
- 11. .NET 용 분산 파일 시스템
- 12. 대규모 분산 시스템의 로그 파일
- 13. Django 대용량 파일 전송
- 14. FTP에서 파일 전송
- 15. 자동 파일 전송 (매일)
- 16. 소켓 파일 전송
- 17. WCF 스트리밍 파일 전송
- 18. node.js CSS 파일 전송
- 19. 안드로이드, 파일 전송
- 20. C++로 파일 전송
- 21. 네트워크를 통해 파일 전송
- 22. 전송 FTP 무시 파일
- 23. winsock을 사용한 파일 전송
- 24. 서버 소켓 파일 전송
- 25. C에서 파일 전송
- 26. 소켓으로 대용량 파일 전송
- 27. 소켓을 통한 파일 전송
- 28. 시스템간에 이진 파일 전송
- 29. Windows에서 네트워크 파일 전송
- 30. 소켓을 통한 파일 전송