Использование точки или neato в Graphviz для компоновки кластеров

Я пытаюсь нарисовать схему развертывания сервисов и серверов на нашем предприятии с помощью точки. Для первой итерации я использовал neato, чтобы нарисовать каждую службу в виде блока и Предотвращение наложения записей с помощью graphviz и neato, плюс разрешение сплайнов, позволило мне получить приличный макет с краями в качестве зависимостей.

Теперь мне нужно разместить физические серверы внутри каждого из этих ящиков. Сначала я сделал каждую службу подграфом с именем, начинающимся с cluster, а затем поместил узлы, представляющие физические серверы, внутри каждого блока. Опять же, с помощью GraphViz - Как соединить подграфы? я подделал края для соединения кластеров, а не узлов. Проблема в том, что это работает только с точкой. Когда я использую neato для создания макета, он не понимает, что края находятся между кластерами, поэтому перемещает только узел кластера, который я использовал для привязки края. В результате блоки кластера огромны и перекрываются.

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


person Chris Nash    schedule 03.03.2011    source источник


Ответы (1)


Я переосмыслил то, что делал, и вместо того, чтобы использовать подграф для каждой службы с подузлами для каждого сервера, вместо этого использовал формат записи. Теперь каждый узел выглядит как

+------------------------------+
|         Service name         |
+------------------------------+
| server1 | server2 | server 3 |
+------------------------------+

и их намного проще выложить :)

person Chris Nash    schedule 09.03.2011
comment
Вот ссылка на документы для записей: graphviz.org/doc/info/ shape.html # record - person leonigmig; 10.03.2012
comment
Спасибо, это достойное дополнение к этому ответу на случай, если кто-то еще найдет это :) - person Chris Nash; 13.03.2012
comment
HTML-подобные ярлыки гораздо более гибкие, чем записи, кстати. - person Timmmm; 23.11.2017