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

Elasticsearch 需要了解的都在这

ES选主过程?

其实ES的选主过程其实没有很高深的算法加持,启动过程中对接点的ID进行排序,取ID最大节点作为Master节点,那么如果选出来的主节点中存储的元信息不是最新的怎么办?

其实他是分了2个步骤做这件事,先选出ID最大的主节点,然后再从元信息最新的节点将元信息数据复制到选举出来的主节点

当然虽然是选出ID取值最大的节点作为主节点,但是内部还是有一定限制逻辑的:

  1. 参选人数需要过半,达到 quorum(多数)后就选出了临时的主。为什么是临时的?每个节点运行排序取最大值的算法,结果不一定相同。举个例子,集群有5台主机,节点ID分别是1、2、3、4、5。当产生网络分区或节点启动速度差异较大时,节点1看到的节点列表是1、2、3、4,选出4;节点2看到的节点列表是2、3、4、5,选出5。结果就不一致了,由此产生下面的第二条限制。

  1. 得票数需过半。某节点被选为主节点,必须判断加入它的节点数过半,才确认Master身份。解决第一个问题。

  1. 当探测到节点离开事件时,必须判断当前节点数是否过半。如果达不到quorum,则放弃Master身份,重新加入集群。如果不这么做,则设想以下情况:假设5台机器组成的集群产生网络分区,2台一组,3台一组,产生分区前,Master位于2台中的一个,此时3台一组的节点会重新并成功选取Master,产生双主,俗称脑裂。

选举主分片过程?

Master节点并不知道主分片节点位于哪里,它只能向所有节点上的所有Shard去询问你的website下标是不是0,那么这个询问的请求量就等于 节点数 * Shard数,如果你的规模非常庞大,那么这个将会很耗时,这个时候可能会获取到多份下标为0的请求响应,5.X版本之后主分片的选举是根据一个List<最新主分片>,在这个集合中的分片都是元信息最新的分片数据

高并发写数会不会影响读?

首先写是加锁的,无论是Bulk方式还是普通方式

Bulk方式的写锁

但是这个时候的写锁并不影响读,只是为了确保这一次请求被一个线程处理,这个时候用的是java的可重入锁

Put方式的写锁

这里使用的是可重入读写锁,然后再初始化到Es自己的ReleasableLock中执行

Get方式读取数据读锁

由于读和写使用的是ReentrantReadWriteLock进行加锁,那么读和写之间就是互斥的,所以主分片在写数据到Cache的时候高并发的写是会影响读的性能的,但是此时副分片节点的读不受影响,之后副分片节点也开始处理主分片同步过来的数据时那么副分片的读也会收到影响

数据写入顺序性怎么保证?

每一个写入的文档都有一个_version,每次修改会递增用来判断本次修改命令是执行还是丢弃

10亿数据导入到ES需要7个小时?

我们先看下写入过程:

副本节点越多写入时间越久,因为写入是串行的,主节点写入完成后会并发请求所有副本节点,会等到每一个副本节点响应后才会返回给协调者,无论副本节点是否成功都会等待每一个节点响应

如果没有任何优化的话差不多需要这个时间,如果你的场景是每天都会初始化一次那么多数据到ES的话,我们一定需要优化的,写入优化主要是几个方面:

异步刷盘

可以利用异步刷盘加速写入速度,只要丢失数据的风险是可接受范围就行了

index.translog.durability:async

调整副本数

ES副本数过多的时候就会导致写入缓慢,看上面的流程应该比较清楚了,每次大数据量导入之前将副本节点数调整成0是加速写入最直接的办法

BULK批量写入

通过API一条条写入的话太慢了,ES是原生支持BULK批量方式操作

调整FLUSH

  • 适当调整max_index_buffer_size大小,不要太频繁的flush,如果你的使用场景不需要数据太实时能被读到,那么适当放大这个值

  • 调整FLUSH时间

调整REFUSH

ES在修改数据的时候并不是修改原数据,而是新增了一条数据然后将原数据打上了delete标记,这样做的好处就是不需要对同一条数据进行加锁,但是坏处就是数据碎片过多需要不定时merge,而merge过程中需要对被merge的数据块获取合并锁但是不影响读

那么如果要提高写入的性能,我们通常还可以调整segment块的大小避免太多碎片出现以及调整merge的时间

public void forceMerge(final boolean flush, int maxNumSegments, boolean onlyExpungeDeletes, final String forceMergeUUID)throws EngineException, IOException {if (onlyExpungeDeletes && maxNumSegments >= 0) {throw new IllegalArgumentException("only_expunge_deletes and max_num_segments are mutually exclusive");}//获取合并锁,但是没有抢占读锁optimizeLock.lock();try {ensureOpen();store.incRef(); // increment the ref just to ensure nobody closes the store while we optimizetry {if (onlyExpungeDeletes) {indexWriter.forceMergeDeletes(true /* blocks and waits for merges*/);} else if (maxNumSegments <= 0) {indexWriter.maybeMerge();} else {indexWriter.forceMerge(maxNumSegments, true /* blocks and waits for merges*/);this.forceMergeUUID = forceMergeUUID;}if (flush) {flush(false, true);// 这里会删除已经被打上delete标记的数据refresh("force-merge");}} finally {store.decRef();}} catch (AlreadyClosedException ex) {//释放任何因为异常而未合并的segmentensureOpen(ex);failOnTragicEvent(ex);throw ex;} catch (Exception e) {try {maybeFailEngine("force merge", e);} catch (Exception inner) {e.addSuppressed(inner);}throw e;} finally {optimizeLock.unlock();}
}

为什么我查询ES的RT已经偏高?

可能几种原因:

  1. 查询过于复杂,需要扫描的文档数过多

  1. 缓存命中率太低

  1. 分片节点数据不均匀,大量数据在一个节点

  1. 数据涉及分片过多

查询过于复杂,需要扫描的文档数过多

这个需要在设计数据结构的时候就避免出现,过于嵌套的结构会使后期查询缓慢,如果现在已经是这种结构了,那么可能最好的办法就是将查询语句拆分,分批去ES查询应用本地内存进行最终结果聚合

缓存命中率太低

ES内部其实是会对查询结果集进行缓存的,但是如果你的查询条件参数值都是now()等类型的数据,那么ES是无法缓存的,也就导致你的缓存命中率很低,完全没有用到Cache

分片级别缓存的逻辑
Node级别缓存的逻辑

ShardRequestCache是ES层级的实现,缓存机制为 LRU, 访问一次,就会考虑缓存,主要用途是对聚合结果进行缓存

NodeQueryCache是Lucene层级的实现,缓存机制为 LRU, 访问达到一定频率,才会考虑缓存,主要用途是对filter子查询的缓存

分片节点数据不均匀,大量数据在一个节点

这个如果采用ES原生的hash进行分片的话一般不会出现这个情况,主要是采用了自己的分片策略,这个时候大量请求都在一个节点那么查询性能肯定降低,最好的解决方案是重新Shard

数据涉及分片过多

节点接收到查询请求后,需要并发请求所有分片等待分片的查询结果返回,如果分片节点过多,那么这个场景势必会导致请求很慢,最好的处理方案是指定分片查询,这个就涉及数据写入的时候就设计好

预索引优化

还可以针对某些查询的模式来优化数据的索引方式。例如,如果所有文档都有一个price字段,并且大多数查询在一个固定的范围上运行range聚合,那么可以通过将范围“pre-indexing”到索引中并使用terms聚合来加快聚合速度,新增一个price_range字段,然后创建索引,查询的时候使用这个字段进行查询

我自己能查看哪些是慢查询嘛?

使用Profile API定位慢查询,这个API返回的统计纬度是按分片纬度统计的

ES集群状态为啥会显示Yellow或Red?

一个ES索引由多个分片组成,由于某些原因,某些分片可能会处于未分配状态(Unassigned),导致集群健康处于Yellow或Red状态,这是一种比较常见的错误信息,导致分片处于未分配的原因可能是节点离线、分片数量设置错误等原因,使用Explain API可以很容易分析当前的分片分配情况

GET /_cluster/allocation/explain

相关文章:

编辑器,编译器,IDE的区别

1.编辑器,编译器 简单说编辑器是用来写代码的&#xff0c;而编译器是对现场高级语言代码翻译成相对低级语言的一段小程序/指令。 2.IDE 集成开发环境&#xff08;IDE&#xff0c;Integrated Development Environment &#xff09;是用于提供程序开发环境的应用程序&#xff…...

Web3技术解析:区块链在去中心化应用中的角色

引言 在过去几年中&#xff0c;Web3技术已经成为了互联网领域的一个热门话题。作为区块链技术的延伸&#xff0c;Web3不仅仅是数字货币的代名词&#xff0c;更是一个能够为各种应用提供去中心化解决方案的强大工具。本文将深入探讨区块链在Web3去中心化应用中的关键角色&#…...

【003_音频开发_基础篇_Linux进程通信(20种你了解几种?)】

003_音频开发_基础篇_Linux进程通信&#xff08;20种你了解几种&#xff1f;) 文章目录 003_音频开发_基础篇_Linux进程通信&#xff08;20种你了解几种&#xff1f;)创作背景Linux 进程通信类型fork() 函数fork() 输出 2 次fork() 输出 8 次fork() 返回值fork() 创建子进程 方…...

实验8-1tensorboard可视化+实验8-2tensorboard案例

版本python3.7 tensorflow版本为tensorflow-gpu版本2.6 实验8-1tensorboard可视化运行结果:代码:import tensorflow as tf# 创建默认图 graph = tf.compat.v1.get_default_graph()# 定义命名空间 with graph.as_default():with tf.name_scope(input):# fetch:就是同时运行多…...

Echarts多条折线图line显示数值和真实数值不一致

问题图: 折线图数据显示不匹配原因:在line的配置项中加了"stack"这一项配置,stack为‘Total’或‘总量’的情况下,y轴不是真实的value的值,而是value的总量值。既后续折现的数值在前数值的基础上相加. 官网对stack的描述:数据堆叠,同个类目轴上系…...

记一次从海量数据表中筛选符合不同条件组合的数据执行速度很慢问题,以及后续优化。(SQL脚本存在较多问题)

速度很慢的SQL脚本SET NOCOUNT ON;DECLARE @sn VARCHAR(200);DECLARE @n INT;DECLARE @sn_tab TABLE(id BIGINT,sn VARCHAR(200));IF OBJECT_ID(tempdb..#tab_f1) IS NOT NULL DROP TABLE #tab_f1CREATE TABLE #tab_f1(id BIGINT)CREATE INDEX idx_f1_id ON #tab_f1(id)IF OBJE…...

Elasticsearch 需要了解的都在这

ES选主过程&#xff1f;其实ES的选主过程其实没有很高深的算法加持&#xff0c;启动过程中对接点的ID进行排序&#xff0c;取ID最大节点作为Master节点&#xff0c;那么如果选出来的主节点中存储的元信息不是最新的怎么办&#xff1f;其实他是分了2个步骤做这件事&#xff0c;先…...

anaconda如何改变虚拟环境安装路径

1、查看anaconda的环境配置&#xff08;对应结果如下图所示&#xff09; conda config --show 或者 conda info 查看虚拟环境安装位置的结果如上图所示 2、修改配置语法 conda config --add key value #添加语法 conda config --remove key value #删除语法 其中&#xff0…...

基于opencv的边缘检测方法

1、梯度运算 用OpenCV的形态变换&#xff08; 膨胀、腐蚀、开运算和闭运算&#xff09;函数morphologyEx 梯度运算即膨胀结果-腐蚀结果&#xff1a; 【注意】对于二值图像来说&#xff0c;必须是前景图像为白色&#xff0c;背景为黑色&#xff0c;否则需要进行反二值化处理 …...

Mac环境变量配置(Java)

1.打开终端&#xff1a; 2.输入命令&#xff1a;【/usr/libexec/java_home -V】,查看默认的jdk下载地址&#xff08;绿色下划线的就是jdk默认路径&#xff09;&#xff08;注意⚠️&#xff1a;命令行终端是区分大小写的【-v 是不对的&#xff0c;必须是大写 -V】&#xff09; …...

Linux定时任务:编辑、查看、删除

查看定时任务文件所在位置&#xff08;通常情况下在/var/spool/cron/文件夹里&#xff0c;文件名通常是以创建者的用户名命名&#xff09; 注意&#xff1a;当前登录用户名为root&#xff1a; 1、编辑定时任务&#xff08;相当于自动在/var/spool/cron目录下,创建了一个 以当…...

昇腾AI机器人发布,12家企业、5家高校签约,昇腾AI开发者创享日全国巡展沈阳首站成功举办

“创未来&#xff0c;享非凡”昇腾AI开发者创享日2023年全国巡回首站活动成功举办&#xff0c;本次活动由辽宁省科技厅指导&#xff0c;由沈阳市科技局、浑南区人民政府、沈阳高新区管理委员会、华为技术有限公司共同主办&#xff0c;沈阳昇腾人工智能生态创新中心承办&#xf…...

基于 OpenCV 与 Java 两个语言版本实现获取某一图片特定区域的颜色对比度

本文目录一、什么是对比度二、什么是颜色直方图三、如何通过RGB计算颜色对比度什么是HSV、Lab颜色空间四、OpenCV代码五、Java代码5.1 平滑处理5.2 完整代码一、什么是对比度 对比度是指图像中不同区域之间的明暗差异程度&#xff0c;它是图像质量中的重要指标之一。除了颜色对…...

Springboot是什么

目录 为什么会要用springboot 1、之前 2、现在 springboot优点 springboot四大核心 自动装配介绍 1、自动装配作用是什么 2、自动装配原理 springboot starter是什么 1、starter作用 2、比如&#xff1a;我们想搭建java web框架 3、starter原理 SpringBootApplica…...

Mac M1通过VMWare Fusion安装Centos7记录(镜像和网络有大坑)

以前用linux系统基本都在我的服务器上或者是在win上进行&#xff0c;从没有在M1上进行创建&#xff0c;因此走了一些坑吧&#xff0c;这里会列出我的详细安装步骤。 下载镜像 镜像的下载网站&#xff1a;https://www.centos.org/download/ 在该网站中&#xff0c;不管是Every…...

Windows Server 2016远程桌面配置全过程

镜像下载 系统镜像网址 本次下载的是 Windows Server 2016 (Updated Feb 2018) (x64) - DVD (Chinese-Simplified) 远程桌面配置 Step 1 在开始菜单搜索服务&#xff0c;打开服务器管理器&#xff0c;点击右上角的管理按钮 Step 2 添加角色控制&#xff0c;点击下一步 S…...

js 数据类型

1.概念 数据类型指的是可以在程序中存储和操作的值的类型&#xff0c;每种编程语言都有其支持的数据类型&#xff0c;不同的数据类型用来存储不同的数据&#xff0c;例如文本、数值、图像等。 JavaScript 是一种动态类型的语言&#xff0c;在定义变量时不需要提前指定变量的类…...

No.020<软考>《(高项)备考大全》【第05章】项目范围管理

1 章节相关 1.1 考试相关 上午一般考3分左右&#xff0c;20下、21下、22上考案例分析 21上考论文写作&#xff0c;是案例、论文需要学习准备的重点 1.2 6个过程 &#xff08;1&#xff09;规划范围管理&#xff1a;对如何定义、确认和控制项目范围的过程进行描述。 &#x…...

LAMP架构之zabbix监控(2):zabbix基础操作

目录 一、zabbix监控节点添加和删除 &#xff08;1&#xff09;手动添加 &#xff08;2&#xff09;自动添加 &#xff08;3&#xff09;按照条件批量添加 &#xff08;4&#xff09;使用api工具进行管理 二、针对应用的zabbix监控 一、zabbix监控节点添加和删除 实验说明&a…...

九龙证券|重磅文章引爆两大板块!千亿煤炭龙头强势涨停!

A股今天走势分化&#xff0c;创业板指逆市拉升&#xff1b;港股走势疲弱&#xff0c;恒生科技指数一度跌超3%。 具体来看&#xff0c;A股方面&#xff0c;沪指弱势震荡下探&#xff0c;盘中一度跌超1%&#xff0c;午后跌幅收窄&#xff1b;创业板指走势微弱&#xff0c;午后涨超…...

OCR之论文笔记TrOCR

文章目录TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models一. 简介二. TrOCR2.1. Encoder2.2 Decoder2.3 Model Initialiaztion2.4 Task Pipeline2.5 Pre-training2.6 Fine-tuning2.7 Data Augmentation三. 实验3.1 Data3.2 Settings3.2 Resul…...

静态路由+DHCP实验(四路由器八PC)

一.200.1.1.0/24子网划分 1.划分八个子网 2.选用前5个&#xff0c;第五个子网再划分4个子网作为骨干 二.规划路由 三.配置&#xff08;下一跳&#xff09; 1.先依次实现四个路由器之间全网可通 2.为路由器配置地址池&#xff0c;使用全局模式获取dhcp&#xff0c;指定网关…...

文件包含漏洞原理与实践

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 文件包含漏洞一、什么是文件包含漏洞&#xff1f;二、文件包含函数三、两种文件包含1、本地文件包含1.1 使用教程演示2、远程文件包含1.1 使…...

利用摄影测量进行地形建模的介绍

一、前言 从一个地方到另一个地方的地球表面由连续和突然的海拔变化组成&#xff0c;个人和社会都必须应对这些变化。 水从高山和丘陵向下流&#xff0c;从溪流流入河流&#xff0c;形成三角洲&#xff0c;最终汇入大海。 三维 (3D) 地面信息的获取和表示一直是与行星表面相关的…...

【Nginx】Nginx 常用的基础配置

文章目录一、基础配置二、隐藏 Nginx 版本信息三、禁止ip直接访问80端口四、启动 web 服务 (vue 项目为例)五、PC端和移动端使用不同的项目文件映射六、一个web服务&#xff0c;配置多个项目 (location 匹配路由区别)七、配置负载均衡八、SSL 配置 HTTPS一、基础配置 user …...

基于OpenCV的图片和视频人脸识别

目录 &#x1f969;前言 &#x1f356;环境使用 &#x1f356;模块使用 &#x1f356;模块介绍 &#x1f356;模块安装问题: &#x1f969;人脸检测 &#x1f356;Haar 级联的概念 &#x1f356;获取 Haar 级联数据 &#x1f357; 1.下载所需版本 &#x1f357; 2.安…...

比肩ChatGPT的国产AI:文心一言——有话说

&#x1f517; 运行环境&#xff1a;chatGPT&#xff0c;文心一言 &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&am…...

剑指offer JZ77 按之字形顺序打印二叉树

Java JZ77 按之字形顺序打印二叉树 文章目录Java JZ77 按之字形顺序打印二叉树一、题目描述二、双栈法三、队列reverse()法使用双栈法和队列reverse()法解决剑指offer JZ77 按之字形顺序打印二叉树的问题。 一、题目描述 给定一个二叉树&#xff0c;返回该二叉树的之字形层序遍…...

【Azure 架构师学习笔记】-Azure Data Factory (5)-Managed VNet

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 接上文【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器 前言 PaaS服务默认都经过公网传输&#xff0c; 这对很多企业而言并不安全&#xff0c;那么就需要对其进行安全改…...

聚类算法层次聚类

###cluster.py #导入相应的包 import scipy import scipy.cluster.hierarchy as sch from scipy.cluster.vq import vq,kmeans,whiten import numpy as np import matplotlib.pylab as plt #生成待聚类的数据点,这里生成了20个点,每个点4维: pointsscipy.randn(20,4) #加一…...

大数据写入到Oracle数据库(批量插入数据)

开发中经常遇到批量插入数据的需求&#xff0c;为了提高开发效率大多会使用ORM架构&#xff0c;个别之处 才会手写SQL&#xff0c;我们使用C#.NET Core5.0开发&#xff0c;所以优先选择了微软的EF。 但是EF原生没有批量操作功能&#xff0c;需要自己扩展或使用第三方的扩展&am…...

【LeetCode】剑指 Offer 39. 数组中出现次数超过一半的数字 p205 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/ 1. 题目介绍&#xff08;39. 数组中出现次数超过一半的数字&#xff09; 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。 你可…...

es-head插件插入查询以及条件查询(五)

es-head插件插入查询以及条件查询 1.es-head插件页面介绍 页面详细介绍 2.es-head查询语句 2.1.查询索引中的全部数据 curl命令交互&#xff0c;采用GET请求 语法格式&#xff1a; curl -XGET es地址:9200/索引名/_search?pretty [rootelaticsearch ~]# curl -XGET 192…...

数据挖掘(作业汇总)

目录 环境配置 实验1 数据 作业2 环境配置 实验开始前先配置环境 以实验室2023安装的版本为例&#xff1a; 1、安装anaconda&#xff1a;&#xff08;anaconda自带Python,安装了anaconda就不用再安装Python了&#xff09; 下载并安装 Anaconda3-2022.10-Windows-x86_64.ex…...

基于微信小程序的图书馆选座系统源码

开发环境及工具&#xff1a; 大等于jdk1.8&#xff0c;大于mysql5.5&#xff0c;idea&#xff08;eclipse&#xff09;&#xff0c;微信开发者工具 技术说明&#xff1a; springboot mybatis 小程序 代码注释齐全&#xff0c;没有多余代码&#xff0c;适合学习&#xff08;…...

特斯拉4D成像毫米波雷达与木牛科技早期开源的产品几乎一模一样?

近日&#xff0c;在中欧智能网联汽车协会秘书长林示的组织下&#xff0c;中益基金投资总监王子文考察了全球毫米波雷达领跑者—木牛科技。 考察过程中&#xff0c;木牛科技COO王卫向两位详细介绍了木牛科技具备怎样的全球毫米波雷达领跑者的科技硬实力&#xff0c;以及木牛科技…...

[golang gin框架] 10.Gin 商城项目介绍

一.商城项目介绍 1.详细功能介绍图 2.数据库 ER 图 需要用到的数据表举例 二.MVC架构搭建以及执行流程分析 1.关于 MVC 模式的简单介绍 Gin 不是一个 MVC 的框架&#xff0c;所有的代码都可以写在 main.go 中。当我们的项目比较大的时候&#xff0c; 所有代码写在一个文件里面…...

python@调用系统命令行@os.system@subprocess@标准输入输出@sys.stdin@sys.stdout@input@print

文章目录python调用系统命令行os.system标准输入输出sys.stdinsys.stdoutinputprint概要os.systemdemoswindows命令解释器ComSpecsubprocessrecommended&#x1f388;基本用法demos标准输入输出sys.stdininput()sys.stdin.inputinput()交互模式小结sys.stdoutsys.stdout.wirte(…...

15-哈希表

哈希表&#xff08;Hash table&#xff09;&#xff0c;也称散列表&#xff0c;是一个能够将数值映射而成地址从而进行直接访问的数据结构&#xff0c;通过哈希表我们可以快速、迅捷地访问数据。 哈希表原理 假设我们拥有一个数x&#xff08;也称关键值&#xff0c;key&#…...

【超详细文件操作(三)】C语言

作者&#xff1a;日出等日落 专栏&#xff1a;C语言 只有流过血的手指&#xff0c;才能弹出世间的绝唱。 ——泰戈尔 目录 1.文件的随机读写 1.1 fseek函数 1.1.1 下面使用fseek函数 1.2 ftell函数 1.3 rewind函数 …...

【数据分析之道-基础知识(四)】字典

文章目录专栏导读1、字典简介2、字典创建3、字典访问4、字典修改5、字典添加6、字典删除7、字典内置函数专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN Python领域新星创作者&#xff0c;专注于分享python领域知识。 ✍ 本文录入于《数据分析之道》&#xff0c;本专栏…...

【计组】RAM的深入理解

一、存储机理 RAM的实现逻辑有种&#xff0c;分别是触发器和电容。 SRAM&#xff08;Static&#xff09;DRAM&#xff08;Dynamic&#xff09;存储方式触发器电容破坏性读出否&#xff08;触发器具有稳态&#xff0c;能够锁住0或1两种状态&#xff09;是&#xff08;电容需要…...

51单片机学习笔记_13 ADC

ADC 使得调节开发板上的电位器时&#xff0c;数码管上能够显示 AD 模块 采集电位器的电压值且随之变化。 开发板上有三个应用&#xff1a;光敏电阻&#xff0c;热敏电阻&#xff0c;电位器。 一般 AD 转换有多个输入&#xff0c;提高使用效率。 ADC 通过地址锁存与译码判断采…...

JVM 常量池

Class文件常量池 每个Class文件都会有一个单独的常量池,我们称为Class文件常量池,我们可以用javap命令反汇编Class文件,可以查看java编译器为我们生成的字节码。 CLass文件常量池存下内容&#xff1a; 字面量&#xff1a; 文本字符串(代码中用双引号包裹的字符串部分的值)被…...

Leetcode.1024 视频拼接

题目链接 Leetcode.1024 视频拼接 Rating &#xff1a; 1746 题目描述 你将会获得一系列视频片段&#xff0c;这些片段来自于一项持续时长为 time秒的体育赛事。这些片段可能有所重叠&#xff0c;也可能长度不一。 使用数组 clips描述所有的视频片段&#xff0c;其中 clips[i…...

彩色滤镜阵列CFA与Bayer滤镜

彩色滤镜阵列&#xff08;CFA&#xff09; 在彩色光电摄影中&#xff0c;可以通过分光&#xff0c;使用三个传感器分别捕获红、绿、蓝三个通道的颜色分量。但为了降低成本&#xff0c;绝大部分成像系统中采用单芯片 CMOS、CCD 传感器结合彩色滤镜阵列(Color Fiter Array&#…...

Unity和GAN实现AI绘画五等分的新娘、国家队02(附源码)

UnityGAN实现AI绘画五等分的新娘、国家队02附源码写在前面源码演示视频部分界面展示使用教程敬请期待其他写在后面写在前面 博主喜欢二次元&#xff0c;想着在读研期间做点对自己有意义的事&#xff0c;因此选择了动漫人物生成方向(呜呜呜&#xff0c;太感谢导师理解和支持了)…...

SpringBoot实现自己的日志服务

日志服务是作为软件开发架构的必备服务之一&#xff0c;一直都是我们所关注&#xff0c;所考虑的服务关键点&#xff0c;一个优秀的日志服务可以为项目的维护提供有力的支持&#xff0c;提高了系统的可靠性。 前言 如何设计一个优秀而又可靠的日志服务&#xff0c;是一直以来都…...

基于ssm流浪动物救助及领养管理系统(文档)024

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…...

maven安装及配置(IDEA版)简洁

1.下载Maven&#xff1a;您可以从Maven官方网站&#xff08;https://maven.apache.org/download.cgi&#xff09;下载适合您操作系统的Maven版本&#xff0c;并解压缩到您想要安装的位置。 2.配置环境变量&#xff1a;将Maven的bin目录添加到PATH环境变量中&#xff0c;这样…...

最全Linux应用开发解析(持续更新)

一、文件IO 1.1 文件描述符 在 Linux 操作系统中的一切都被抽象成了文件&#xff0c;那么一个打开的文件是如何与应用程序进行对应呢&#xff1f; 解决方案是使用文件描述符&#xff08;file descriptor&#xff0c;简称fd&#xff09;&#xff0c;当在进程中打开一个现有文…...

SpringBoot学习笔记下

文章目录1 接口架构风格 —RESTful1.1 REST1.2 在页面中或者ajax中&#xff0c;支持put&#xff0c;delete请求2 Spring Boot 集成 Redis2.1 redis起步依赖2.2 对比 StringRedisTemplate 和 RedisTemplate3 SpringBoot集成Dubbo3.1 看 SpringBoot继承Dubbo的文档3.2 公共项目7.…...

小米12/12S/13Pro手机MIUI14系统小黄鸟(HttpCanary)CA证书无法注入问题

很多用户获取ROOT是为了抓包&#xff0c;这里一般常常依赖一款名叫HttpCanary的软件&#xff0c;因软件 图标是一只小鸟&#xff0c;我们经常叫他小黄鸟。从日常使用上来看&#xff0c;黄鸟确实有抓包获取数据等 功能&#xff0c;也在多个手机上实践成功&#xff0c;网上相关教…...

SpringCloud学习笔记(四)Docker

一、Docker如何解决依赖的兼容问题 将应用的libs&#xff08;函数库&#xff09;、Deps&#xff08;依赖&#xff09;、配置与应用一起打包&#xff0c;形成可移植镜像Docker应用运行在容器中&#xff0c;使用沙箱机制&#xff0c;相互隔离 二、Dokcer如何解决开发、测试、生…...

SAP 批量修改 工艺路线 和 BOM

1、在运维的过程中经常会遇到用户需要批量更改组件&#xff0c;或者是批量更改数量&#xff0c;还是组件里面的一些标识&#xff0c;当处理这些批量数据处理的业务时&#xff0c;BOM的批量更改一个想到的就是CS20&#xff0c;但是CS20当BOM需要替换的时候就不是很适用。新增的组…...

基于OpenTelemetry实现可观测性-Part 4 Collector

译注&#xff1a;这是一个系列&#xff0c;共分成6部分&#xff0c;这是第4部分。翻译自&#xff1a;https://trstringer.com/otel-part4-collector/在上一篇博文中&#xff0c;我们讨论了如何使用 SDK 和追踪器提供者从进程获取遥测数据。存在很多不同类型的导出器&#xff0c…...

数学建模--非线性规划模型+MATLAB代码保姆式解析

目录 1.简单介绍 2.求解方法 3.适用赛题 4.典型例题及相关分析 &#xff08;1&#xff09;问题引入 &#xff08;2&#xff09;决策变量&约束条件 &#xff08;3&#xff09;确定目标函数 &#xff08;4&#xff09;建立数学模型 5.MATLAB代码祝逐字句讲解 1.简单…...

【C++】STL-vector的使用

目录 1、什么是vector&#xff1f; 2、vector的使用 2.1 vector的定义 ​编辑 2.2 遍历修改数据 2.3 迭代器 2.4 vector空间增长问题 2.5 vector的增删查改 3、迭代器失效 3.1 会引起其底层空间改变的操作&#xff0c;都有可能是迭代器失效 3.2 指定位置元素的删除操…...

递归的一点点想法

102. 二叉树的层序遍历 107.二叉树的层序遍历Ⅱ ## 递归的函数的处理时机决定了事情发生的先后顺序&#xff0c;如果需要逆序输出&#xff0c;可以使用递归&#xff0c;就好像是延迟写入&#xff0c;不过可以使用一个栈来代替&#xff0c;既然需要倒序就可以使用栈 102. /**…...

【Python-Spark(大规模数据)】

Python-Spark&#xff08;大规模数据&#xff09; ■ Spark■ PySparl编程模型■ 基础准备■ 数据输入■ RDD的map成员方法的使用■ RDD的flatMap成员方法的使用■ RDD的reduceByKey成员方法的使用■ 单词计数统计■ RDD的filter成员方法的使用■ RDD的distinct成员方法的使用■…...

IP地址 0.0.0.0 和 127.0.0.1之间的区别

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…...

【WEEK9】学习目标及总结【Spring Boot】【中文版】

学习目标&#xff1a; 学习SpringBoot 学习内容&#xff1a; 参考视频教程【狂神说Java】SpringBoot最新教程IDEA版通俗易懂YAML配置注入JSR303数据校验多环境切换自动配置原理Web开发探究的思考 学习时间及产出&#xff1a; 第九周MON~FRI 2024.4.22【WEEK9】 【DAY1】YAML…...