Как мы можем получить количество одновременных активных потоков в кластере? - PullRequest
0 голосов
/ 28 апреля 2018

Я работаю с java-сокетами и передаю данные между узлами кластера. Передача может быть в виде дерева braodcast (мастер отправляет данные на некоторые узлы, а остальные отправляют полученные данные), цепной передачи (мастер отправляет данные на все рабочие последовательно), перемешать (все узлы обмениваются данными одновременно)

trasnfers - это просто поток между двумя узлами (мастер-рабочий или рабочий-работник), использующий java serverSocket и сокетную связь.

как определить количество одновременных потоков (активный поток в кластере), чтобы я мог запланировать эти потоки и назначить каждому потоку часть сети

пропускная способность сети составляет 1 Гбит / с размер буфера сокета составляет 8192 байта

здесь иллюстрация

1 Ответ

0 голосов
/ 28 апреля 2018

Лучшее, что вы сможете сделать, - это сохранить собственную структуру данных, записывающую «потоки», а затем считать их.

API-интерфейсы Java не предоставляют способ найти или сосчитать все открытые сокеты или определить, какие из них активны в настоящее время. Вероятно, это невозможно отследить даже на уровне собственного кода. И это только в рамках одной JVM: у вас есть несколько JVM в вашем кластере.

...