이전 포스팅 [RabbitMQ] 메시지 송신/수신하기
- 사실, MessageQueue로 파일을 송/수신 하는것 자체가 목적에 맞지 않습니다.
- MessageBrocker는 말 그대로 Message만 송/수신 해야합니다.
- 이번 게시물에서 사이즈가 큰 파일을 메시지에 담아 송/수신 하는 방법을 확인하고,
- 사이즈가 큰 파일을 메시지에 담아 보낼 때, FTP와 비교하여 속도가 얼마나 차이가 나는지 테스트해봤습니다.
파일 송/수신
publisher
- msg 송신 시 Byte로 변환 후 message body에 담아 송신합니다.
string ImagePath = @"C:\Users\Desktop\testfile\test.tif";
byte[] imageArray = File.ReadAllBytes(ImagePath);
...
channel.BasicPublish(
exchange: "",
routingKey: "hello",
basicProperties: null,
body: imageArray);
consumer
- msg 수신 후 Byte를 File로 변환 후 저장합니다.
// Receive message
consumer.Received += (model, ea) =>
{
var body = ea.Body.ToArray();
string ImagePath = @"C:\Users\Desktop\testfile\" + Guid.NewGuid() + ".tif";
File.WriteAllBytes(ImagePath, body);
};
File 복사 속도 테스트 (RabbitMQ vs FTP)
- FileSize : 91MB
- RabbitMQ
- Publisher -> Consumer에게 File을 메시지에 담아 송신합니다.
- 메시지 송신 후 수신할 때 까지 소요시간을 측정합니다.
- 파일을 저장합니다.
- (메시지 수신 후 파일 저장 시간: 0.01ms미만)
'프로그래밍 > RabbitMQ' 카테고리의 다른 글
[RabbitMQ] 메시지 송수신 - RoutingKey (0) | 2023.04.19 |
---|---|
[RabbitMQ] 메시지 송수신 - Publish/Subscribe (0) | 2023.04.19 |
[RabbitMQ] 메시지 송수신 - Helloworld (0) | 2023.03.30 |
[RabbitMQ] Docker이용하여 RabbitMQ 설치 - Linux (0) | 2023.03.29 |
[RabbitMQ] RabbitMQ 개념 (0) | 2023.03.29 |