当前位置: 首页 > news >正文

Plantuml之nwdiag网络图语法介绍(二十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:Plantuml之nwdiag网络图语法介绍

2.nwdiag网络图语法介绍

网络图是计算机或电信网络的直观表示。它说明了网络组件(包括服务器、路由器、交换机、集线器和设备)的排列和互连。网络图是网络工程师和管理员了解、设置和排除网络故障的宝贵工具。
nwdiag 由Takeshi Komiya 开发,为快速绘制网络图提供了一个精简的平台。我们对 Takeshi 开发的这一创新工具表示感谢!
由于其直观的语法,nwdiag已无缝集成到PlantUML 中。这里展示的示例受到了Takeshi 所记录示例的启发。

3.简单图示

<1>.定义一个网络

@startuml
nwdiag {network dmz {address = "210.x.x.x/24"}
}
@enduml

在这里插入图片描述

<2>.定义网络中的一些元素或服务器

@startuml
nwdiag {network dmz {address = "210.x.x.x/24"web01 [address = "210.x.x.1"];web02 [address = "210.x.x.2"];}
}
@enduml

在这里插入图片描述

<3>.完整的例子

@startuml
nwdiag {network dmz {address = "210.x.x.x/24"web01 [address = "210.x.x.1"];web02 [address = "210.x.x.2"];}network internal {address = "172.x.x.x/24";web01 [address = "172.x.x.1"];web02 [address = "172.x.x.2"];db01;db02;}
}
@enduml

在这里插入图片描述

4.定义多个地址

@startuml
nwdiag {network dmz {address = "210.x.x.x/24"// set multiple addresses (using comma)web01 [address = "210.x.x.1, 210.x.x.20"];web02 [address = "210.x.x.2"];}network internal {address = "172.x.x.x/24";web01 [address = "172.x.x.1"];web02 [address = "172.x.x.2"];db01;db02;}
}
@enduml

在这里插入图片描述

5.群节点

<1>.在网络定义中定义组

@startuml
nwdiag {network Sample_front {address = "192.168.10.0/24";// define groupgroup web {web01 [address = ".1"];web02 [address = ".2"];}}network Sample_back {address = "192.168.20.0/24";web01 [address = ".1"];web02 [address = ".2"];db01 [address = ".101"];db02 [address = ".102"];// define network using defined nodesgroup db {db01;db02;}}
}
@enduml

在这里插入图片描述

<2>.在网络定义之外定义组

@startuml
nwdiag {// define group outside of network definitionsgroup {color = "#FFAAAA";web01;web02;db01;}network dmz {web01;web02;}network internal {web01;web02;db01;db02;}
}
@enduml

在这里插入图片描述

<3>.一个定义了两个组的例子

@startuml
nwdiag {group {color = "#FFaaaa";web01;db01;}group {color = "#aaaaFF";web02;db02;}network dmz {address = "210.x.x.x/24"web01 [address = "210.x.x.1"];web02 [address = "210.x.x.2"];}network internal {address = "172.x.x.x/24";web01 [address = "172.x.x.1"];web02 [address = "172.x.x.2"];db01 ;db02 ;}
}
@enduml

在这里插入图片描述

<4>.定义了三个组的例子

@startuml
nwdiag {group {color = "#FFaaaa";web01;db01;}group {color = "#aaFFaa";web02;db02;}group {color = "#aaaaFF";web03;db03;}network dmz {web01;web02;web03;}network internal {web01;db01 ;web02;db02 ;web03;db03;}
}
@enduml

在这里插入图片描述

6.拓展语法 (适用于组或者网络)

<1>.网络

  • 用于网络或者网络的组成部分,你可以添加或者修改:
  • 地址 (使用,来分隔);
  • 颜色;
  • 描述;
  • 形状.
@startuml
nwdiag {network Sample_front {address = "192.168.10.0/24"color = "red"// define groupgroup web {web01 [address = ".1, .2", shape = "node"]web02 [address = ".2, .3"]}}network Sample_back {address = "192.168.20.0/24"color = "palegreen"web01 [address = ".1"]web02 [address = ".2"]db01 [address = ".101", shape = database ]db02 [address = ".102"]// define network using defined nodesgroup db {db01;db02;}}
}
@enduml

在这里插入图片描述

<2>.组

  • 对于组,你可以添加或修改:
  • 颜色;
  • 描述.
@startuml
nwdiag {group {color = "#CCFFCC";description = "Long group description";web01;web02;db01;}network dmz {web01;web02;}network internal {web01;web02;db01 [address = ".101", shape = database];}
}
@enduml

在这里插入图片描述

7.对等网络

  • 对等网络是两个节点之间的简单连接,我们不使用水平“母线”网络
@startuml
nwdiag {inet [shape = cloud];inet -- router;network {router;web01;web02;}
}
@enduml

在这里插入图片描述

8.对等网络和组

<1>.第一组

@startuml
nwdiag {internet [ shape = cloud];internet -- router;network proxy {router;app;}network default {app;db;}
}
@enduml

在这里插入图片描述

<2>.第二组

@startuml
nwdiag {internet [ shape = cloud];internet -- router;group {color = "pink";app;db;}network proxy {router;app;}network default {app;db;}
}
@enduml

在这里插入图片描述

<3>.第三组

@startuml
nwdiag {internet [ shape = cloud];internet -- router;network proxy {router;app;}group {color = "pink";app;db;}network default {app;db;}
}
@enduml

在这里插入图片描述

<4>.第四组

@startuml
nwdiag {internet [ shape = cloud];internet -- router;network proxy {router;app;}network default {app;db;}group {color = "pink";app;db;}
}
@enduml

在这里插入图片描述

相关文章:

Plantuml之nwdiag网络图语法介绍(二十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…...

MyBatis接口的方法上使用,定义对应的 SQL 操作

目录标题 一、Mapper&#xff1a;二、Select、Insert、Update、Delete&#xff1a;三、Results、Result&#xff1a;四、Param&#xff1a;五、# 和 $&#xff1a; MyBatis 是一款基于 Java 的持久层框架&#xff0c;它通过简化数据库操作来帮助开发者构建更好的数据库访问应用…...

(20)Linux初始文件描述符

前言&#xff1a;本章我们介绍 O_WRONLY, O_TRUNC, O_APPEND 和 O_RDONLY。之后我们开始讲解文件描述符。 一、系统传递标记位 1、O_WRONLY C 语言在 w 模式打开文件时&#xff0c;文件内容是会被清空的&#xff0c;但是 O_WRONLY 好像并非如此&#xff1f; 代码演示&…...

draw.io基础操作和代码高效画图进阶

文章目录 一、基础操作1、链接2、等比例变形3、复制4、插入表格 二、在线打开三、插入—功能聚集地1、插入图片2、插入画笔3、插入布局4、导出 四、图码转换——高效画图1、通用图码转换2、流程图生成&#xff1a;使用mermaid语言生成图&#xff1a; 五、图码转换高效画图的典型…...

2024-01-04 用llama.cpp部署本地llama2-7b大模型

点击 <C 语言编程核心突破> 快速C语言入门 用llama.cpp部署本地llama2-7b大模型 前言一、下载llama.cpp以及llama2-7B模型文件二、具体调用总结 前言 要解决问题: 使用一个准工业级大模型, 进行部署, 测试, 了解基本使用方法. 想到的思路: llama.cpp, 不必依赖显卡硬件…...

HTTP打怪升级之路

新手村 上个世纪80年代末&#xff0c;有一天&#xff0c;Tim Berners-Lee正在工作&#xff0c;他需要与另一台计算机上的同事共享一个文件。他尝试使用电子邮件&#xff0c;但发现电子邮件不能发送二进制文件。Tim Berners-Lee意识到&#xff0c;他需要一种新的协议来共享二进制…...

axure RP9.0安装字体图标库fontawesome

字体图库地址: Font AwesomeThe internets icon library toolkit. Used by millions of designers, devs, & content creators. Open-source. Always free. Always awesome.https://fontawesome.com/v6/download进入后下载想要的版本如我是6.3 下载后得到压缩包,解压之后…...

PiflowX组件-ReadFromUpsertKafka

ReadFromUpsertKafka组件 组件说明 upsert方式从Kafka topic中读取数据。 计算引擎 flink 有界性 Unbounded 组件分组 kafka 端口 Inport&#xff1a;默认端口 outport&#xff1a;默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子kafka_hostKAFKA_HO…...

keil 5 ARM CC编译错误和警告解释大全(3)序列号2000-3000

2001年&#xff1a;已声明虚拟参数&#xff0c;但从未使用过 2002年&#xff1a;虚拟参数重新定义为do变量 2003&#xff1a;无法优化&#xff1a;常量/表达式传递给可能修改的变量 2004&#xff1a;重新维度的数组作为参数传递 2005&#xff1a;重维度数组等价 2006&…...

CentOS 7 实战指南:文件或目录的权限操作命令详解

前言 这篇文章详细介绍了文件和目录的常用权限操作命令&#xff0c;并提供了全面的技术解析。通过本文&#xff0c;你将学习如何使用 chmod 和 chown 命令来管理文件和目录的权限&#xff0c;控制用户和用户组的访问权限。无论你是初学者还是有经验的系统管理员&#xff0c;这…...

我的第一个前端项目,vue项目从零开始创建和运行

​入门前端&#xff0c;从基础做起&#xff0c;从零开始新建项目 背景&#xff1a;VUE脚手架项目是一个“单页面”应用&#xff0c;即整个项目中只有1个网页&#xff01; 在VUE脚手架项目中&#xff0c;主要是设计各个“视图组件”&#xff0c;它们都是整个网页中某个部分&…...

【OJ】C++,Java,Python,Go,Rust

for循环语法 // cpp// java// python for i in range(集合): for i, val in enumerate(集合): for v1,v2,v3,... in zip(集合1,集合2,集合3,...):Pair // cpp pair<int, string> first second // java Pair<Integer, String> first() new Pair<>(firstVal…...

Flink 任务指标监控

目录 状态监控指标 JobManager 指标 TaskManager 指标 Job 指标 资源监控指标 数据流监控指标 任务监控指标 网络监控指标 容错监控指标 数据源监控指标 数据存储监控指标 当使用 Apache Flink 进行流处理任务时&#xff0c;可以根据不同的监控需求&#xff0c;监控…...

Go语言程序设计-第7章--接口

Go语言程序设计-第7章–接口 接口类型是对其他类型行为的概括与抽象。 Go 语言的接口的独特之处在于它是隐式实现。对于一个具体的类型&#xff0c;无须声明它实现了哪些接口&#xff0c;只要提供接口所必须实现的方法即可。 7.1 接口即约定 7.2 接口类型 package iotype …...

性能优化-OpenMP基础教程(二)

本文主要介绍OpenMP并行编程技术&#xff0c;编程模型、指令和函数的介绍、以及OpenMP实战的几个例子。希望给OpenMP并行编程者提供指导。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&am…...

让电脑变得更聪明——用python实现五子棋游戏

作为经典的棋类游戏&#xff0c;五子棋深受大众喜爱&#xff0c;但如果仅实现人与人的博弈&#xff0c;那程序很简单&#xff0c;如果要实现人机对战&#xff0c;教会计算机如何战胜人类&#xff0c;那就不是十分容易的事了。本文我们先从简单入手&#xff0c;完成五子棋游戏的…...

C#-接口

接口 (interface) 定义了一个可由类和结构实现的协定。接口可以包含方法、属性、事件和索引器。接口不提供它所定义的成员的实现 — 它仅指定实现该接口的类或结构必须提供的成员。 接口可支持多重继承。在下面的示例中,接口 IComboBox 同时从 ITextBox 和 IListBox 继承。 i…...

ASP.NET可视化流程设计器源码

源码介绍: ASP.NET可视化流程设计器源码已应用于众多大型企事业单位。拥有全浏览器兼容的可视化流程设计器、表单设计器、基于角色的权限管理等系统开发必须功能&#xff0c;大大为您节省开发时间&#xff0c;是您开发OA.CRM、HR等企事业各种应用管理系统和工作流系统的最佳基…...

景联文科技GPT教育题库:AI教育大模型的强大数据引擎

GPT-4发布后&#xff0c;美国奥数队总教练、卡耐基梅隆大学数学系教授罗博认为&#xff0c;这个几乎是用“刷题”方式喂大的AI教育大模型的到来&#xff0c;意味着人类的刷题时代即将退出历史舞台。 未来教育将更加注重学生的个性化需求和多元化发展&#xff0c;借助GPT和AI教育…...

PHP进阶-实现网站的QQ授权登录

授权登录是站点开发常见的应用场景&#xff0c;通过社交媒体一键授权可以跳过注册站点账户的繁琐操作。本文将讲解如何用PHP实现QQ授权登录。首先&#xff0c;我们需要申请QQ互联开发者账号获得APPID和密钥&#xff1b;接着&#xff0c;我们下载QQ官方SDK&#xff1a;PHP SDK v…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了&#xff0c;很多小伙伴想体验鸿蒙电脑版操作系统&#xff0c;可惜&#xff0c;鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机&#xff0c;来体验大家心心念念的鸿蒙系统啦&#xff01;注意&#xff1a;虚拟…...

起重机起升机构的安全装置有哪些?

起重机起升机构的安全装置是保障吊装作业安全的关键部件&#xff0c;主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理&#xff1a; 一、超载保护装置&#xff08;核心安全装置&#xff09; 1. 起重量限制器 功能&#xff1a;实时监测起升载荷&a…...