使用Graphviz的dot或neato来布局集群

时间:2011-03-03 02:29:03

标签: graphviz dot neato

我正在尝试使用dot绘制企业中服务和服务器的部署图。对于第一次迭代,我使用neato将每个服务绘制为一个框和Prevent overlapping records using graphviz and neato,加上允许样条线,允许我得到一个合适的布局,边缘作为依赖。

现在我需要将物理服务器放在每个盒子里面。首先,我为每个服务创建了一个名称以 cluster 开头的子图,然后将代表物理服务器的节点放在每个框中。再次,在GraphViz - How to connect subgraphs?的帮助下,我伪造了边缘以连接集群而不是节点。问题是,这只适用于点。当我使用neato进行布局时,它不理解簇之间的边缘,因此它只移动我用来锚定边缘的簇的节点。结果是群集框很大且重叠。

我希望这是有道理的。有没有办法强制neato保持群集中的节点分组?

1 个答案:

答案 0 :(得分:4)

我重新考虑了我在做什么,而不是为每个服务器的子节点使用子图,而是使用记录格式。每个节点现在看起来像

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

并且很多更容易解决这些问题:)