Предположим, у меня есть относительно большой файл (около 100 МБ), который я хочу для многоадресной рассылки всем членам кластера. Как отправить файл в куски с помощью jgroups (желательно с демонстрацией кода)? Файл следует читать в кусках со стороны приемников. Также как я могу гарантировать, что порядок последовательности кусков поддерживается на стороне приемников.Как многоадресные файлы в jgroups
EDIT 1 Вот что я пробовал до сих пор. Я просто отправить файл в целом и записи его содержимого на стороне получателя во временный файл
public class SimpleFileTransfer extends ReceiverAdapter {
JChannel channel;
private void start() throws Exception{
channel = new JChannel();
channel.setReceiver(this);
channel.connect("FileCluster");
// channel.getState(null, 10000);
File file = new File("/res/test.txt"); //the file to be sent
eventLoop(file);
channel.close();
}
private void eventLoop(File file) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
try {
Message msg = new Message(null, null, in);
channel.send(msg);
}
catch (Exception e){
e.printStackTrace();
}
}
public void receive(Message msg)
{
try {
File temp = new File("/res/temp.txt");
FileWriter writer = new FileWriter(temp);
InputStream in = new ByteArrayInputStream(msg.getBuffer());
int next = in.read();
while (next != -1){
writer.write(next);
next = in.read();
}
}
catch (IOException ie)
{
ie.printStackTrace();
}
}
}
Это не сайт, где люди пишут код для вас. Покажите, что вы уже пробовали, тогда люди помогут вам. Downvoting. –
@ Мы - Борг, достаточно справедливы. Я уточнил вопрос с тем, что я пробовал до сих пор. – avidProgrammer
@WeareBorg Я думаю, что вы сделали свою мысль, вам не нужно было опускать довольно хороший вопрос. – kimathie