2016-10-02 3 views
0

Я собираюсь реализовать сортировку с использованием многих машин (распределенная сортировка). Я закодирую его с помощью Scala. Поскольку у меня нет большого опыта работы с сетевым программированием, мне нужно, чтобы вы, ребята, помогли мне выбрать, какую библиотеку и способ сделать связь между машинами:Вопросы по дизайну распределенной системы - Scala

1/Сколько машин может связываться с помощью Message (это будет реализовано как случай класс в Scala)? Можно ли использовать ServerSocketChannel? Или я должен построить TCP-сервер для каждой машины? Нужно ли сериализовать и де-сериализовать объект Message? Если нужно, могу ли я использовать protobuf для этого?

2 Как я могу отправить данные по сети? Должен ли я использовать java.io или java.nio?

Мне нужно построить свой проект, используя как можно меньше зависимостей. Большое спасибо.

+0

Ответ на большинство из них - «это зависит» - от того, что вы сортируете, где хранятся данные, объемы по сравнению с количеством машин и так далее. –

ответ

2

Я бы начал с самой простой библиотеки сообщений высокого уровня, и, поскольку вы выбрали Scala, я бы начал с Akka, который был разработан с учетом Scala.

Как много машин могут общаться, используя сообщение

Вы можете общаться с каждой машиной можно подключиться, например, весь интернет.

При необходимости, могу ли я использовать protobuf для этого?

Я подозреваю, что вам это не нужно, но да.

Как я могу отправить данные по сети?

Я хотел бы использовать библиотеку обмена сообщениями

Должен ли я использовать java.io или java.nio?

Библиотека обмена сообщениями, скорее всего, будет использовать их, но я бы не предполагал, что вам нужно использовать их напрямую.

Я собираюсь выполнить сортировку с использованием множества машин (распределенная сортировка).

Есть библиотеки, предназначенные для Scala, которые делают это уже. Я бы использовал один из таких, например. Spark или Hadoop.

+0

Мне не рекомендуется использовать Hadoop, Spark, Akka. Любая стандартная библиотека? – hminle

 Смежные вопросы

  • Нет связанных вопросов^_^