本文共 1831 字,大约阅读时间需要 6 分钟。
今天无意中发现了一个画架构图的东西,还是python的,那我们就稍微学习一下。这个python库的名字叫做diagrams,安装也很方便。直接pip install diagrams即可。但是安装好了之后,咋还用不了,需要安装Graphviz,我们可以这样理解diagrams只是提供一些基础的语法,然后拼接成指定的graphviz运行文件,然后调用graphviz去执行,最后将结果输出。Diagrams调用graphviz是通过系统变量来调用的,因此如果在没有安装graphviz的情况下运行就会出现下边的报错。这说明我们的系统变量中没有这个graphviz或者压根就没安装。
1.graphviz安装
https://www.graphviz.org/download/
上边是官方网站,我们下载合适的版本,然后直接下一步往下安装。
这里有个小钩,我们选择将其添加到系统变量中。
安装成功之后,我们使用命令
dot -version查看是否安装成功
在按照号diagrams和graphviz之后,我们就开始撸代码画架构图了。这个就需要了解人家的语法了。我们大概的学着画一下,试试看。创建一个python文件
from diagrams import Diagram, Cluster, Edgefrom diagrams.aws.compute import EC2, ECSfrom diagrams.aws.database import RDSfrom diagrams.aws.network import ELB, Route53, NLBfrom diagrams.elastic.elasticsearch import Elasticsearchfrom diagrams.onprem.compute import Serverfrom diagrams.onprem.database import Mysqlfrom diagrams.onprem.inmemory import Redisfrom diagrams.onprem.network import Nginx, Haproxywith Diagram("xx平台",show=False): ha=Haproxy("ha") nginx=Nginx("nginx") with Cluster("hz"): servers=[Server("155"),Server("163"),Server("13.155")] with Cluster("缓存"): redisMater=Redis("centinel") redisMater-[Redis("cluster1")] servers-Edge(style="brow",color="dotted")-redisMater with Cluster("数据库"): rmaster=Mysql("mysql") rmaster-Edge(color="brow",style="dotted")-Mysql("cluster") servers-Edge(style="brow",color="dashed")-rmaster with Cluster("文件"): emaster=Elasticsearch("mster") emaster-Edge(color="brow",style="dotted")-Elasticsearch("cluster") servers-Edge(style="brow",color="dashed")-emaster ha>>nginx>>servers
运行结束之后就画好了我们需要的图。
这块基本上需要的架构元素这个diagrams都含有了。我们特意编写错误的代码,然后让代码无法生成架构图,然后在dot脚本中看到我们需要的架构图片的路径。
我们发现我们所需的各种架构图片这里都有。
这块咋也看不懂这些标志是什么意思。如果想画一个完美的可能还得凭感觉写单词,然后看人家库里有没有,然后在编写代码。这就比较痛苦了。
天晚了,早点睡哦~
转载地址:http://lzumi.baihongyu.com/