Prometheus集群分布式架构浅析

news2024/9/20 4:07:24

集群行为是一种常见于自然界中鱼群、鸟群、蜂群等低等群居生物的集体行为,受此启发形成了无人机集群的概念。无人机集群不是多无人机间的简单编队,而是通过必要的控制策略使之产生集群协同效应,从而具备执行复杂多变、危险任务的能力。目前无人机集群主要分为集中式和分布式,其在目标搜索、定位和跟踪等方面具有巨大的应用潜力。

集中式软件架构和分布式软件架构

  • 集中式软件架构

传统的集中式软件架构工作方式是将集群控制系统的所有任务计算及任务分配工作全部运行在一个主节点的计算单元上,由该主计算单元通过算法计算出任务执行方案,再将该执行方案分发到其它从节点,从节点则按照主节点发布的执行方案执行任务即可。

此种软件架构存在一定的弊端,由于所有计算任务都由主节点来完成,当集群控制系统所运行的算法较为复杂、计算任务较为庞大时,对主节点运算单元的性能有极大要求。同时,从节点计算单元只执行分配的任务而不参与计算,又会造成从节点运算资源的浪费。

  • 分布式软件架构

分布式软件架构则是由集群控制系统给所有计算单元下达主任务,各计算单元独自计算自己所要完成的子任务。即各计算单元通过执行算法将主任务拆分成多个子任务,各自并发执行自己所拆分的子任务,从而最终完成主任务。

相对于集中式软件架构,分布式软件架构的这种方式不仅能最大限度地运用计算资源、提升执行效率,也更能体现集群中协同这一概念。下图为Prometheus集群子模块控制系统框架:

Prometheus分布式软件架构算法 

视频中所有集群使用的均是Prometheus集群子模块控制系统,采用分布式软件架构,结合socket网络通信编程以实现多机通信及机间感知。另外,通过在控制系统中添加诸多异常检测机制,可以更大程度减少由于误操作导致的炸机风险,为研究集群相关功能的开发者提供一个安全高效的二次开发平台。

上述集群系统由任务生成任务选择两部分组成。任务生成算法根据当前无人机的数量以及选择的集群队形,生成满足集群队形的无人机数量的任务目标点位。任务目标点位生成后,选择算法会创建一个代价成本矩阵,并依次遍历当前各无人机到各任务目标点位的代价成本(即距离),并填入矩阵当中。最后遍历代价成本矩阵,确认最小代价值对应的目标点位以及无人机编号,将此目标点位分配给此无人机编号对应的无人机。

循环执行以上步骤,最终分别计算出各无人机对应的任务目标点位。但是此算法主要保证局部最优解而非全局最优解,即最少有一台无人机飞行的飞行代价最小。如果大家想实现全局最优解,可参考以下架构进行二次开发。

Prometheus项目相关资源:

1、项目Github网址:https://github.com/amov-lab/Prometheus

2、项目Gitee网址:https://gitee.com/amovlab/Prometheus

3、使用手册:https://wiki.amovlab.com/public/prometheus-wiki/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/358017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】AVLTree——高度平衡二叉搜索树

文章目录一、AVL树的概念二、AVL树节点的定义三、AVL树的插入四、AVL树的旋转1.左单旋2.右单旋3.左右双旋4.右左双旋五、进行验证六、AVLTree的性能个人简介📝 🏆2022年度博客之星Top18;🏆2022社区之星Top2;的🥇C/C领域优质创作者…

JVM类加载子系统

1、类加载子系统在内存结构中所处的位置通过内存结构图,我们先知道类加载子系统所处的位置,做到心中有图。2、类加载器作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。ClassLoader只负责cla…

anaconda创建环境为空、修改默认环境位置

无论是用navigator还是命令行创建环境都无法指定python版本conda create -n test python3.9其实就是没有路径,添加几个镜像就好:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels ht…

BUUCTF-[安洵杯 2019]crackMe1

题目下载:下载 这道题涉及到SM4加密和变表base64。 SM4简单了解:SM4算法过程_不是小白才怪的博客-CSDN博客_sm4算法 先运行一下程序, 发现有一个Messagebox,并且内容是hooked。 载入IDA,使用IDA的插件Findcrypt查…

ChatGPT:“抢走你工作的不会是 AI ,而是先掌握 AI 能力的人”

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! ChatGPT:“抢走你工作的不会是 AI ,而是先掌握 AI 能力的人” ChatGPT:美国OpenAI 研发的聊天机器人程序,人工智能技术…

Springboot启动过程分析

Springboot启动过程分析 SpringBoot的版本是v3.0.2,下面进行详细的分析。 一、SpringBoot启动流程的主干 示例程序入口如下所示: import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApp…

【网络知识】TCP和UDP详解

TCP和UDP 文章目录UDP协议概述TCP协议概述TCP报文段TCP连接的建立两天内完成下面的参考博客😊点此到文末惊喜↩︎ UDP协议 概述 TCP协议 概述 定义 传输控制协议(TCP,Transmission Control Protocol)是一种传输层通信协议&…

Python 之 Pandas DataFrame 数据类型的简介、创建的列操作

文章目录一、DataFrame 结构简介二、DataFrame 对象创建1. 使用普通列表创建2. 使用嵌套列表创建3 指定数值元素的数据类型为 float4. 字典嵌套列表创建5. 添加自定义的行标签6. 列表嵌套字典创建 DataFrame 对象7. Series 创建 DataFrame 对象三、DataFrame 列操作1. 选取数据…

【LeetCode】剑指 Offer(5)

目录 写在前面: 题目: 题目的接口: 解题思路1: 代码: 过啦!!! 解题思路2: 代码: 过啦!!! 写在最后:…

臻和科技再冲刺港交所上市:近三年亏损14亿元,有股东提前退出

近日,臻和科技集团有限公司(下称“臻和科技”)再次递交招股书,准备在港交所主板上市。据贝多财经了解,这已经是臻和科技第二次冲刺港交所上市。在此之前,臻和科技曾于2022年9月26日递表,后选择了…

hadoop02【尚硅谷】

HDFS 大数据学习笔记 一、HDFS产出背景及定义 HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件&#x…

python基于vue的酒店预约管理平台系统

当用户在上一步中的房间展示界面中点击了房间的图片或者名称之后系统会根据房间的ID自动的跳转到房间的详情页面中来,在房间的详情页面中可以看到房间的图片房间的价格房间的详细介绍房间的类型等内容,当用户登录之后还可以根据需要进行对房间进行预定&a…

Vulnhub靶场之PYLINGTON: 1

1.信息收集 1.输入arp-scan 192.168.239.0/24,探索存活主机,发现主机192.168.239.172存活。 2.对存活主机进行端口扫描,发现22(SSH)、80(Web)端口。 3.访问80端口,在浏览器上输出:http://192.168.239.172。 4.查看…

工具篇3.5世界热力图

一、定义 世界热力图是一种地图形式,它使用颜色的变化来显示世界各个地区的某种指标(如 GDP、人口、气候等)的分布和密度。通常,世界热力图会使用不同的颜色来表示数据的变化,例如使用蓝色表示低值,红色表…

算法leetcode|37. 解数独(rust重拳出击)

文章目录37. 解数独:样例 1:提示:分析:题解:rustgoccpythonjava37. 解数独: 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现…

如何配置git,使其支持多用户

如何配置git,使其支持多用户? 在多数时候, 我们使用git进行操作时,只需要在本地配置一个用户的ssh key,就可以完成基本的pull/push操作。如果现在我有两个github的账号,并需要在一台电脑中操作其中的repo&…

项目管理工具dhtmlxGantt甘特图入门教程(十):服务器端数据集成(下)

这篇文章给大家讲解如何利用dhtmlxGantt在服务器端集成数据。 dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足应用程序的所有需求,是完善的甘特图图表库 DhtmlxGantt正版试用下载(qun 764149912)http…

LVGL WIN32模拟器环境搭建

LVGL WIN32模拟器环境搭建LVGL简介环境搭建IDE 选择模拟器代码下载PC模拟器搭建其他配置项说明LVGL简介 LVGL是一个跨平台、轻量级、易于移植的图形库。因其支持大量特性和其易于裁剪,配置开关众多,且版本升级较快,不同版本之间存在一定的差…

基于springboot+vue的医院信息管理系统

基于springbootvue的医院信息管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介…

2、登录界面开发

【任务描述】本任务要求使用线性布局以及TextView、EditText、Button等常见控件完成智慧园区登录界面的开发。1、线性布局(LinearLayout)1.1、LinearLayout概述线性布局(LinearLayout)主要以水平或垂直方式来排列界面中的控件。并…