MySQL-ELK基础

1:什么是 ELK

ELK是由一家elastic公司开发的三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。三个项目各有不同的功能,之后又增加了许多新项目, 于是 从5.X版本后改名为Elastic Stack

Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats(filebeat,其不能格式化数据,只能以数据流的方式处理数据),可用来向 Elasticsearch 发送数据。

Elasticsearch 是一个基于json的分布式、实时的全文搜索,存储库和分析引擎。

Logstash 是服务器端数据处理的管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如Elasticsearch 等存储库中;缺点:过于沉重,吃内存。

Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化,辅助分析和搜索。

ELK 版本演进: 0.X,1.X,2,X,5.X,6,X,7.X,8.X ....

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

ELK官方介绍:https://www.elastic.co/cn/what-is/elk-stack

ELK 下载链接:https://www.elastic.co/cn/downloads/

ELK 说明: https://www.elastic.co/guide/cn/index.html

ELK 权威指南: https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

2:ELK stack的主要优点

功能强大:Elasticsearch是实时全文索引,具有强大的搜索功能

配置相对简单:Elasticsearch 全部基于 JSON,Logstash使用模块化配置,Kibana的配置都比较简单。

检索性能高效:基于优秀的设计,每次查询可以实时响应,即使百亿级数据的查询也能达到秒级响应。

集群线性扩展:Elasticsearch 和 Logstash都可以灵活线性扩展

前端操作方便:Kibana提供了比较美观UI前端,操作也比较简单

官方下载  下载 Elastic 产品 | Elastic

EFK 由ElasticSearch、Fluentd和Kiabana三个开源工具组成。Fluentd是一个实时开源的数据收集器,和logstash功能相似,但比logstash轻量,这三款开源工具的组合为日志数据提供了分布式的实时搜集与分析的监控系统。

Fluentd官网和文档:

Fluentd | Open Source Data Collector | Unified Logging Layer

Introduction | 1.0 | Fluentd

3:Elasticsearch 介绍

Elasticsearch:官方分布式搜索和分析引擎 | Elastic

Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。

Elasticsearch 在 Apache Lucene 的基础上开发而成,由Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件

Elasticsearch 支持数据的实时全文搜索搜索、支持分布式和高可用、提供API接口,可以处理大规模的各种日志数据的处理,比如: Nginx、Tomcat、系统日志等功能。

Elasticsearch 基于 Java 语言开发,利用全文搜索引擎 Apache Lucene 实现

4.为何使用 Elasticsearch

Elasticsearch 很快。由于 Elasticsearch 是在 Lucene 基础上构建而成的,所以在全文本搜索方面表现十分出色。Elasticsearch 同时还是一个近实时的搜索平台,这意味着从文档索引操作到文档变为可搜索状态之间的延时很短,一般只有一秒。因此,Elasticsearch 非常适用于对时间有严苛要求的用例,例如安全分析和基础设施监测。

Elasticsearch 具有分布式的本质特征。Elasticsearch 中存储的文档分布在不同的容器中,这些容器称为分片,可以进行复制以提供数据冗余副本,以防发生硬件故障。Elasticsearch 的分布式特性使得它可以扩展至数百台(甚至数千台)服务器,并处理 PB 量级的数据。

Elasticsearch 包含一系列广泛的功能。除了速度、可扩展性和弹性等优势以外,Elasticsearch 还有大量强大的内置功能(例如数据汇总和索引生命周期管理),可以方便用户更加高效地存储和搜索数据。

Elastic Stack 简化了数据采集、可视化和报告过程。通过与 Beats 和 Logstash 进行集成,用户能够在向 Elasticsearch 中索引数据之前轻松地处理数据。同时,Kibana 不仅可针对 Elasticsearch数据提供实时可视化,同时还提供 UI 以便用户快速访问应用程序性能监测 (APM)、日志和基础设施指标等数据。

Elasticsearch 在速度和可扩展性方面都表现出色,而且还能够索引多种类型的内容,可用于多种场景:

应用程序搜索

网站搜索

企业搜索

日志处理和分析

基础设施指标和容器监测

应用程序性能监测

地理空间数据分析和可视化

安全分析

业务分析

①:原理

原始数据会从多个来源(包括日志、系统指标和网络应用程序)输入到 Elasticsearch 中。数据采集指在Elasticsearch 中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在 Elasticsearch 中索引完成之后,用户便可针对他们的数据运行复杂的查询,并使用聚合来检索自身数据的复杂汇总。在Kibana 中,用户可以基于自己的数据创建强大的可视化,分享仪表板,并对 Elastic Stack 进行管理。

Elasticsearch 索引指相互关联的文档集合。Elasticsearch 会以 JSON 文档的形式存储数据。每个文档都会在一组键(字段或属性的名称)和它们对应的值(字符串、数字、布尔值、日期、数组、地理位置或其他类型的数据)之间建立联系。

Elasticsearch 使用的是一种名为倒排索引的数据结构,这一结构的设计可以允许十分快速地进行全文本搜索。倒排索引会列出在所有文档中出现的每个特有词汇,并且可以找到包含每个词汇的全部文档。在索引过程中,Elasticsearch 会存储文档并构建倒排索引,这样用户便可以近实时地对文档数据进行搜索。索引过程是在索引 API 中启动的,通过此 API 您既可向特定索引中添加 JSON 文档,也可更改特定索引中的 JSON 文档。

②:基本概念

Near Realtime(NRT) 几乎实时

Elasticsearch是一个几乎实时的搜索平台。意思是,从索引一个文档到这个文档可被搜索只需要一点点的延迟,这个时间一般为毫秒级。

Cluster 集群

群集是一个或多个节点(服务器)的集合, 这些节点共同保存整个数据,并在所有节点上提供联合索引和搜索功能。一个集群由一个唯一集群ID确定,并指定一个集群名(默认为“elasticsearch”)。该集群名非常重要,因为节点可以通过这个集群名加入群集,一个节点只能是群集的一部分。确保在不同的环境中不要使用相同的群集名称,否则可能会导致连接错误的群集节点。

Node节点

节点是单个服务器实例,它是群集的一部分,可以存储数据,并参与群集的索引和搜索功能。就像一个集群,节点的名称默认为一个随机的通用唯一标识符(UUID),确定在启动时分配给该节点。如果不希望默认,可以定义任何节点名。这个名字对管理很重要,目的是要确定网络服务器对应于ElasticSearch群集节点。

Document 文档

文档是可以被索引的信息的基本单位。例如,您可以为单个客户提供一个文档,单个产品提供另一个文档,以及单个订单提供另一个文档。本文件的表示形式为JSON(JavaScript Object Notation)格式,这是一种非常普遍的互联网数据交换格式。在索引/类型中,您可以存储尽可能多的文档。请注意,尽管文档物理驻留在索引中,文档实际上必须索引或分配到索引中的类型。

Shards & Replicas 分片与副本

索引可以存储大量的数据,这些数据可能超过单个节点的硬件限制。例如,十亿个文件占用磁盘空间1TB的单指标可能不适合对单个节点的磁盘, 或者仅从单个节点的搜索请求服务可能太慢,为了解决这一问题,Elasticsearch提供细分指标分成多个块称为分片的能力。当创建一个索引,可以简单地定义想要的分片数量(老版本默认分5片,新版本默认分1片一副本)。每个分片本身是一个全功能的、独立的“指数”,可以托管在集群中的任何节点。

Shards分片的重要性主要体现在以下两个特征:

分片允许您水平拆分或缩放内容的大小

分片允许你分配和并行操作的碎片(可能在多个节点上)从而提高性能/吞吐量

这个机制中的碎片是分布式的以及其文件汇总到搜索请求是完全由ElasticSearch管理,对用户来说是透明的。

在同一个集群网络或云环境上,故障是任何时候都会出现的,拥有一个故障转移机制以防分片和结点因为某些原因离线或消失是非常有用的,并且被强烈推荐。为此,Elasticsearch允许你创建一个或多个拷贝,索引分片进入所谓的副本或称作复制品的分片,简称Replicas。

Replicas的重要性主要体现在以下两个特征:

副本为分片或节点失败提供了高可用性。为此,需要注意的是,一个副本的分片不会分配在同一个节点作为原始的或主分片,副本是从主分片那里复制过来的。

副本允许用户扩展你的搜索量或吞吐量,因为搜索可以在所有副本上并行执行。

相关概念在关系型数据库和ElasticSearch中的对应关系

 详细说明

索引库(indices) indices是index的复数,代表许多的索引,

类型(type)类型是模拟mysql中的table概念,一个索引库下可以有不同类型的索引,比如商品索引,订单索引,其数据格式不同。不过这会导致索引库混乱,因此未来版本中会移除这个概念

文档(document) 存入索引库原始的数据。比如每一条商品信息,就是一个文档

字段(field) 文档中的属性

详细架构

5.Logstash

https://www.elastic.co/cn/what-is/elasticsearch

Logstash 是 Elastic Stack 的核心产品之一,可用来对数据进行聚合和处理,并将数据发送到Elasticsearch。Logstash 是一个基于Java实现的开源的服务器端数据处理管道,允许您在将数据索引到Elasticsearch 之前同时从多个来源采集数据,并对数据进行过滤和转换。其支持单线程,但是可以用特殊手段实现多线程。

可以通过插件实现日志收集和转发,支持日志过滤,支持普通log、自定义json格式的日志解析。

6.Kibana

Kibana 是一款适用于 Elasticsearch 的基于Javascript语言实现的数据可视化和管理工具,可以提供实时的直方图、线形图、饼状图和地图。Kibana 同时还包括诸如 Canvas 和 Elastic Maps 等高级应用程序;

Canvas 允许用户基于自身数据创建定制的动态信息图表,而 Elastic Maps可以做PPT, 则可用来对地理空间数据进行可视化。

官方文档   https://www.elastic.co/cn/what-is/kibana

主要是通过接口调用elasticsearch的数据,并进行前端数据可视化的展现。

Kibana 与 Elasticsearch 和更广意义上的 Elastic Stack 紧密的集成在一起,这一点使其成为支持以下场景的理想选择:

搜索、查看并可视化 Elasticsearch 中所索引的数据,并通过创建柱状图、饼图、表格、直方图和地图对数据进行分析。仪表板视图能将这些可视化元素组织到一起,然后通过浏览器进行分享,以提供对海量数据的实时分析视图,所支持的用例如下:

1. 日志处理和分析

2. 基础设施指标和容器监测

3. 应用程序性能监测 (APM)

4. 地理空间数据分析和可视化

5. 安全分析

6. 业务分析

7.ELK 应用场景

运维主要应用场景:

将分布在不同主机的日志统一收集,并进行转换,通过集中的WebUI进行查询和管理,通过查看汇总的日志,找到故障的根本原因

Web 展示和报表功能

实现安全和事件等管理

大数据运维主要应用场景:

查询聚合, 大屏分析

预测告警, 网络指标,业务指标安全指标

日志查询,问题排查,基于API可以实现故障恢复和自愈

用户行为,性能,业务分析

8.完整的ELK运行架构(完整版)

二.Elasticsearch 部署和管理

①Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据

Elasticsearch 基于 Java 语言实现

        部署方式

        包安装

        二进制安装

        Docker 部署

        Ansible 批量部署

②ES支持操作系统版本和 Java 版本官方说明    https://www.elastic.co/cn/support/matrix

安装前环境初始化

CPU 2C 内存4G或更多

操作系统: Ubuntu22.04,Ubuntu22.04,Rocky8.X,Rocky9.X,Centos 7.X

操作系统盘40G

主机名设置规则为nodeX.xxhf123.top

生产环境建议准备单独的数据磁盘③优化资源限制配置

修改内核参数

内核参数 vm.max_map_count 用于限制一个进程可以拥有的VMA(虚拟内存区域)的数量

使用默认系统配置,二进制安装时会提示下面错误,包安装会自动修改此配置

echo "vm.max_map_count = 262144" >> /etc/sysctl.conf

echo "fs.file-max = 1000000" >> /etc/sysctl.conf  //最大文件距离

sysctl -p

vim /etc/security/limits.conf

*               soft    core            unlimited

*               hard    core            unlimited

*               soft    nproc           1000000

*               hard    nproc           1000000

*               soft    memlock         1000000

*               hard    memlock         1000000

*               soft    msgqueue        1000000

*               hard    msgqueue        1000000

安装 Java 环境 (可选) 

Elasticsearch 是基于java的应用,所以依赖JDK环境

注意: 安装7.X以后版本官方建议要安装集成JDK的包,所以无需再专门安装 JDK

1.x 2.x 5.x 6.x都没有集成JDK的安装包,也就是需要自己安装java环境

7.x的安装包分为带JDK和不带JDK两种包,带JDK的包在安装时不需要再安装java,如果不带JDK的包仍然需要自己去安装java

cluster.name: ELK-Cluster     集群名称,多个node名称需要保持一致

node.name: es-node1        当前node在集群中的名称,各个node名称不能一致

path.data: /data/es-data      ES数据字典

path.logs: /data/es-logs       ES日志保存目录

bootstrap.memory_lock: true  服务启动的时候立即分配(锁定)足够的内存,防止数据写入swap,提高启动速度

network.host: 0.0.0.0         指定监听IP,如果绑定了错误的IP,可将此修改为指定IP

http.port: 9200              监听端口

discovery.seed_hosts: ["192.168.10.100","192.168.10.110","192.168.10.120"]  在新增节点到集群时,此处需指定至少一个已经在集群中的节点地址

cluster.initial_master_nodes: ["10.0.0.101","10.0.0.102","10.0.0.103"]

http.cors.enabled: true    是否支持跨域   默认为false

http.cors.allow-origin: "*"  若支持跨域,则支持所有域名跨域名

path.data: /var/lib/elasticsearch

path.logs: /var/log/elasticsearch

network.host: 192.168.10.100

bootstrap.memory_lock: true

xpack.security.enabled: false

xpack.security.http.ssl:

  enabled: false

xpack.security.transport.ssl:

  enabled: false

discovery.seed_hosts: ["192.168.10.100"]

cluster.initial_master_nodes: ["192.168.10.100"]

http.cors.enabled: true

http.cors.allow-origin: "*"

【注】:内存锁若在内存不足仍需要勉强启动的时候,可设置为false,或者更改UNIT单元文件即可。

设置主ES节点的JVM内存优化,注意:建议设置为物理内存的一半

ES单点搭建完毕后在浏览器内进行访问  验证结果

http://192.168.10.100:9200

http://192.168.10.100:9200/_cat/nodes?v           节点信息查看

http://192.168.10.100:9200/_cat/indices?v          索引信息查看

curl -X POST http://192.168.10.100:9200/wang/_doc -H 'Content-Type:application/json' -d '{"name": "wang","age": 18}'

http://192.168.10.100:9200/wang/_search?q=*        索引数据查询

上述操作方法和显示不够直观,操作比较复杂,可以安装elasticsearch-head

安装方式 

①:科学上网,在google应用商店安装插件即可

②:docker直接安装

③:javascript  npm工具包安装

设置ES集群

在ES从节点上进行优化资源限制配置,修改内核参数,修改JVM内存优化,过程同上主节点

设置从ES主配置文件

三、Elasticsearch 集群工作原理

1:ES的节点有三种

Master 节点

ES集群中只有一个 Master 节点,用于控制整个集群的操作

Master 节点负责增删索引,增删节点,shard分片的重新分配

Master 主要维护Cluster State,包括节点名称,节点连接地址,索引名称和配置认证等

Master 接受集群状态的变化并推送给所有节点,集群中各节点都有一份完整的集群状态信息,都由master node负责维护

Master 节点不需要涉及到文档级别的变更和搜索等操作协调创建索引请求或查询请求,将请求分发到相关的node上。

当Cluster State有新数据产生后, Master 会将数据同步给其他 Node 节点

Master节点通过超过一半的节点投票选举产生的

可以设置node.master: true 指定为是否参与Master节点选举, 默认true

Data 节点

存储数据的节点即为 data 节点

当创建索引后,索引创建的数据会存储至某个数据节点

Data 节点消耗内存和磁盘IO的性能比较大

配置node.data: true, 默认为 true,即默认节点都是 data类型

Coordinating 节点(协调)

2ES 集群分片和副本

①:分片 Shard

ES 中存储的数据可能会很大,有时会达到PB级别,基于性能和容量等原因,可以将一个索引数据分割成多个小的分片,再将每个分片分布至不同的节点,从而实现数据的分布存储,实现性能和容量的水平扩展;在读取时,可以实现多节点的并行读取,提升性能

除此之外,如果一个分片的主机宕机,也不影响其它节点分片的读取横向扩展即增加服务器,当有新的Node节点加入到集群中时,集群会动态的重新进行分配和负载;例如原来有两个Node节点,每个节点上有3个分片,即共6个分片,如果再添加一个node节点到集群中,集群会动态的将此6个分片分配到这三个节点上,最终每个节点上有两个分片。

7,X 默认每个索引只有一个分片②:副本 Replication

将一个索引分成多个分片,仍然存在数据的单点问题,可以对每一个分片进行复制生成副本,即备份,实现数据的高可用

ES的分片分为主分片(primary shard)和副本分片(复制replica shard),而且通常分布在不同节点

主分片实现数据读写,副本分片只支持读每个数据分片只有一个主分片,而副本分片可以有多个,比如;一个副本,即有一个备份

7,X 默认每个索引只有一个副本分片

ES故障后先基于集群选举然后再故障转移,但分片的数据丢失,需要副本支持。

【注】:ES7.0版本默认分片为1个,并且只有1个副本;ES6.X版本前默认分片为5个副本1个

3ES 文档创建流程

客户端向协调节点 Node1 发送新建索引文档或者删除索引文档请求。

Node1节点使用文档的 _id 确定文档属于分片 0 。

因为分片 0 的主分片目前被分配在 Node 3 上,请求会被转发到 Node 3

Node3 在主分片上面执行创建或删除请求

Node3 执行如果成功,它将请求并行转发到 Node1 和 Node2 的副本分片上。

一旦所有的副本分片都报告成功, Node3 将向协调节点Node1 报告成功,协调节点Node1 客户端报告成功。在客户端收到响应时,文档变更已经在主分片和所有副本分片执行完成

4ES 文档读取流程

客户端向 Node1 发送读取请求。

节点使用文档的 _id 来确定文档属于分片 0。分片 0 的副本分片存在于所有的三个节点上。

在处理读取请求时,协调结点在每次请求的时候都会通过轮询所有的副本分片来达到负载均衡。

在这种情况下,它将请求转发到 Node2 。

Node2 将文档返回给 Node1 ,然后将文档返回给客户端。

5Kibana的安装和使用

server.port: 5601

server.host: "192.168.10.120"

server.publicBaseUrl: "http://192.168.10.120:5601"

elasticsearch.hosts: ["http://192.168.10.100:9200","http://192.168.10.110:9200"]

logging:

  appenders:

    file:

      type: file

      fileName: /var/log/kibana/kibana.log

      layout:

        type: json

  root:

    appenders:

      - default

      - file

pid.file: /run/kibana/kibana.pid

i18n.locale: "zh-CN"

6:索引管理和kibana内部索引视图管理

四:logstash部署和管理

五:filebeat基本操作

注意:filebeat不支持多重输出

①:标准屏幕输入输出

filebeat -c filebeat.yml -e

②:标准输入,文件输出

filebeat -c stdin.yml -e

③:文件输入,标准输出

filebeat -c file-stdout.yml -e 

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

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

相关文章

【JavaScript】内置对象 - Date 日期对象 ④ ( 制作倒计时页面 )

文章目录 一、倒计时页面实现1、需求分析2、计算秒数3、计算倒计时时间的 天 / 时 / 分 / 秒4、页面中显示倒计时时间 二、完整代码示例1、完整代码2、执行结果 Date 日期对象参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Da…

速卖通商品评论API(aliexpress.item_review)返回值全解析

在电商领域,用户评论对于产品的推广和销售具有极其重要的影响。速卖通(AliExpress)作为全球知名的跨境电商平台,提供了丰富的API接口供开发者使用,其中aliexpress.item_review API允许开发者获取商品的评论信息。本文将…

品质为王:高效溶解性鱼油胶囊的软胶囊弹性硬度测试解析

品质为王:高效溶解性鱼油胶囊的软胶囊弹性硬度测试解析 在当今的健康产品市场中,高效溶解性鱼油胶囊以其独特的营养价值和吸收效率赢得了众多消费者的青睐。然而,要想在激烈的市场竞争中脱颖而出,产品的品质保证至关重要。其中&a…

深入理解WPF的ResourceDictionary

深入理解WPF的ResourceDictionary 介绍 在WPF中,ResourceDictionary用于集中管理和共享资源(如样式、模板、颜色等),从而实现资源的重用和统一管理。本文详细介绍了ResourceDictionary的定义、使用和合并方法。 定义和用法 Res…

鸿蒙内核源码分析(信号消费篇) | 谁让CPU连续四次换栈运行

本篇有相当的难度,涉及用户栈和内核栈的两轮切换,CPU四次换栈,寄存器改值,将围绕下图来说明. 解读 为本篇理解方便,把图做简化标签说明: user:用户空间kernel:内核空间source(…):源函数sighandle(…):信号处理函数&a…

【操作系统】进程与线程概念基础知识

进程与线程概念基础知识 进程进程的概念进程控制块进程状态进程三状态模型挂起进程模模型进程的上下文切换进程控制 线程为什么引入线程线程的概念线程与进程的比较线程的上下文切换线程的实现 进程 进程的概念 1. 进程的定义: 进程是指一个具有一定独立功能的程序…

【面试干货】http请求报文的组成与作用?

【面试干货】http请求报文的组成与作用? 一、http 的请求报文组成二、请求行(Request Line)三、请求头部(Request Headers)四、请求体(Request Body)五、响应头部 (Response Headers…

iframe的基本用法

一、背景 在web页面开发中,有时会遇到在一个应用A的页面中引用应用B的页面,此时就需要在应用A中使用iframe嵌入引用B的页面了,比如多租户的web应用,或者门户系统的智能客服助手弹框应用,博主也是在做通用智能客服应用的过程中用到了iframe。网络上有关iframe的信息虽然很…

银河麒麟桌面版开机后网络无法自动链接 麒麟系统开机没有连接ens33

1.每次虚拟机开机启动麒麟操作系统,都要输入账号,密码。 进入点击这个ens33 内网才连接 2. 如何开机就脸上呢? 2.1. 进入 cd /etc/sysconfig/network-scripts 2.2 修改参数 onbootyes 改为yes 2.3 重启即可 a. 直接重启机器查看是否正常&…

工程伦理课堂记录

文章目录 0. 导论0.1 工程伦理教育的意义0.2 工程伦理教育要实现的目标 1. 工程与伦理1.1 工程伦理学科的产生1.2 工程和技术1.3 工程概念的理解演进1.4 工程的过程1.5 工程的特点1.6 工程活动的七个维度总结 2. 伦理2.1 道德伦理的概念2.2 道德伦理的关系2.3 伦理规范2.4 伦理…

【吃透Java手写】2-Spring(下)-AOP-事务及传播原理

【吃透Java手写】Spring(下)AOP-事务及传播原理 6 AOP模拟实现6.1 AOP工作流程6.2 定义dao接口与实现类6.3 初始化后逻辑6.4 原生Spring的方法6.4.1 实现类6.4.2 定义通知类,定义切入点表达式、配置切面6.4.3 在配置类中进行Spring注解包扫描…

Blender动画与云渲染:创造高质量作品的未来路径

Blender作为开源的3D图形软件,在多个领域广受欢迎。但随着项目复杂度提升,传统渲染方式受限。云渲染技术的兴起突破了这些限制,为创作者提供了更自由、高效的创作环境。 一、Blender动画项目的挑战 传统上,Blender动画渲染需要依…

代码审计-php篇之某CRM系统多处sql注入

🌟 ❤️ 作者:yueji0j1anke 首发于公号:剑客古月的安全屋 字数:3516 阅读时间: 35min 声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果…

实战 | 实时手部关键点检测跟踪(附完整源码+代码详解)

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

苹果平板HOME键成历史,全面屏时代到来?2024平板电脑市场趋势分析

近期苹果公司在“放飞吧”发布会上推出了新款iPad Pro和iPad Air平板电脑,并下架了最后一款带有实体Home按键的iPad 9。这一变化标志着Home键在苹果iPad产品线中成为了历史,引起了不少网友的怀念和感慨。 与此同时,今年3月线上平板电脑市场迎…

【驱动】I2C读写时序

1、I2C总线 I2C使用两条线在主控制器和从机之间通信,SCL(串行时钟线)和SDA(串行数据线),这两条线需接5~10欧上拉电阻,总线空闲空闲时,SCL和SDA处于高电平,I2C总线标准模式速度可以达到100K/S,快速模式可以达到400K/S。 2、状态 I2C总线有四种状态:空闲、启动、忙碌、…

Unity与C#的关系

第一,我们首先需要知道Unity与C#的关系是什么? 第二,我们要明白为什么Unity会使用C#,而不是C? 第三,我们需要知道Unity是怎么使用C#的? 第一点: 先说结论:C#是Unity用…

LabVIEW波浪发电平台浮筒取能效率数据采集系统

LabVIEW波浪发电平台浮筒取能效率数据采集系统 随着化石能源的逐渐减少以及能源价格的上升,寻找可替代的、可再生的、清洁的能源成为了世界各国的共识。波浪能作为一种重要的海洋能源,因其巨大的潜力和清洁性,近年来受到了广泛关注。开发了一…

Blender修改器

修改器 Modifier,对模型进行修改,相当于一个函数。 修改器图标是界面右下角的扳手样式 每个修改器的顶部都有如下样式,从左到右分别为:展开/折叠,修改器类型,修改器名称,编辑模式按钮&#xff…

TCP三次握手四次挥手 UDP

TCP是面向链接的协议,而UDP是无连接的协议 TCP的三次握手 三次传输过程是纯粹的不涉及数据,三次握手的几个数据包中不包含数据内容。它的应用层,数据部分是空的,只是TCP实现会话建立,点到点的连接 TCP的四次挥手 第四…