文献阅读:Camp-INC-面向网络计算云边连续体的组件感知微服务放置,2022 IEEE Global Communications Conference

本文主要是介绍文献阅读:Camp-INC-面向网络计算云边连续体的组件感知微服务放置,2022 IEEE Global Communications Conference,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 研究现状

在带有各种分布式应用程序(包括机器学习)的互联网连接设备数量快速增长的背景下,中心化的云计算模型在满足新兴应用程序需求方面有它自身的不足。云计算最初是为部署在具有高度可用资源的数据中心的单体应用程序而设计的。此外,当前的多路接入边缘计算旨在通过将应用程序的功能分布到多个边缘设备,来满足一些新的性能需求,以取代在远距离的数据中心单独运行。与此同时,工业和学术界已经在密切关注利用网络设备完成计算任务的网内计算模式(INC)。INC已经被证明在降低延迟和网络流量以及增加吞吐量方面有效。因此,将来的计算基础设施将横跨云、核心网以及边缘端。在包含INC的云边连续体中,设备的异构性需要微服务架构,因为微服务能够在不同大小的主机上进行部署。微服务架构的成功需要具备五个主要条件:①微服务复制,②服务注册表,③专用数据库,④弹性以及⑤负载均衡。

首先,为了确保微服务复制,应设置一套允许微服务根据传入请求在不同节点上进行扩展的机制。第二,允许服务发现,在微服务架构中,服务注册表起到了一个关键性作用,其是一个包含可用微服务位置的数据库。当一个新的微服务被部署时,它必须首先注册到这个服务注册表中。第三,为了与其他微服务解耦,每一个微服务都应该具有自己的专用数据库。然而,它们可以部署在单独的节点中,因为它们可以独立扩展。第四,微服务的分布式特性使其更具容错性和弹性。然而,依赖微服务可能会受到物理节点故障的干扰。为了增强弹性,应该为微服务架构提供故障检测机制和恢复能力。第五,需要一个负载均衡器来平衡相同微服务之间的请求负载。

关于微服务放置问题,已有文献中出现了一些研究工作。[10]研究了微服务的动态竞争与可用性,以及微服务实例之间的共享依赖库问题。然而,它们只考虑了负载均衡。[11]的作者在基于微服务之间的通信考虑了内部服务构成的前提下,引入了一个新的微服务放置策略。论文[12]研究了端到端(E2E)服务延迟估计算法,并研究了如何提高微服务的放置能力。尽管如此,但是[11]和[12]主要聚焦于满足性能需求,而不是解决微服务架构需求。现有微服务放置方法通常专注于把微服务当作一个组件而忽略了它们的数据库与服务注册表。此外,很多研究仅关注云、边或者INC模式,但忽视了它们结合起来的可能性。

考虑到现有方法的局限性,本文旨在确保受延迟约束的应用程序的QoS的前提下,同时最小化成本和考虑面向INC云边连续体的微服务架构需求(即前面提到的②,③以及④)。据我们所知,这是首个破除现有方法局限性的研究工作。

  • 现有工作面临的问题

在边缘和网络设备中部署微服务比在云上部署更昂贵。此外,一些工作没有考虑微服务架构的主要需求,例如服务注册、故障检测和每个微服务的特定数据库。

  • 本文主要贡献

在考虑物理节点故障和到服务注册中心距离的情况下,本文研究了组件放置问题,即微服务及其相应数据库的放置问题。提出了面向网络计算云边连续体的组件感知微服务放置算法(CaMP-INC)。该文构想出一个以成本最小化为目标的整数线性规划(ILP)问题。由于该问题是NP困难的,所以该文提出了一种启发式解决方法。

  • 实现结果

数值仿真结果表明:该文提出的CaMP-NIC算法将总成本平均降低了15.8%,而且相比于基准系统,该算法在延迟最小化方面有更出色的性能。

  • 下一步工作

作者计划通过集成其余的微服务架构需求来扩展本文提出的CaMP-INC解决方案,比如微服务的复制和负载均衡。此外,计划在更大的拓扑结构上进行仿真,并计划在 kubernetes进行实验评估。

  • 系统模型

1.设计目标

①如果微服务以数据作为输入或者将结果存储到数据库,那么此微服务应该拥有一个数据库。

②利用弹性机制来检测故障节点,避免将其用于微服务的放置;

③确保微服务与注册表之间的通信不受延迟阈值的干扰。

    2.远程诊疗

为了更好的说明系统模型,该文考虑了一个完整患者用例,通过全息患者,医生可以探查身体、查看视觉指示,并通过远程检查验证健康问题。此外,全息技术允许医生从患者那边获得触觉、听觉以及视觉反馈,并能评估全息患者的不同病理及其症状。为了给医生和患者提供一次愉快的经历,必须选择处理的最佳位置,以提供实时交互。

像摄像机、麦克风、机器人以及触觉手套等内容生产设备产生患者的相关数据,即在完整的患者用例中,麦克风记录、摄像机记录、机器人传感数据以及触觉手套传感器数据。终端用户发送请求在内容数据上运行服务。这个服务是一个需要被执行的微服务序列。每个微服务通过读/写操作与私有数据库通信。这些微服务被部署在服务器和网络设备上。

如图1所示,一个微服务请求到达编排器(step 1),其是负责管理微服务的组件。这个编排器包括三个主要的组件:①故障检测器(FD),②放置管理器(PM),③注册管理器(RM)。

FD定期检查是否检测到网络故障,其周期性检查网络状态与保持对列表中故障节点的跟踪。每当这个列表要更新时,FD通知PM(step2)。然后,PM相应地决定微服务与其数据在网络节点上的放置。放置了微服务链之后,RM对托管这些新微服务的节点与现有服务注册表之间的距离进行验证(step3)。如果上述距离超出特定阈值,那么RM将会决定在这些微服务附近放置一个新的服务注册表。再然后,这个编排器在PM决定的节点上分发微服务及其数据库(step4)。放置结束之后,服务注册表触发新部署的微服务以进行服务发现。最后,这些微服务发送它们的位置(即IP地址)到服务注册表(step6)。 

这篇关于文献阅读:Camp-INC-面向网络计算云边连续体的组件感知微服务放置,2022 IEEE Global Communications Conference的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/311372

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

kotlin中的行为组件及高级用法

《kotlin中的行为组件及高级用法》Jetpack中的四大行为组件:WorkManager、DataBinding、Coroutines和Lifecycle,分别解决了后台任务调度、数据驱动UI、异... 目录WorkManager工作原理最佳实践Data Binding工作原理进阶技巧Coroutine