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

毕业设计:《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》

前言

《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》,这是我在本科阶段的毕业设计,通过引入 Prometheus 和 ELK 架构实现企业对指标与日志的全方位监控。并且基于云原生,使用容器化持续集成部署的开发方式,通过 SpringBoot 和 Vue 的前后端分离技术,开发出基础平台监管系统,实现对所有基础平台的全面监控与可视化管理,让每一个监控项精确跟踪,每一个流程责任到人,每一个问题闭环处理。

首先我先整体概述一下我的业务,简单来讲就是,利用 Prometheus 实现对组件的指标监控(比如对服务器的使用率监控,超过了一个值就报警),利用 ELK 实现对日志的监控(比如监控 Java 的一个项目,监控到一个日志出现 ERROR 标签,就报警),报警会通知到对应的负责人,平台也会跟踪处理情况,以及其他一些辅助功能。

为什么选择这样一个题目?其实也是一个巧合,当时我也不知道做什么,老师直接给了我们组很多题目,让我们自己选,我选择了其中一个,题目是什么什么基础平台监控系统。当时由于我的知识匮乏,我认为这个监控是指对公司业务的监控,也就是类似于一个 OA 系统。但其实老师指的是对支撑公司的网络平台的各个组件的监控,监控他们的各项指标,像是 CPU 占用率这种,下图就是老师想让我完成的一个大概内容。我对这个内容是完全没有涉及,只能从零开始学。
在这里插入图片描述

毕业论文必须要有创新点,我的创新点就是不仅在平台中实现了指标监控,还加入了日志监控。市面上有很多做这种现成指标监控的平台,做日志监控平台的几乎没有,可能都是自己搭,具体我也不清楚为什么,可能指标更为关键,更直接可以看到问题所在,而日志,可能更多的作用是在报警之后,来 debug 的。当然我这个只是毕业设计,其实主要就是实现一个业务,体现工作量,并不具备什么实用价值。

这篇论文包括毕业设计,我在当时是拿了优秀毕业设计,当然我知道我的本科并不好,和其他好学校的人差距还是很大,但这个毕设我觉得还是有一点意义吧。这个意义不是说能解决业界的某些问题,我完全没有这个能力。而是说,我觉得下面 Web 架构、指标监控架构、日志监控架构我觉得可能能对一些初学这提供一些帮助。因为这些内容网络上并没有直接现成的东西,都是通过我自己的知识储备、自己的试错、网络上各种文章,最后做出来的一套东西。所有的源码都在 Github 上,结构、注释非常清晰,我希望这会对大家有些帮助。如果对大家有帮助,可以帮我点个 Star 支持一下我。

需求概述

需求可以分为以下几点:

  1. 信息采集:需要满足对支撑平台的指标、日志的采集,包括应用程序、数据库、中间件、主机等。并且要满足可以持续、实时的采集各类信息,以及对信息进行适当的清洗,提高其质量与准确性。
  2. 监控报警:可以根据监控需求自定义监控规则,以及告警的方式,包括第三方、邮件、短信等。并且需要实时的监控,及时掌握系统的运行状态、性能情况等。以及事后的信息查阅,便于之后的分析。
  3. 日常管理:包括对数据源的添加、报警规则的添加、报警后处理的跟踪等,一切都责任到人,进行全方位管理。以及对人员权限、任务分配、知识库等内容的实现。
  4. 综合分析:通过图表、报表的形式,将数据转化为可视化的形式,定期推送给运维人员,便于之后更加全面、准确的分析系统运行情况。

系统架构

Web架构设计

在 Web 方面,使用前后端分离的方式。在前端方面使用了 Vue 进行交互的实现,利用其可以与 HTML 中字段进行双向绑定的特性,可以快速完成数据渲染的工作。并且利用它组件化的思想,可以减轻许多重复 HTML 的编写,提升代码的复用性,以及可读性。

在前端 UI 上使用了 Metronic,它是基于 Bootstrap 的网页界面框架,也在其基础上提供了一些扩展和增强功能,如布局管理、用户界面元素、图表、表格、表单和自定义样式等等。使用 Metronic 可以更快地创建现代化、美观的 Web 页面,并提供了丰富的工具和插件进行定制,减少了开发人员的工作量,增加了项目的可维护性。并且依然保留了 Bootstrap 的特性,做到了响应式开发的效果。

使用 Nginx 作为前端服务器,一方面可以更符合前后端分离的思想,另一方面 Nginx 底层利用 I/O 多路复用和多进程的方式,可以接受高并发的请求,速度也更快。而且配置简单,本身就是由很多模块组成的,扩展性强。比起 Tomcat,Nginx 是 HTTP Server,而 Tomcat 是 Application Server。HTTP Server 关心的是 HTTP 协议层面的传输和访问控制,客户端通过 HTTP Server 访问服务器上存储的资源。Application Server 是一个应用服务器,它首先需要支持开发语言的运行环境,以及需要支持一些其它的规范,例如类库、安全方面的特性,所以会更加笨重,从而使用 Nginx,进行一定的解耦,在性能上进一步的提升。

在后端使用了传统的 SpringBoot 技术,数据库则使用了 MySQL,来进行关系性数据的存储。使用了 MinIO 来实现对象存储。以及使用了 Redis,主要用来存储 JSessionID,利用 Redis 内存存储的特性,可以进行高速读写。对于传统的方式,如果需要不同服务器上 Session 数据共享,需要互相进行复制。而 Redis 这种方式可以让 Session 集中存储。需要说明的是这里 Redis 不仅仅存的是 JSessionID,还有 JSessionID 对应的 Session 中的数据。这样当客户端请求服务器,产生 Session 以及 SeesionID,就会把它存到 Redis 中,下次直接从 Redis 中取就行。对于该 SpringBoot 项目,利用了 SpringSession 来简化操作,它非常好的与Redis进行了集成。这样做不仅解耦了 Session 系统,便于未来系统或者微服务的扩展,而且利用 Redis 可以方便设置 Session 过期时间的特性,可以实现用户的持久化登录。

最后利用 Github,Jenkins,Docker 的方式,实现了自动化部署。每次当完成后端代码,将源码托管于 Github 上,使用 Git 进行版本控制和合并代码。在 Jenkins 中创建一个 Pipeline 项目,并配置与 Github 的 Webhook 集成,当代码仓库发生变化时触发 Jenkins Pipeline 任务。而在 Pipeline 任务中,会使用 Docker 构建一个 Docker 镜像,并发布到 Linux 服务器中进行部署。如图4-2展示了 Jenkins 上部署的情况。
该项目利用以上技术实现前后端分离的部署,并且利用 Github、Jenkins、Docker 这三者实现了 CI/CD(Continuous Integration/Continuous Deployment)的流程,持续集成与持续部署。这种技术方案在提高开发效率和资源利用率方面具有明显优势。

指标监控架构设计

对于指标监控,首先需要进行对数据的采集,需要从不同来源收集数据,例如服务器、容器、网络设备等。这里我采用了 Prometheus 来完成这项工作,它最大的优势在于采用了 Pull 模式,比起传统的 Push 模式,它更加具有可控性,请求将由 Prometheus 发起,可以控制采集的频率和数据,避免了系统由于瞬时高峰负载而崩溃的风险;更加轻量,对于被监控的资源消耗更少;更加灵活,丰富的 Exporter,也就是埋在目标客户端的 Agent,可以方便的扩展和添加新的监控目标(特别的,如果要监控 SpringBoot 需结合 Micrometer 使用);更加安全,由于Prometheus不需要向被监控主机开放端口,有安全保障;而且采用了 Pull 模式,监控的数据在接收端暂存,可以更好地避免数据在传输过程中的丢失;易于查询,Prometheus 提供了强大的查询语言 PromQL,对数据可以进行高效处理。

在服务发现上使用了 Consul 来进行 Prometheus 和 Exporter 的连接。像传统的 Nagias,是基于 Push 模式的,这意味着必须在监控对象的每一个节点上安装相应的 Agent 程序,并且通过配置指向中心的 Nagias 服务,这样的话,受监控对象与中心监控服务器之间是一个强耦合的关系。对于一组比较少的服务器,这种手动更改配置信息的方式是非常方便的。但如果监控目标多了起来,我们需要频繁对配置文件进行修改,无疑给运维人员带来很大的负担,也大大增加了出错的可能性。为此,Prometheus 可以搭配 Consul 来实现服务发现,这样就可以摆脱手工的方式,由 Consul 动态进行自动发现与自动更新。

在数据持久化上,选择了目前性能最好的 InfluxDB。Prometheus 为了更好的监控性能,默认使用本地文件进行存储,但是这种方式的缺点是无法持久化,一旦重启就会丢失所有数据。所以需要接入第三方 TSDB 数据库。InfluxDB 是一个用 Go 语言编写的时序数据库,与传统关系型数据库相比,它对时序数据场景有专门的优化,有更加优异的性能。

在可视化上,选择了 Grafana 来实现。Grafana 提供了丰富的图表类型和设置选项,基于此用户可以结合 PromQL,快速创建自定义、交互性强的可视化图表。并且 Grafana 是开源的,拥有广泛的用户和开发者社区,提供丰富的文档、教程和模版,解决问题和分享经验非常方便。

在报警上选用了 Alertmanager,它的功能非常强大,主要有以下几个方面,首先它可以做到告警聚合,可以对相同或相似的告警进行聚合,只保留最新一个告警条目,以减少重复告警的数量,提高操作人员处理告警的效率;告警合并,当多个告警条目描述相同的问题时,可以将它们合并为一个包含所有相关信息的告警条目;可以同时将告警输出到多个目的地,例如 SMTP 电子邮件、Webhook 回调地址等;可以根据用户定义的路由规则来路由告警条目,选择合适的输出目的地。可以控制告警的级别、到期时间、过期时间等,达到合理控制告警信息的输出频率和持续时间的目的。这些功能使得 Alertmanager 可以简化运维人员处理告警的工作流程,最大限度地减少无用信息并确保关键告警的及时传,这些都是提高监控系统运用效果的重要保障。

以上提到的技术是现代分布式系统架构中常用的监控、告警、配置管理和数据可视化工具,它们相互配合,实现了对系统的全方位监控和管理,帮助用户更好地理解分布式系统的运行状态和问题,并及时处理这些问题,保证分布式系统的高可用性和可靠性。

日志监控架构设计

在本架构中,Filebeat 充当了采集器的角色。它本身隶属于 Beats 家族,Beats 还包括Metricbeat、Packetbeat 等,Filebeat 则是专门用来收集文本的组件。它能够实时收集服务器及应用程序的日志数据,并将其转发至Kafka。这其中 Logstash 本身也可以采集数据,但是相对于 Logstash 比较庞大的代码库和消耗较多的资源,Filebeat代码库较小,占用系统资源也相对较少,更加轻量,更适合部署在较小的环境中。并且 Filebeat 使用 Go 语言编写,对 CPU 和 I/O 资源的利用率更高,能够快速高效地扫描和采集大量的日志数据,并将其传输到下游处理器。

Filebeat 搜集的数据会传送到 Kafka,Kafka 是一种高吞吐量的消息队列系统,能够缓解数据传输过程中的高频流量并保证数据的可靠传输。在这里,Kafka 接收 Filebeat 采集的本地日志文件,最主要提供了缓解流量峰值的功能,Kafka 通过将数据缓存在其集群中,然后进行批量写入到下游系统的方式,能够有效地缓解突发的高频流量带来的压力。并且 Kafka 具有很高的可靠性和容错性,以及可以解耦数据源和消费者,增强系统的可维护性。

Logstash 是一款用于数据收集、分析和处理的开源工具。这里 Logstash 消费来自 Kafka 的消息,对其进行解析、过滤、转换等格式化处理,并将处理过的事件输出到 Elasticsearch 中进行存储,以便之后进行搜索。

接着,Elasticsearch 作为搜索引擎和数据分析平台来处理过滤后的日志数据,并将其存储在其中。Elasticsearch 是一个基于实时搜索的分布式搜索引擎,能够实时地、快速地查询数据。这使得它作为日志存储引擎时,能够提供实时的日志响应和查询功能,让用户快速获得实时的监控数据。

最后,Kibana 提供了可视化界面,允许用户以直观、易于理解的方式查询、分析和展示数据。用户可以使用 Kibana 自定义或从官方社区中配置各种图表、可视化和仪表板来监控各种日志,以便检测和解决问题。

除了以上的技术组件外,通过 ElastAlert 还提供了一个强大的预警和通知服务。它可以根据事先定义的规则和条件,自动检测异常和问题,并及时通知相关人员。这大大缩短了故障排查和响应的时间。在此基础上再一次引入了Alertmanager,但与指标监控架构中不同的的是,这里仅作为一个转发的功能,目的是能与指标监控传回的 JSON 数据格式保持一致。

以上提到的技术是现代日志采集、处理、存储、搜索和可视化的主要工具,它们相互协作,实现了对大量日志数据的高效管理和分析,帮助用户更快地理解分布式环境的运行状况,提高分布式系统的可用性和稳定性。

功能说明

在这里插入图片描述

  1. 登录注册功能
    在登录功能上不仅仅使用传统的账号密码登录,还接入了 QQ 和钉钉来实现第三方登录。不仅如此,也利用 Vue 的局部刷新和双向绑定实现很好的交互,当账号或者密码错误时,会有提示字符出现。并且还使用了 reCAPTCHA 进行人类识别,比起传统验证码的方式,可以为用户提供更好的体验效果。 如果忘记密码可以跳到忘记密码页面,通过阿里云接入的手机号短信验证的方式来进行重制密码。在这里插入图片描述

  2. 首页数据展示功能
    这是用户登录后会首先跳到的页面,展示了已完成巡检数、普通告警数等内容,为运维人员提供宏观的数据展示。
    在这里插入图片描述

  3. 指标监控功能
    在该页面用户可以对监控对象进行增删改查,包括了名称、服务器地址等内容等,并且可以进行增删改查,以及导出功能。
    在这里插入图片描述
    点击图表,可以进入查看集成的 Grafana 图表。
    在这里插入图片描述
    进入对应监控对象,可以查看具体规则的信息,以及对该对象的监控规则进行增删改查。
    下方还有该对象的报警信息,可以查看报警时间、名称、内容等,以及可以下载对应人员解决后上传的工单。
    在这里插入图片描述

  4. 日志监控功能
    在该页面用户可以对监控对象进行增删改查,包括了名称、服务器地址等,并且可以进行增删改查,以及导出功能。点击图表,可以进入查看集成的 Kibana 图表。进入对应监控对象,可以查看具体规则的信息,以及对该对象的监控规则进行增删改查。下方还有该对象的报警信息,可以查看报警时间、名称、内容等,以及可以下载对应人员解决后上传的工单。

  5. 文件监控功能
    用户可以查看各个监控文件,以及对其增删改查。添加后定期后端会进行钉钉通知,提醒你需确认文件是否正常,是否备份成功。
    在这里插入图片描述

  6. 巡检计划功能
    在该页面管理员可以为特定人员制定巡检计划,并上传巡检单。
    在这里插入图片描述
    对应人员可以查看自己的巡检计划,并且有日历进行可视化。在规定时间上传自己的巡检表。
    在这里插入图片描述
    在这里插入图片描述

  7. 报警工单功能
    当有自己负责的报警规则报警时,会自动添加到该页面,对应运维人员需解决后提交工单,报告问题。
    在这里插入图片描述

  8. 报表功能
    运维人员可以下载对应的周报,它们会在规定时间自动生成。
    在这里插入图片描述
    在这里插入图片描述

  9. 知识库功能
    运维人员可以上传资料,供所有人下载学习。
    在这里插入图片描述

  10. 展示看板功能
    利用Echarts 构建了大屏展示,展示了已完成巡检数、普通告警数等内容,为运维人员提供宏观的数据展示。
    在这里插入图片描述

  11. 其它辅助功能
    用户可以去帮助中心查看一些开发内容,可以跳到 Github 代码仓库,可以查看 Swagger 接口文档。
    在这里插入图片描述

  12. 人员管理功能
    运维人员自己可以查看修改自己的个别信息。而对于超级管理员,他会有更大的权限,可以对所有运维人员进行增删改查。
    在这里插入图片描述

  13. 服务器检查功能
    后端会定期对服务器各个组件进行 Socket 测试连接,如有问题会钉钉通知。
    在这里插入图片描述
    并且提供了拓扑图进行可视化展示。
    在这里插入图片描述

相关文章:

毕业设计:《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》

前言 《基于 Prometheus 和 ELK 的基础平台监控系统设计与实现》,这是我在本科阶段的毕业设计,通过引入 Prometheus 和 ELK 架构实现企业对指标与日志的全方位监控。并且基于云原生,使用容器化持续集成部署的开发方式,通过 Sprin…...

docker私有仓库部署与管理

一、搭建本地公有仓库 1.1 首先下载registry镜像 docker pull registry 1.2 在daemon.json文件中添加私有镜像仓库地址并重新启动docker服务 vim /etc/docker/daemon.json 1.3 运行registry容器 docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restartal…...

2024第六届济南国际大健康产业博会将于5月27日如期开幕

由山东省城市经济学会、山东省科学养生协会主办的第六届中国(济南)国际大健康产业博览会,将于5月27-29日,在济南黄河国际会展中心盛大举办。 近年来,健康越来越受到大众的重视,在我国经济重要的转型阶段成…...

计算方法实验9:Romberg积分求解速度、位移

任务 输出质点的轨迹 ( x ( t ) , y ( t ) ) , t ∈ { 0.1 , 0.2 , 0.3 , . . . , 10 } (x(t), y(t)), t\in \{0.1, 0.2, 0.3, ..., 10\} (x(t),y(t)),t∈{0.1,0.2,0.3,...,10},并在二维平面中画出该轨迹.请比较M分别取4, 8, 12, 16, 20 时,Romberg积分达…...

设计模式有哪些基本原则

目录 开闭原则(Open Closed Principle) 里氏替换原则(Liskov Substitution principle) 单一职责原则(Single Responsibility Principle,SRP)...

别再出错了!华为交换机到底如何配置access、trunk、hybird端口?

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 我们都知道,网络工程师的工作离不开对交换机的熟练操作。华为交换机的配置,绝对是考验…...

OceanBase 分布式数据库【信创/国产化】- OceanBase 平台产品 - 迁移评估工具 OMA

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase 平台产品 - 迁移评估工具 OMA前言OceanBase 数据更新架构OceanBase 平台产品 - 迁移评估工具 OMA兼容性评估性能评估导出 OceanBase 数据库对象和 SQL 语句OceanBase 分布式数据库【信创/国产…...

UE5入门学习笔记(六)——编译低版本插件

对于有些低版本的插件,可以通过此方法自己编译到高版本而无需等待插件作者更新 使用工具:如图所示 步骤1:打开cmd,并使用cd命令切换到此目录 步骤2:输入如下指令 RunUAT.bat BuildPlugin -Plugin“路径1” -Package“…...

MySQL全局锁、表级锁、行锁、死锁、索引选择

文章目录 全局锁表级锁表锁元数据锁 MDL 如何安全的给小表添加字段1. 理解和监控长事务2. 使用NOWAIT和WAIT语法示例 3. 选择合适的时间窗口4. 分阶段执行5. 使用在线DDL工具 行锁死锁普通索引和唯一索引的选择索引基础业务场景分析性能考量实践建议索引及其选择机制索引选择错…...

深入解析算法效率核心:时间与空间复杂度概览及优化策略

算法复杂度,即时间复杂度与空间复杂度,衡量算法运行时资源消耗。时间复杂度反映执行时间随数据规模增长的关系,空间复杂度表明额外内存需求。优化策略,如选择合适数据结构、算法改进、循环展开等,对于提升程序效率、减…...

虚拟机装CentOS镜像

起先,是先安装一个VM虚拟机,再去官方网站之类的下载一些镜像,常见镜像有CentOS镜像,ubantu镜像,好像还有一个树莓还是什么的,软件这块,日新月异,更新太快,好久没碰&#…...

SpringCloud 集成consul,消费者报I/O error on GET request for...

创建消费者微服务,去调用生产者微服务的请求过程中,出现以下错误: 报错原因 因为在使用SpringCloudAlibaba中的Nacos框架时,自动整合了SpringCloud中的Ribbon框架中的负载均衡,因为微服务提供者有两个,在消…...

pytest的测试标记marks

引用打标的marks文档 Python的pytest框架(5)--测试标记(Markers)_pytest执行指定的marker-CSDN博客 https://www.cnblogs.com/pipile/p/12696226.html 给用例自定义打标签的代码示例 #coding:utf-8 import pytest pytest.mark.smoke def test_1():print("smoke的测试用…...

端口占用解决方法

1、查询端口 打开cmd命令提示符窗口,输入以下指令查询所有端口 netstat -ano //查询所有端口 netstat -ano|findstr 8080 //查询指定端口 2、杀死进程 taskkill /t /f /im 进程号(PID)...

Java毕设之基于springboot的医护人员排班系统

运行环境 开发语言:java 框架:springboot,vue JDK版本:JDK1.8 数据库:mysql5.7(推荐5.7,8.0也可以) 数据库工具:Navicat11 开发软件:idea/eclipse(推荐idea) 系统详细实现 医护类型管理 医护人员排班系统的系统管理员可以对医护类型添加修改删除以及…...

OpenCV4.8 VS2019 MFC编程出现的诡异现象

OpenCV4.8及OpenCV4.4 VS2019MFC编程在调用imred()函数时,debug X64试运行没问题。 release X64试运行时出现下面错误。 void CEasyPictureDlg::OnBnClickedOpen() {CFileDialog fdlg(TRUE, NULL, 0, OFN_HIDEREADONLY | OFN_OVERWRITEPROMP…...

游戏辅助 -- 三种分析角色坐标方法(CE、xdbg、龙龙遍历工具)

所用工具下载地址: https://pan.quark.cn/s/d54e7cdc55e6 在上次课程中,我们成功获取了人物对象的基址:[[[0xd75db8]1C]28],而人物血量的地址则是基址再加上偏移量278。 接下来,我们需要执行以下步骤来进一步操作&a…...

【VTKExamples::Rendering】第一期 TestAmbientSpheres(环境照明系数)

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例TestAmbientShperes,介绍环境照明系数对Actor颜色的影响,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动…...

代码随想录leetcode200题之栈与队列

目录 1 介绍2 训练3 参考 1 介绍 本博客用来记录代码随想录leetcode200题中栈与队列部分的题目。 2 训练 题目1&#xff1a;232. 用栈实现队列 C代码如下&#xff0c; #include <stack>class MyQueue { private:stack<int> a;stack<int> b; //辅助栈 pu…...

使用Python实现2048小游戏

使用Python实现2048小游戏源码分享。实现效果如下所示。 实现效果图 游戏开始效果图 游戏结束效果图 部分源码截图 下载链接 基于如下的运行环境。运行需要安装tkinter /Library/Frameworks/Python.framework/Versions/3.7/bin/python/bin/python /Users/nihui/Documents/P…...

漏洞管理是如何在攻击者之前识别漏洞从而帮助人们阻止攻击的

漏洞管理 是主动查找、评估和缓解组织 IT 环境中的安全漏洞、弱点、差距、错误配置和错误的过程。该过程通常扩展到整个 IT 环境&#xff0c;包括网络、应用程序、系统、基础设施、软件和第三方服务等。鉴于所涉及的高成本&#xff0c;组织根本无法承受网络攻击和数据泄露。如果…...

LNMT部署jpress

LNMT部署jpress 环境要求&#xff1a; MySQL版本5.6/5.7 tomcat版本9.0.65 源码安装MySQL5.7版 //源码安装MySQL5.7版1关闭防火墙 2创建mysql用户 3上传mysql5.7包&#xff08;https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.g…...

汽车软件研发工具链丨怿星科技新产品重磅发布

“创新引领未来”聚焦汽车软件新基建&#xff0c;4月27日下午&#xff0c;怿星科技2024新产品发布会在北京圆满举行&#xff01;智能汽车领域的企业代表、知名大企业负责人、投资机构代表、研究机构代表齐聚现场&#xff0c;线上直播同步开启&#xff0c;共同见证怿星科技从单点…...

Faiss原理及使用总结

Faiss&#xff08;Facebook AI Similarity Search&#xff09;是一个用于高效相似性搜索和密集向量聚类的库。 一、原理 向量表示与相似度度量&#xff1a;在Faiss中&#xff0c;数据通常被表示为高维向量&#xff0c;这些向量可以来自深度学习模型的特征提取&#xff0c;也可…...

跨越智能建筑桥梁:西门子PLC无缝对接BACnet楼宇自动化系统化

智能楼宇每一个环节的互联互通都至关重要&#xff0c;而PLC&#xff08;可编程逻辑控制器&#xff09;作为自动化领域的基石&#xff0c;其与BACnet协议的融合无疑成为了构建智能楼宇神经系统的关键节点。今天&#xff0c;让我们深入探讨如何利用先进的PLC转BACnet协议网关&…...

景源畅信电商:抖音小店有哪些比较热门的宣传方法?

抖音小店的热门宣传方法&#xff0c;是许多商家关注的焦点。在数字化营销时代&#xff0c;有效的宣传手段不仅能提升品牌知名度&#xff0c;还能吸引潜在消费者&#xff0c;促进销售。以下是针对抖音小店热门宣传方法的详细阐述&#xff1a; 一、短视频内容营销 作为抖音的核心…...

兄弟DCP-7057激光打印机报错误代码EC检修及分析

故障描述&#xff1a; 兄弟DCP-7057激光打印机屏幕显示无法打印EC关闭电源&#xff0c;然后重新打开打印机。 故障检修及分析&#xff1a; 1、定影单元风扇的插线连接不良 检查定影单元风扇的插线连接并重新连接&#xff1b; 2、定影单元风扇故障 更换定影单元风扇&#xff1b…...

【华为】IPSec VPN手动配置

【华为】IPSec VPN手动配置 拓扑配置ISP - 2AR1NAT - Easy IPIPSec VPN AR3NATIPsec VPN PC检验 配置文档AR1AR2 拓扑 配置 配置步骤 1、配置IP地址&#xff0c;ISP 路由器用 Lo0 模拟互联网 2、漳州和福州两个出口路由器配置默认路由指向ISP路由器 3、进行 IPsec VPN配置&…...

面试题分享之Java集合篇(三)

注意&#xff1a;文章若有错误的地方&#xff0c;欢迎评论区里面指正 &#x1f36d; 系列文章目录 面试题分享之Java基础篇&#xff08;二&#xff09;面试题分享之Java基础篇&#xff08;三&#xff09; 面试题分享之Java集合篇&#xff08;一&#xff09;、 面试题分享之Ja…...

【python】模拟巴特沃斯滤波器

巴特沃斯滤波器&#xff08;Butterworth Filter&#xff09;&#xff0c;以其设计者斯蒂芬巴特沃斯&#xff08;Stephen Butterworth&#xff09;的名字命名&#xff0c;是一种具有平滑频率响应的滤波器。这种滤波器在频域中具有非常平坦的无波纹响应&#xff0c;直到它达到截止…...

南通高端网站设计/网上推广平台有哪些

实际测试的例子 目标&#xff1a; 获取城市的天气数据&#xff1a; 第一步&#xff1a; 发送request 获取城市的城市代号http://toy1.weather.com.cn/search?cityname上海 从这个请求的response 中获取到上海的城市代码. 比如: 上海的地区代码是101020100 上海动物园的地区代…...

建网站多少钱可以卖货的/推广引流平台

【经典算法题】正则表达式匹配 Leetcode 0010 正则表达式匹配 题目描述&#xff1a;Leetcode 0010 正则表达式匹配 分析 本题的考点&#xff1a;动态规划。 分析如下&#xff1a; 代码 C class Solution { public:bool isMatch(string s, string p) {int n s.size(), m p…...

网站留言板作用/如何在网站上推广自己的产品

2019独角兽企业重金招聘Python工程师标准>>> ECShop商城自带众多购物便利功能&#xff0c;如促销&#xff0c;团购&#xff0c;拍卖&#xff0c;红包&#xff0c;专题&#xff0c;祝福贺卡等等...但是对做外贸网站的商家而言就必不可少了--多国货币功能的实现。当你…...

大连精美网站制作/百度代发排名

北京时间 2019 年 10 月 9 日&#xff0c;微软发布了全新的 VS Code Python 插件&#xff0c;带来了众多更新&#xff01;其中&#xff0c;最大的更新就要属万众期待的 Jupyter Notebook 原生支持了&#xff01;我们来看看这次 Jupyter Notebook 的原生支持带来了哪些好用的功能…...

wordpress自动发布模块/互联网营销师考证多少钱

分享一组Rpg Marker人物行走,游戏素材图片&#xff0c;共5张图片 上面的下载地址链接是图片&#xff0c;无法直接复制哦&#xff01;下载请直接点击&#xff1a;游戏素材下载 或者复制以下链接&#xff1a;http://www.2gei.com/view/50.html...

合肥网站建设网站模板/广告投放都有哪些平台

开发工具下载地址...