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

【监控系统】日志可视化监控体系ELK搭建

1.ELK架构是什么

ELK是Elasticsearch+Logstash+Kibana的简称。

Elasticsearch是一个开源的分布式搜索和分析引擎,可以用于全文检索、结构化检索和分析,它构建在Lucene搜索引擎库之上,是当前使用较为广泛的开源搜索引擎之一。

Logstash是一个开源的数据搜集引擎是一个用来搜集、分析、过滤日志的工具,使用它可以将搜集来的日志信息进行处理然后进行输出。Logstash支持许多功能强大的插件,可以合理使用这些插件来对搜集到 的日志信息进行过滤和处理。

Kibana是一个基于Web的图形界面,可以使用它对Elasticsearch索引中的数据进行搜索、查看、交互操作。还可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。

Filebeat是一个轻量级的日志搜集器,用于搜集和转发日志数据,Filebeat一般都会安装在需要搜集日志的服务器上,指定需要搜集日志的日志文件的位置,搜集日志信息并转发到Elasticsearch 或Logstash上进行索引。

在这里插入图片描述

其中, Filebeat 主要用于在服务器中采集服务日志信息并输出到 Logstash, Logstash 负责接收所有 Filebeat 传递过来的日志数据,并对数据进行过滤筛选处理后输出到 Elasticsearch, Elasticsearch 主要用于日志消息的存储,搜索和分析,在 Elasticsearch 中存储的索引信息最终会通过 Kibana 在页面上直观的进行展示。最终用户可以在 Kibana 页面中操作索引,查询日志, 监控 Elasticsearch 和 Kibana 的健康状态,以及配置多种 Dashboard 来展示聚合数据信息。

总结来说,ELK 日志监控大体上分为两部分,Elasticsearch、Logstash 和 Filebeat 负责数据的搜集,过滤,存储和分析,Kibana 负责操作存储在 Elasticsearch 中的索引信息,监控 Elasticsearch 和 Kibana 的健康状态以及管理用户信息。 同时用户还可以配置多种 Dashboard 来展示数据聚合信息。

2.为什么采用ELK架构

(1)Elasticsearch、Logstash、Kibana、Filebeat 均为开源组件,并且使用 ELK 搭建日志监控系统的方案也比较成熟。

(2)一般的日志监控系统架构都是采用 ELK(Elasticsearch、Logstash、Kibana)架构去搭建的,但是由于 Logstash 本身是基于 jdk 的,且它集成了许多插件,所以占用内存较大,在每台服务器上都部署一 个 Logstash 有些占用资源,因此我们使用轻量级的 Filebeat 组件来完成搜集日志的操作。但是 Filebeat 只能采集日志数据却无法对数据进行过滤,因此我们在将日志信息输出到 Elasticsearch 之前先使 用 Logstash 对数据进行过滤处理,再将处理好的数据输出到 Elasticsearch。

(3)在微服务场景下,可能存在如下两种情况:

  • 开发或生产环境的微服务项目部署在多台服务器上,此时需要监控多台服务器下的日志信息情况;
  • 一台服务器下既存在开发环境的微服务项目,又存在生产环境的微服务项目,此时需要将搜集到的日志信息加以区分。

这种情况下我们可以在 Filebeat 采集日志时为日志信息指定每个不同环境的唯一前缀后再输出。

3.ElasticSearch8.X源码部署

(1)什么是ElasticSearch

在这里插入图片描述

官网:https://www.elastic.co/cn/elasticsearch/

ElasticSearch是⼀个开源,是⼀个基于Apache Lucene库构建的Restful搜索引擎. Elasticsearch是在Solr之后⼏年推出的。
它提供了⼀个分布式,多租户能⼒的全⽂搜索引擎,具有HTTP Web界⾯(REST)和⽆架构JSON⽂档。
Elasticsearch的官⽅客户端库提供Java,Groovy,PHP,Ruby,Perl,Python,.NET和Javascript。
应⽤场景:维基百科、Stack Overflow、GitHub、电商⽹站、⽇志数据分析、商品价格监控⽹站、BI系统、站内搜索

(2)Elasticsearch核心概念

  • Index索引
ES将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合,相当于关系型数据库中的一个Database。索引由其名称(必须为全小写字符)进行标识,并通过引用此名称完成文档的创建、搜索、更新及删除操作。一个ES集群中可以按需创建任意数目的索引。
  • 类型Type
类型是索引内部的逻辑分区,在一个索引内部可定义一个或多个类型(type),类似于传统数据库中的表。一般来说,类型就是为那些拥有相同的域的文档做的预定义。例如,在索引中,可以定义一个用于存储用户数据的类型,一个存储日志数据的类型,以及一个存储评论数据的类型。
  • 文档Document
文档是索引和搜索的原子单位,它是存储在ES中的一个JSON格式的字符串,其中包含了一个或多个域(Field)的容器。在ES中每个文档都有一个类型和ID,每个文档由一个或多个域组成,每个域拥有一个名字及一个或多个值,有多个值的域通常称为“多值域”。每个文档可以存储不同的域集,但同一类型下的文档至应该有某种程度上的相似之处。
  • 集群Cluster
集群由一个或多个节点组成,对外提供索引和搜索功能。在一个集群中所有的节点都有一个唯一的名称默认为“Elasticsearch”,当某个节点被设置为相同的集群名称时,会自动加入到集群。如果有多个集群,需要设置不同的名称,否则节点可能会加入到错误的集群。需要注意的是一个节点只能加入一个集群。
  • 节点Node
一个运行中的Elasticsearch实例称为一个节点,它是一个逻辑上独立的服务,可以存储数据,是ES集群的一部分。ES集群由一个或者多个拥有相同cluster.name配置的节点组成,它们共同承担数据和负载的压力。ES集群中的节点有三种不同的类型:
主节点:负责管理集群范围内的所有变更,例如增加、删除索引,或者增加、删除节点等,并决定哪些分片分配给相关的节点、追踪集群中节点的状态等。主节点并不需要涉及到文档级别的变更和搜索等操作,可以通过属性node.master进行设置。
数据节点:存储数据和其对应的倒排索引,同时对数据进行增删改查和聚合等操作。默认每一个节点都是数据节点(包括主节点),可以通过node.data属性进行设置。通常随着集群的扩大,需要增加更多的数据节点来提高性能和可用性。
协调节点:如果node.master和node.data属性均为false,则此节点称为协调节点,用来响应客户请求,均衡每个节点的负载。
  • 路由Routing
当存储一个文档的时候,它会存储在唯一的主分片中,具体哪个分片是通过散列值进行选择。默认情况下这个值由文档的ID生成,如果文档中指定了一个父文档,则从父文档ID中生成。
注:Routing值和路由计算具体到哪个分片有关。
  • 分片Sharding
ES中的索引数据量太大的时候,可以通过水平拆分的方式将一个索引上的数据拆分出来分配到不同的数据块上,这个数据块称为分片,相当于水平分表。一个分片便是一个Lucene的实例,ES中的index就是指向主分片和副本分片的逻辑空间。实际的文档数据被存储和索引到分片内,但是应用程序是直接与索引而不是与分片进行交互。主分片:每个文档都存储在一个分片中,当存储一个文档的时候,ES首先将数据存储在主分片中,然后复制到不同的副本中。ES默认为一个索引创建 5 个主分片, 并分别为每个分片创建一个副本,通过参数可以指定。在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改。副本分片:副本分片是主分片的复制,每个主分片有0个或者多个副本。当主分片异常的时候,可以从副本分片中选择一个作为主分片,提高可用性。同时,查询可以在副本分片进行,减轻主分片的压力,提高性能。
  • 元数据
Elasticsearch中以 “ _” 开头的属性都成为元数据,都有自己特定的意思。

(3)上传安装包和解压

tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz

(4)elasticsearch默认不允许以root账号运行,新建一个用户运行es

创建用户:useradd es_user
设置密码:passwd es_user

在这里插入图片描述

(5)修改目录权限

# chmod是更改文件的权限   
# chown是改改文件的属主与属组  
# chgrp只是更改文件的属组。chgrp -R es_user /usr/local/software/elasticsearch-8.4.1
chown -R es_user /usr/local/software/elasticsearch-8.4.1
chmod -R  777 /usr/local/software/elasticsearch-8.4.1

在这里插入图片描述

(6)修改文件和进程最大打开数,需要root用户,如果系统本身有这个文件最大打开数和进程最大打开数配置,则不用

vi /etc/security/limits.conf* soft nofile 65536
* hard nofile 65536

(7)修改虚拟内存空间,默认太小

在配置文件中改配置 最后一行上加上,执行 sysctl -p(立即生效)
vi /etc/sysctl.conf vm.max_map_count=262145

(8)修改elasticsearch的JVM内存,机器内存不足,常规线上推荐16到24G内存

vi config/jvm.options-Xms1g
-Xmx1g

(9)修改 elasticsearch相关配置

vi config/elasticsearch.ymlcluster.name: my-application
node.name: node-1
path.data: /usr/local/software/elasticsearch-8.4.1/data
path.logs: /usr/local/software/elasticsearch-8.4.1/logs
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
ingest.geoip.downloader.enabled: false
配置说明:
cluster.name: 指定Elasticsearch集群的名称。所有具有相同集群名称的节点将组成一个集群。
node.name: 指定节点的名称。每个节点在集群中应该具有唯一的名称。
path.data: 指定用于存储Elasticsearch索引数据的路径。
path.logs: 指定Elasticsearch日志文件的存储路径。
network.host: 指定节点监听的网络接口地址。0.0.0.0表示监听所有可用的网络接口,开启远程访问连接
http.port: 指定节点上的HTTP服务监听的端口号。默认情况下,Elasticsearch的HTTP端口是9200。
cluster.initial_master_nodes: 指定在启动集群时作为初始主节点的节点名称。
xpack.security.enabled: 指定是否启用Elasticsearch的安全特性。在这里它被禁用(false),意味着不使用安全功能。
xpack.security.enrollment.enabled: 指定是否启用Elasticsearch的安全认证和密钥管理特性。在这里它被禁用(false)。
ingest.geoip.downloader.enabled: 指定是否启用GeoIP数据库下载功能。在这里它被禁用(false)

(10)启动ElasticSearch,切换到es_user用户启动

./elasticsearch &

在这里插入图片描述

(11)常见命令访问es的服务状态

#查看集群健康情况
http://ip:9200/_cluster/health

在这里插入图片描述

#查看分片情况
http://ip:9200/_cat/shards?v=true&pretty

在这里插入图片描述

#查看节点分布情况
http://ip:9200/_cat/nodes?v=true&pretty

在这里插入图片描述

#查看索引列表
http://ip:9200/_cat/indices?vip

在这里插入图片描述

(12)部署es常见的问题

磁盘空间需要85%以下,不然ES状态会不正常
不要用root用户安装
linux内存不够
linux文件句柄
没开启远程访问 或者 网络安全组没看开放端口
有9300 tcp端口,和http 9200端口,要区分
没权限访问,重新执行目录权限分配

4.Kibana8.X源码部署

(1)什么是Kibana

在这里插入图片描述

  • 基于node.js开发,数据可视化和仪表盘工具,连接到Elasticsearch,通过简单易用的用户界面创建各种图表、图形和仪表盘
  • 帮助用户快速探索和理解数据,并进行强大的数据分析和可视化

(2)上传安装包和解压

tar -zxvf kibana-8.4.1-linux-x86_64.tar.gz

(3)配置用户权限

chgrp -R es_user /usr/local/software/kibana-8.4.1
chown -R es_user /usr/local/software/kibana-8.4.1
chmod -R  777 /usr/local/software/kibana-8.4.1

(4)修改配置文件

vim config/kibana.ymlserver.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://ip:9200"] #es部署机器的IP地址
i18n.locale: "zh-CN" #汉化
server.port: 指定Kibana服务器监听的端口号,Kibana将在5601端口上监听HTTP请求。
server.host: 指定Kibana服务器绑定的网络接口地址, "0.0.0.0"表示监听所有可用的网络接口。
elasticsearch.hosts: 指定ES集群的主机地址,可以配置多个,Kibana将连接到位于"120.24.7.58"主机上、使用默认HTTP端口9200的es
i18n.locale: 指定Kibana界面的语言区域,"zh-CN"表示使用简体中文作为语言。

(5)启动,切换到es_user 用户

./kibana &
  • 访问:192.168.140.100:5601

在这里插入图片描述

(6)开发者工具

在这里插入图片描述

5.SpringBoot部署应用

(1)创建SpringBoot项目,编写测试接口

@RequestMapping("/log")
public String log(){logService.log();return "SUCCESS";
}

(2)配置logback.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration><property name="LOG_HOME" value="./logs" /><!--采用打印到控制台,记录日志的方式--><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 采用保存到日志文件 记录日志的方式,%d{yyyy-MM-dd HH:mm:ss.SSS}:输出日志发生的时间,精确到毫秒。[%thread]:输出日志所在的线程名。%-5level:输出日志级别,使用占位符%5level可以保持日志级别的对齐。%logger{36}:输出日志所在的类名(只输出类名的后36个字符)。%msg:输出日志消息。%n:新行。--><appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/order.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/order-%d{yyyy-MM-dd}.log</fileNamePattern></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 指定某个类单独打印日志 --><logger name="com.lixiang.service.impl.LogServiceImpl"level="INFO" additivity="false"><appender-ref ref="rollingFile" /><appender-ref ref="console" /></logger><root level="INFO" additivity="false"><appender-ref ref="rollingFile" /></root>
</configuration>

(3)打包部署服务器

ps -ef | grep order-service-1.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9 
nohup java -Xms512m -Xmx512m  -jar /usr/local/order/order-service-1.0.jar > order.log 2>&1 &

6.LogStash8.X源码部署

(1)什么是Logstash

  • Logstash是一个用于数据收集、转换和传输的数据处理引擎,支持从各种来源(如文件、日志、数据库等)收集数据。
  • 基于java开发,并对数据进行结构化、过滤和转换,然后将数据发送到Elasticsearch等目标存储或分析系统。
  • 常见的数据采集流程
    • Logstash 采集 –> Elasticsearch –> Kibana
    • Beats 采集(Filebeat/Metricbeat)–> Elasticsearch –> Kibana
    • Beats 采集(Filebeat/Metricbeat)–> Logstash –> Elasticsearch –> Kibana

(2)LogStash宏观配置文件组成

在这里插入图片描述

(3)上传安装包和解压

tar -zxvf logstash-8.4.1-linux-x86_64.tar.gz

(4)修改配置文件

  • JVM内存不够的话修改 config/jvm.options
  • 创建新配置文件 touch config/test-logstash.conf
input {file {path => "/usr/local/order/logs/order.log"start_position => "beginning"stat_interval => "3"type => "order-service-log"}
}output {if [type] == "order-service-log" {elasticsearch {hosts => ["http://192.168.140.100:9200"]index => "order-service-%{+YYYY.MM.dd}"}}
}
input:指定Logstash接收数据的输入插件,使用file插件作为输入。file插件用于读取并处理文件中的数据。
file:指定使用的输入插件是file插件。
path:指定要读取的文件路径,Logstash会读取位于"/usr/local/software/log/access.log"路径下的文件。
start_position:指定从文件的哪个位置开始读取数据。设置为"beginning"表示从文件的开始位置开始读取数据。
stat_interval:指定文件的状态检查间隔(以秒为单位)。设置为"3"表示每隔3秒检查一次文件状态,以判断是否有新数据。
type:指定数据的类型名称。设置为"nginx-access-log"表示数据的类型是Nginx访问日志。
output:指定Logstash处理完数据后的输出插件。使用elasticsearch插件将处理后的日志数据发送到Elasticsearch。
elasticsearch:指定使用的输出插件是elasticsearch插件。
hosts:指定Elasticsearch集群的主机地址。Logstash将处理后的数据发送到位于"192.168.140.100"主机上,HTTP端口9200的ES节点
index:指定数据在Elasticsearch中的索引名称,比如【 filebeat-8.4.1-2023.07.02 】使用[@metadata][beat]字段、[@metadata][version]字段和当前日期来构建索引名称可以根据采集数据的来源和版本动态创建索引。

(5)启动,进入bin目录

./logstash -f /usr/local/software/logstash-8.4.1/config/test-logstash.conf &

(6)访问kibana,查看索引管理

在这里插入图片描述

相关文章:

【监控系统】日志可视化监控体系ELK搭建

1.ELK架构是什么 ELK是ElasticsearchLogstashKibana的简称。 Elasticsearch是一个开源的分布式搜索和分析引擎&#xff0c;可以用于全文检索、结构化检索和分析&#xff0c;它构建在Lucene搜索引擎库之上&#xff0c;是当前使用较为广泛的开源搜索引擎之一。 Logstash是一个…...

【Linux】22、CPU 评价指标、性能工具、定位瓶颈、优化方法论:应用程序和系统

文章目录 一、评价 CPU 的指标1.1 CPU 使用率1.2 平均负载&#xff08;Load Average&#xff09;1.3 上下文切换1.4 CPU 缓存命中率 二、性能工具2.1 维度&#xff1a;从 CPU 性能指标出发&#xff0c;即当你查看某性能指标时&#xff0c;要清除知道哪些工具可以做到2.2 维度&a…...

Foodpanda API连接的艺术:无代码开发如何集成营销系统和广告推广工具

连接Foodpanda和电商平台的无代码开发 Foodpanda不仅是一家提供快速外卖服务的国际品牌&#xff0c;而且其创新的技术解决方案还能帮助电商企业优化系统运营。通过无代码开发的方法&#xff0c;即使没有专业的API开发知识&#xff0c;商家也能实现高效的电商系统和客服系统连接…...

SpringBoot——数据访问

优质博文&#xff1a;IT-BLOG-CN 对于数据访问层&#xff0c;无论是SQL还是NoSQL&#xff0c;SpringBoot默认采用整合Spring Data的方式进行统一处理&#xff0c;添加大量自动配置&#xff0c;屏蔽了很多设置。引入各种xxxTemplate&#xff0c;xxxRepository来简化我们对数据访…...

【C++深度剖析学习总结】28 函数对象分析

1.客户需求 编写一个函数,满足三个需求 函数可以获得斐波那契数列每项的值 每调用一次返回一个值 函数可根据需要重复使用 for(int i =0; i<10; i++) { cout << fib() << endl; } 第一个解决方案 #include<iostream> #include<string> using na…...

持续集成部署-k8s-配置与存储-配置管理:SubPath

持续集成部署-k8s-配置与存储-配置管理:SubPath 1. 简介2. 测试 挂载文件目录3. subPath 解决挂载目录时覆盖原容器内文件夹1. 简介 在Kubernetes (K8s) 中,SubPath是用于指定容器内部目录挂载的一个属性。它可以在Pod中指定某个Volume挂载到容器内部的特定目录下,以便容器…...

git容易出问题的命令

#首先进行git init初始化本地仓库 git init #再进行拉取远程仓库代码 git clone http://以上这种情况建立在第一次拉取仓库的操作 如果你已经拉取过仓库要进行关联的话&#xff0c;就使用这种方法 #关联远程仓库 git remote add origin https:// # 拉取代码 git pull origin/…...

Mongodb命名和文档限制

选用mongodb时&#xff0c;需要了解与mongodb数据大小&#xff0c;命名上的限制。针对这些限制&#xff0c;本文针对这些限制进行翻译整理。 BSON文档 mongodb中的数据记录&#xff0c;按照文档的形式保存。文档保存在一种类似于JSON的BSON结构中。Mongodb对BSON做了一些限制…...

pyQt主界面与子界面切换简易框架

本篇来介绍使用python中是Qt功能包&#xff0c;设置一个简易的多界面切换框架&#xff0c;实现主界面和多个子界面直接的切换显示。 1 主界面 设计的Demo主界面如下&#xff0c;主界面上有两个按钮图标&#xff0c;点击即可切换到对应的功能界面中&#xff0c;进入子界面后&a…...

​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第12章 信息系统架构设计理论与实践&#xff08;P420~465&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图...

【左程云算法全讲11】贪心算法 并查集

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于左程云算法课程进行的&#xff0c;每个知识点的修正和深入主要参考…...

CSS中4种关系选择器

元素(标签)之间的关系 父元素&#xff1a;直接包含子元素的元素 子元素&#xff1a;直接被父元素包含的元素 祖先元素&#xff1a;直接或间接包含后代元素的元素&#xff0c;父元素也是祖先元素 后代元素&#xff1a;直接或间接被祖先元素包含的元素&#xff0c;子元素也是后代…...

蓝牙模块(HC-05)与手机连接,蓝牙与蓝牙互联,电脑通过蓝牙控制单片机

任务一&#xff1a;蓝牙与手机连接 所用模块&#xff1a; HC-05蓝牙模块&#xff0c;USB TO TTL手机APP为SPP蓝牙串口 第一章&#xff1a;蓝牙模块配置 一&#xff1a;HC-05与USB TO TTL连接 EN&#xff1a;为使能引脚&#xff0c;一般不接 VCC&#xff1a;接USB TO TTL模…...

安装 eslint 配置指南 及 遇到的一些问题记录

前端eslint配置指南 背景 当前前端项目风格混乱&#xff0c;每个人有自己的开发习惯&#xff0c;有自己的格式化习惯&#xff0c;不便于项目的风格统一&#xff0c;不利于代码维护有的项目eslint没有用起来&#xff0c;没有起到规范代码的作用&#xff0c;导致出现一些基础代码…...

trzsz支持文件拖动到终端进行上传,类似lrzsz

考虑到 LapTop -> Host 1 -> Host 2 -> Docker -> TMUX&#xff0c;使用scp或sftp命令不方便&#xff1b;使用rz和sz命令就会方便很多&#xff0c;但是却又与 TMUX 不兼容&#xff08;备注&#xff1a;Tmux是一个终端复用工具&#xff0c;允许用户在一个终端窗口中…...

Doris DDL和DML

1 创建用户和数据库 1)创建test用户 mysql -h hadoop1 -P 9030 -uroot -p create user test identified by test; 2)创建数据库 create database test_db; 3)用户授权...

NewStarCTF2023 Reverse方向Week3 ez_chal WP

分析 题目&#xff1a;ez_chal 一个XTEA加密&#xff0c; V6是key&#xff0c;v5是输入&#xff0c;然后v7就是密文。 看了v6&#xff0c;要用动调。 ELF文件用ida的远程调试。 然后在kali上输入长度为32的flag 全部转换成dd 再提取密文。 EXP #include <stdio.h>…...

程序员如何“升级打怪”?我用了这几个“歪瓜”!

不会吧&#xff1f;不会吧&#xff1f;计算机本命专业出身、以及半路出家的&#xff0c;混了几年了&#xff0c;还在新手村&#xff1f;对得起这几年摸的鱼&#xff1f; 思考一下&#xff1a;如何从小白一跃为大师&#xff0c;从此走上人生巅峰、迎娶白富美&#xff1f;变强只…...

模具制造厂ERP都有哪些牌子?模具制造厂ERP有什么用

模具制造通常会涉及物料领用、成品入库、工艺流转、投入水口、配方、模具、生产啤数统计等众多环节&#xff0c;各个环节数据的实时和准确传递&#xff0c;有利于企业清晰掌握订单生产进度&#xff0c;及时调整制造策略等。 有些模具制造工厂采用传统的管理模式&#xff0c;随…...

FPGA语法相关知识合集

一.相关概念 1.四种结构说明语句 2.initial 与 always 的异同点 3.task 与 function 的3个不同点 4.task的语法结构(定义及调用) 5.function的语法结构(定义及调用) 6.function 的一个必须有和一个必须没有&#xff0c;使用规则 7.自动&#xff08;递归&#xff09;函数…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...