Documente Academic
Documente Profesional
Documente Cultură
Raport
Lucrarea de laborator nr. 2
La disciplina: Aplicatii Distribuite Avansate
A efectuat:
A verificat: lect.,univ.
Torica Eugeniu
Chișinău 2020
Sarcina:
1) Să se separe aplicaţia curentă în două aplicaţii:
a) Componenta Producător – va fi responsabilă de citirea datelor din fişierul
”input.txt” şi publicarea numerelor în formă de mesaje în brokerul de mesaje
(RabbitMQ). Mesajele vor fi consumate de către componenta Consumator.
Componenta Producător va primi rezultatele de calcul care vor fi efectuate de
componenta Consumator şi le va înscrie în fişierul ”outputs.txt”.
b) Componenta Consumator – va fi responsabilă de consumul datelor din brokerul de
mesaje şi efectuarea calculului. Calculul trebuie să fie efectual de funcţia sleepy
fibonacci
3) Efectuaţi calculul pentru scenariul cînd există cînd rulează în paralel patru componente
Consumator.
Dupa ce pornim RPC Client , care trimite requesturile spre Broker, observam ca mesajele
sunt consumate de toate cele 4 instante de Server.
CLasa Client:
package com.example.rabbitmq;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.UUID;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.TimeoutException;
@SpringBootApplication
public class RPCClient implements AutoCloseable {
connection = factory.newConnection();
channel = connection.createChannel();
channel.basicQos(1);
}
while(scanner.hasNextInt()){
tall[nr++] = scanner.nextInt();
}
package com.example.rabbitmq;
import com.rabbitmq.client.*;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class RPCServer {
channel.basicQos(1);
try {
String message = new String(delivery.getBody(), "UTF-8");
int n = Integer.parseInt(message);