Varnish

Varnish官网地址: http://varnish-cache.org
Varnish 简介:

  • Varnish Cache是​​一款高性能且开源的Web应用程序加速器,也称为缓存HTTP反向代理。您可以将其安装在任何使用HTTP的服务器之前,并将其配置为缓存内容。
  • Varnish设计之初就针对现代全新的软件体系机构,和最新硬件体系紧密配合,与传统的 squid 相比,varnish 具有性能更高、速度更快、管理更加方便等诸多优点

Varnish 版本以及应用场景:
Varnish当前最新的主干版本是 5.0 ,最新稳定版是4.0。就功能讲,企业中更多的应用场景是Web缓存功能,架构中通常扮演的角色如下:
在这里插入图片描述
Varnish缓存策略的实现是通过VCL(Varnish Configuration Language)实现,VCL的语法简单,继承了C语言的很多特性,使得VCL样式看起来很像C和PELR语言,VCL配置文件也是通过VCL编译为C代码后继而执行,高效与生俱来。

varnish基础理论简介

varnish的程序结构

  • varnish主要运行两个进程:Management进程和Child进程(也叫Cache进程)
  • Management进程主要实现应用新的配置、编译VCL、监控varnish、初始化varnish以及提供一个命令行接口等。Management进程会每隔几秒钟探测一下Child进程以判断其是否正常运行,如果在指定的时长内未得到Child进程的回应,Management将会重启此Child进程
  • Child进程包含多种类型的线程,常见的如:
    • Acceptor线程:接收新的连接请求并响应;
    • Worker线程:child进程会为每个会话启动一个worker线程,此worker线程真正来管理缓存,构建响应报文,因此,在高并发的场景中可能会出现数百个worker线程甚至更多;
    • Expiry线程:从缓存中清理过期内容;

Varnish架构:
在这里插入图片描述
varnish日志

  • varnish通过可以基于文件系统接口进行访问的共享内存区域来记录日志 ,为了与系统的其它部分进行交互,Child进程使用了可以通过文件系统接口进行访问的共享内存日志(shared memory log),因此,如果某线程需要记录信息,其仅需要持有一个锁,而后向共享内存中的某内存区域写入数据,再释放持有的锁即可。而为了减少竞争,每个worker线程都使用了日志数据缓存。
  • 共享内存日志大小一般为90M,其分为两部分,前一部分为计数器,后半部分为客户端请求的数据 arnish提供了多个不同的工具如varnishlog、varnishncsa或varnishstat等来分析共享内存日志中的信息并能够以指定的方式进行显示。
  • 当日志区域超过90M后,默认情况下前面的日志将会被后面的日志覆盖,如果希望保存超出90M空间限制的日志,可以开启varnishncsa服务

varnish的缓存存储机制(也就是缓存存储在哪)

  • file:自管理的文件系统,使用特定的一个文件存储全部的缓存数据,并通过操作系统的mmap()系统调用将整个缓存文件映射至内存区域(如果内存大小条件允许);varnish重启时,所有缓存对象都将被清除
  • malloc:使用malloc()库调用在varnish启动时向操作系统申请指定大小的内存空间以存储缓存对象;varnish重启时,所有缓存对象都将被清除
  • persistent:与file的功能相同,但可以持久存储数据(即重启varnish数据时不会被清除);仍处于测试期;

vcl简介

VCL是什么

  • VCL,Varnish Configuration Language 是varnish配置缓存策略的工具,它是一种基于“域”(domain specific,可想象与iptables的几个链,也就是类似钩子函数)的简单编程语言
  • ==使用VCL编写的缓存策略通常保存至.vcl文件中,其需要编译成二进制的格式后才能由varnish调用。==事实上,整个缓存策略就是由几个特定的子例程如vcl_recv、vcl_hash等组成,它们分别在不同的位置(或时间)执行,如果没有事先为某个位置自定义子例程,varnish将会执行默认的定义。
  • ==VCL策略在启用前,会由management进程将其转换为C代码,而后再由gcc编译器将C代码编译成二进制程序。编译完成后,management负责将其连接至varnish实例,即child进程。==正是由于编译工作在child进程之外完成,它避免了装载错误格式VCL的风险。因此,varnish修改配置的开销非常小,其可以同时保有几份尚在引用的旧版本配置,也能够让新的配置即刻生效。

vcl的状态引擎
在这里插入图片描述

  • vcl_recv:接受用户请求进varnish的入口的引擎,接受到结果之后,利用return(lookup),将请求转交给vcl_hash引擎进行处理

  • vcl_hash:接受到用户请求后,对用户请求的URL进行hash计算,根据请求的首部信息,以及hash结果进行下一步处理的引擎

  • vcl_hit:经过vcl_hash引擎处理后,发现用户请求的资源本地有缓存,则vcl_hash引擎通过return(hit)将请求交给vcl_hit引擎进行处理,vcl_hit引擎处理后将请求交给vcl_deliver引擎,vcl_deliver引擎构建响应报文,响应给用户

  • vcl_miss:经过vcl_hash引擎处理后,发现用户请求的资源本地没有缓存,则vcl_hash引擎通过return(miss)将请求交给vcl_miss引擎进行处理

  • vcl_purge:经过vcl_hash引擎处理后,发现请求是对缓存的内容进行修剪时,则通过return(purge)交给vcl_purge引擎进行处理,vcl_purge引擎处理后,利用vcl_synth引擎将处理的结果告知给用户

  • vcl_pipe:经过vcl_hash引擎处理后,发现用户请求的报文varnish无法理解,则通过return(pipe),将请求交给vcl_pipe引擎,pipe引擎直接将请求交给后端真实服务器

  • vcl_pass:当请求经过vcl_hash处理后,发现请求报文不让从缓存中进行响应或其他原因没办法查询缓存,则由return(pass)或return(hit-for-pass)交由vcl_pass引擎进行处理

  • vcl_backend_fetch:当发现缓存未命中或由vcl_pass传递过来的某些不能查询缓存的请求,交由vcl_backend_fetch引擎处理,vcl_backend_fetch引擎会向后端真实web服务器发送请求报文,请求对应的资源

  • vcl_backend_response:当后端发送响应报文到varnish后,会由vcl_backend_resonse引擎进行处理,如:判断响应的内容是否可缓存,如果能缓存,则缓存下来后,交给vcl_deliver引擎,如果不能缓存,则直接交给vcl_deliver引擎,vcl_deliver引擎构建响应报文给客户端

  • varnish4.0版本的两个特殊的引擎

    • vcl_init:在处理任何请求之前要执行的vcl的代码,主要用于初始化VMODS,可用在后端主机有多台时,借助此引擎完成多台主机的负载均衡效果
    • vcl_fini:所有的请求都已经结束,在vcl配置被丢弃时调用;主要用于清理VMODS

    因此,常见的状态引擎之间的处理流程为:

     如果缓存命中:用户请求–>vcl_recv–>vcl_hash–>vcl_hit–>vcl_deliver–>响应给用户如果缓存未命中:用户请求–>vcl_recv–>vcl_hash–>vcl_miss–>vcl_backend_fetch–>后端服务器接受请求发送响应报文–>vcl_backend_response–>vcl_deliver或:用户请求–>vcl_recv–>vcl_hash–>vcl_miss–>vcl_pass–>vcl_backend_fetch–>后端服务器接受请求发送响应报文–>vcl_backend_response–>vcl_deliver–>响应给用户如果不能从缓存中进行响应用户请求–>vcl_recv–>vcl_hash–>vcl_pass–>vcl_backend_fetch–>后端服务器接受请求发送响应报文–>vcl_backend_response–>vcl_deliver–>响应给用户如果进行缓存修剪用户请求–>vcl_recv–>vcl_hash–>vcl_purge–>vcl_synth–>返回给用户如果请求报文无法理解用户请求–>vcl_recv–>vcl_hash–>vcl_pipe–>交给后端服务器
    

常见缓存工具Varnish与Squid的优缺点分析 :

软件 储存模式 性能 配置复杂度 purge效率 共享存储
squid 硬盘 较高 简单 可以并联,但是配置复杂
varnish 硬盘/内存 比较简单 不能

Varnish核心工具集介绍 :

  • varnishd varnishd
    varnish的核心进程,以Daemon方式运行,接受HTTP请求,转发前端请求至后端backend,缓存返回的缓存对象并且回应请求的客户端。
  • varnishtest
    验证Varnish的安装 ;功能强大,可自定义client请求模型或从后端真实用品拉取内容;支持与Varnish交互性
  • varnishadm ,Varnish实例命令行管理工具
    start/stop Varnishd;更新配置文件参数;重载Varnish Configuration Language(VCL);查看最新的参数文档
  • varnishlog ,Varnish日志展示工具

varnish的安装配置

安装:

yum install -y varnish-* jemalloc-*

安装生成的程序环境:

监听的端口为:

  • 服务监听的端口默认为6081
  • 管理接口默认监听的端口为6082

配置varnish服务进程的工作特性,官方提供的rpm包安装的程序,其对应的程序自身配置文件在/etc/sysconfig/varnishd,例如监听的地址和端口,缓存机制;

  • /etc/varnish/varnish.params

配置各Child/Cache线程的工作属性:

  • /etc/varnish/default.vcl

主程序:

  • /usr/sbin/varnishd

命令行管理工具程序:

  • /usr/bin/varnishadm

Shared Memory Log交互工具:

  • /usr/bin/varnishhist
  • /usr/bin/varnishlog
  • /usr/bin/varnishncsa
  • /usr/bin/varnishstat
  • /usr/bin/varnishtop

测试工具程序:

  • /usr/bin/varnishtest

VCL配置文件重载程序:

  • /usr/sbin/varnish_reload_vcl

Systemd Unit File:

  • /usr/lib/systemd/system/varnish.service

varnish服务

  • /usr/lib/systemd/system/varnishlog.service
  • /usr/lib/systemd/system/varnishncsa.service

配置启动环境

[root@ser1 varnish]# vim /etc/varnish/varnish.params

# 设置为1表示当使用systemctl reload varnish时,会自动重新装载vcl的配置文件,也就是能够让新的配置生效
RELOAD_VCL=1      # 主要的配置文件,加载的缓存策略的配置文件路径
VARNISH_VCL_CONF=/etc/varnish/default.vcl# varnish服务监听的地址,默认是监听在本机所有可用的地址上
VARNISH_LISTEN_PORT=80# varnish管理接口监听的地址,监听在127.0.0.1表示只允许从本机登录进行管理
VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1
# varnish管理接口监听的端口
VARNISH_ADMIN_LISTEN_PORT=6082#  varnish管理时的秘钥文件
VARNISH_SECRET_FILE=/etc/varnish/secret# arnish缓存时,使用哪种存储方式对缓存内容进行存储,本处是指使用file文件方式,存在/var/lib/varnish/varnish_storage.bin文件中,总共使用1G大小的空间
# 指定 256M 内存空间大小来进行缓存
VARNISH_STORAGE="malloc,256M"# varnishd工作进程的用户和组 ,varnishd运行时调用时读取的变量
VARNISH_USER=varnish
VARNISH_GROUP=varnish   

启动服务:

  • systemctl start varnish

配置优化:

[root@ser1 system]# vim /etc/security/limits.conf
...
# End of file
#
nginx             -     nofile      65535
varnish           -     nofile      131072
varnish           -     memlock     90000

Varnish 实例应用

Varnish 实现 负载均衡

  • cd /etc/varnish/
  • vim default.vcl
vcl 4.0;
import directors;              # 引用函数 directors
# 后端服务器是提供内容Varnish将通过缓存加速的服务器。
# Varnish可以定义多个后端,甚至可以将多个后端连接到后端集群中以实现负载平衡,让Varnish根据不同算法选择一个后端
backend web1 {                 # 在Varnish中设置了一个后端服务器 web1.host = "172.25.1.250";    # 该后端从端口80上的主机172.25.1.250 获取内容.port = "80";
}backend web2 {                 # 在Varnish中设置了一个后端服务器 web2.host = "172.25.1.2";.port = "80";
}
sub vcl_init {                 # directors 模块含四种对象 (round_robin 轮循 /fallback 回退/random 随机/hash 哈西)即 四种负载均衡模式new web_cluster = directors.round_robin();  web_cluster.add_backend(web1);web_cluster.add_backend(web2);
}sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {set req.http.host="westos.org";set req.backend_hint = web_cluster.backend();return(pass);}elseif (req.http.host ~ "^bbs.westos.org") {set req.backend_hint = web_cluster.backend();return(pass);}else {return(synth(404,"Not in cache"));}
}

systemctl restart varnish

Varnish 实现 健康检查

probe backend_healthcheck {       # 设置健康检查     .url = "/index.html";.window = 3;.threshold =2;.interval = 3s;
}backend web1 {.host = "172.25.1.250";.port = "80";.probe = backend_healthcheck;
}backend web2 {.host = "172.25.1.2";.port = "80";.probe = backend_healthcheck;
}

测试:

# [root@ser2 sbin]# nginx -s stop             关闭 nginx 服务,只获取到 ser1 的 index.html 数据
[root@foundation1 ~]# curl bbs.westos.org          
www.westos.org
westos.org
[root@foundation1 ~]# curl www.westos.org
www.westos.org
westos.org
# [root@ser2 sbin]# nginx -s start           ser2 启用 nginx 服务, 后端两台服务器 ,轮询获取到 ser1 ,ser2 的 index.html 数据
[root@foundation1 ~]# curl www.westos.org
bbs.westos.org
[root@foundation1 ~]# curl www.westos.org
www.westos.org
westos.org
[root@foundation1 ~]# curl www.westos.org
bbs.westos.org

Varnish 配置实现后端服务器获取客户端 Client 的 IP

在这里插入代码片

ZABBIX

下载
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
cd /etc/yum.repos.d/
vim zabbix.repo
yum repolist

yum install zabbix-agent zabbix-server-mysql zabbix-web zabbix-wed-mysql.noarch php-bcmath-5.4.16-46.el7.x86_64.rpm php-mbstring-5.4.16-46.el7.x86_64.rpm
rpm -qa|gerp zabbix

安装zabbix server 并启用 mysql 数据库

#yum install -y mariadb-server

# systemctl start mariadb
# mysql -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'westos';
Query OK, 0 rows affected (0.00 sec)

导入数据

[root@ser5 ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.23/
[root@ser5 zabbix-server-mysql-4.0.23]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@ser5 zabbix-server-mysql-4.0.23]# zcat create.sql.gz | mysql -uzabbix -pwestos zabbix

配置

[root@ser5 zabbix]# cd /etc/httpd/conf.d/
[root@ser5 conf.d]# ls
autoindex.conf  php.conf  README  userdir.conf  welcome.conf  zabbix.conf
[root@ser5 conf.d]# vim zabbix.conf 
[root@ser5 conf.d]# systemctl restart httpd
[root@ser5 ~]# vim /etc/php.ini               # 设置时区
[root@ser5 ~]# systemctl restart httpd
[root@ser5 ~]# grep timezone /etc/php.ini
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai                 # 设置时区[root@ser5 ~]# rpm -qa | grep zabbix
zabbix-agent-4.0.23-1.el7.x86_64
zabbix-web-mysql-4.0.23-1.el7.noarch
zabbix-web-4.0.23-1.el7.noarch
zabbix-server-mysql-4.0.23-1.el7.x86_64
zabbix-release-4.0-2.el7.noarch
[root@ser5 zabbix-server-mysql-4.0.23]# cd /etc/zabbix/
[root@ser5 zabbix]# ls
web  zabbix_agentd.conf  zabbix_agentd.d  zabbix_server.conf
[root@ser5 zabbix]# vim zabbix_server.conf 
[root@ser5 zabbix]# grep -v ^# zabbix_server.conf | uniq
DBName=zabbixDBUser=zabbixDBPassword=westos
...
[root@ser5 zabbix]# systemctl start zabbix-server
[root@ser5 zabbix]# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
[root@ser5 zabbix]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.

测试登陆使用:
http://172.25.1.5/zabbix/setup.php

[root@ser5 network-scripts]# cd /etc/yum.repos.d/
[root@ser5 yum.repos.d]# scp zabbix.repo  ser6:/etc/yum.repo.d/[root@ser6 yum.repos.d]# yum install -y zabbix-agent
[root@ser6 yum.repos.d]# cd /etc/zabbix/
[root@ser6 zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@ser6 zabbix]# vim zabbix_agentd.conf 
ServerActive=172.25.1.5                     # 服务端 通过 IP连接
Hostname=ser5                               # 服务端主机名
[root@ser6 zabbix]# systemctl enable --now zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 数学建模竞赛常考三大模型及十大算法【预测模型、优化模型、评价模型】

    学习网址:数学建模竞赛常考三大模型及十大算法目 录三大模型1、预测模型2、优化模型3、评价模型数学建模的十大常用算法三大模型1、预测模型预测模型:神经网络预测、灰色预测、拟合插值预测(线性回归)、时间序列预测、马尔科夫链预测、微分方程预测、Logistic 模型等等。…...

    2024/5/5 5:08:53
  2. 清除浮动的四种方法

    一、清除浮动的原理 清除浮动主要是为了解决父元素因为子元素的浮动引起的内部高度为0的问题。 清除浮动主要是将要清除浮动的元素转化成一个BFC块级格式化上下文,相当于一个盒子,以此来隔绝外部的影响。即BFC元素特性表现原则就是:内部子元素再怎么翻江倒海,翻云覆雨,都不…...

    2024/5/6 10:56:37
  3. 首份财报之后,达达的下半场在哪里?

    配图来自Canva 因为疫情的影响,依托于即时零售的到家服务逐渐成为消费者的首选,这让到家业务再度火热,也让整个即时零售行业吸引了外界众多的关注。 而顶着“即时零售第一股”光环的达达集团,在今年六月正式登陆纳斯达克上市,两个月后达达集团也公布了其上市以来的第一份财…...

    2024/5/6 12:45:50
  4. flashfxp链接不上,flashfxp链接不上怎么办

    flashfxp是一款功能强大的FXP/FTP软件,融合了一些其他优秀FTP软件的优点,如像CuteFTP一样可以比较文件夹,支持彩色文字显示;像BpFTP支持多文件夹选择文件,能够缓存文件夹。不过要说起ftp软件,那小编推荐你试试iis7。作为IIS7服务器管理工具,它可以对ftp站点进行批量管理,…...

    2024/5/6 8:53:18
  5. TensorFlow 04——ch02-convolutional做CIFAR-10 识别模型

    目录一、实验过程二、CIFAR-10说明三、正文数据下载数据测试开始训练模型查看训练情况四、全部代码 一、实验过程 1. 下载CIFAR-10 数据 python cifar10_download.py2. 测试TensorFlow 的数据读取机制 python test.py3. 将CIFAR-10 数据集保存为图片形式 python cifar10_extrac…...

    2024/5/6 9:35:21
  6. AWT

    主要概括为一个面板,两大窗口,三大监听器,四大事件,五大布局 一个面板(Panel) package AWT; /** 一个面板*/ import java.awt.Frame;public class Example01 { public static void main(String[] args) {Frame f=new Frame("我的窗口");f.setSize(400,300); f.se…...

    2024/4/20 2:29:09
  7. 【秒杀系统架构】分析与实战!

    1 秒杀业务分析正常电子商务流程查询商品;创建订单;扣减库存;更新订单;付款;卖家发货;秒杀业务的特性低廉价格;大幅推广;瞬时售空;一般是定时上架;时间短、瞬时并发量高;2 秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请…...

    2024/5/6 12:31:27
  8. [剑指Offer] 02. 替换空格

    1、题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy." 输出:"We%20are%20happy."限制:0 <= s 的长度 <= 100002、C++ class Solution { public:string replaceSpace(string s) {// 1. 不…...

    2024/5/6 4:44:09
  9. 钽电容一定要严格按照2倍以上来选择(华为的标准按3倍来算)

    电容的耐压值,在弱电领域主要有4V、6.3V、10V、16V、20V、25V、35V、50V这些档位。上百伏的电容主要用在强电上。耐压值的选择非常非常重要,选错了会有生命危险。如果把25V的电容,用在50V的电源上,会怎么样?陶瓷电容有机会扛得住,也可能被烧掉短路了。电解电容一般扛不住…...

    2024/4/11 16:48:59
  10. [Vue warn]:Cannot read property ‘avatar‘ of undefined

    起因是我在templa中写的赋给img标签的参数这段赋给img标签的参数,数据结构是这样的我在data中获取这段的时候,是直接获取的整段数据然后就产生了错误解决办法就是data中的数据结构,将这段获取参数的数据结构拆开...

    2024/4/11 16:48:58
  11. 2020年基础面试题

    2020年基础面试题 1. 浏览器 1.1. 常用哪几种浏览器测试?主流浏览器的内核有哪些? Q1:IE、Safari、Chrome、Mozilla Firefox、Opera Q2: 1)Trident内核 代表产品为Internet Explorer,又称其为IE内核。Trident(又称为MSHTML),是微软开发的一种排版引擎 。 2)Gecko内核 …...

    2024/4/11 16:48:57
  12. python3学习-初识爬虫

    python3学习-初识爬虫 学习了python100天内的知识,还是收获不小的,今天还是记录一下学习python的一些小知识 首先需要了解什么是网络爬虫 网络爬虫是一种互联网机器人,它通过爬取互联网上网站的内容来工作。它是用计算机语言编写的程序或脚本,用于自动从Internet上获取任何…...

    2024/5/6 13:06:46
  13. linux 用户相关操作

    一:修改root(当前用户密码):#passwdChanging password for user root. New password: //在这里输入新密码 Retype new password: //再次输入新密码passwd: all authentication tokens updated successfully.二、添加用户,首先用adduser命令添加一个普通用户,命令如下:#…...

    2024/5/6 11:11:13
  14. (mac版本)IntelliJ IDEA 常用快捷键

    温馨提示:在 IntelliJ IDEA 中有两个 Mac 版本的快捷键,分别为 Mac OS X 和 Mac OS X 10.5+, 其中 Mac OS X 10.5+ 为 IntelliJ IDEA 默认的快捷键版本。此外,建议将 Mac 系统中与 IntelliJ IDEA 冲突的快捷键取消或更改,不建议改 IntelliJ IDEA 的默认快捷键。Mac 键盘符…...

    2024/4/23 2:41:40
  15. RE:Cold

    你若是终点我必通关...

    2024/4/11 16:48:53
  16. python-yacs库的用法

    原文:https://blog.csdn.net/wxtcstt/article/details/106851999 YACS 是一个轻量级的用来管理系统配置参数的库,使用*.YAML格式的文件进行参数的存储 使用方法: 1. 创建一个yaml文件如config.yaml GPUS: (0,1,2,3) OUTPUT_DIR: output CUDNN:ENABLED: trueMODEL:NAME: yolo…...

    2024/5/6 6:02:21
  17. 本机和docker容器之间的传输

    docker容器向本机传输文件: docker cp 容器id或者容器name:<docker容器内的路径> <本地保存文件的路径>本机向docker传输文件: docker cp 本地文件的路径 container_id:<docker容器内的路径>...

    2024/5/6 6:03:08
  18. Windows批量重命名子目录文件名

    批量重命名目前已知有三种方式:通过三方工具,比如TotalCommand的批处理功能,但是这只是针对该目录下的,如果要实现递归就要安装插件实现; 通过写脚本,比如Shell脚本,Perl脚本,Windows脚本; 编程实现,比如C,Java;对比了一下,我发现最高效边界的方式就是写脚本,由于…...

    2024/4/28 13:15:25
  19. vingCard安装和导入库

    连蒙在猜的安装空库,什么都没有导入库查看里面的内容里面也有内容了...

    2024/4/25 6:51:55
  20. At the beginning of the month, the doctor introduced in the article “iOS

    At the beginning of the month, the doctor introduced in the article "iOS users can’t experience Microsoft and Google’s cloud game services, Apple discloses the reasons for rejection", introduced Google’s cloud game service Stadia and Microsoft…...

    2024/4/19 3:45:17

最新文章

  1. 24.5.5(离散化+树状数组,线段树)

    星期一&#xff1a; dp题单 背包 第四题 混可乐 cf传送门 思路&#xff1a;条件可演化为每种可乐值为 ai-n&#xff0c;选最少的可乐使总和为0&#xff08;具体可看官方题解 到这会发现背包并不适合了&#xff0c;其实这是道bfs伪装的背包…...

    2024/5/6 13:35:09
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/6 9:38:23
  3. linuxday05

    1、makedile原理&#xff08;增量编译生成代码&#xff09; # &#xff08;注释符&#xff09; 目标------依赖 目标不存在//目标比依赖旧才会执行命令&#xff1b; makefile的实现 1、命名要求&#xff08;Makefile/makefile&#xff09; 2、规则的集合 目标文件&#…...

    2024/5/5 8:52:20
  4. Chatgpt掘金之旅—有爱AI商业实战篇(一)

    演示站点&#xff1a; https://ai.uaai.cn 对话模块 官方论坛&#xff1a; www.jingyuai.com 京娱AI 一、前言&#xff1a; 成为一名商业作者是一个蕴含着无限可能的职业选择。在当下数字化的时代&#xff0c;作家们有着众多的平台可以展示和推广自己的作品。无论您是对写书、…...

    2024/5/6 6:23:58
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/5 18:19:03
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/5 12:22:20
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/5 19:59:54
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/6 7:24:07
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/5 15:25:47
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/6 6:01:13
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/6 7:24:06
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/6 1:08:53
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/5 18:50:00
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/6 0:27:44
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/6 7:24:04
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/6 7:24:04
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/5 13:14:22
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/6 7:24:03
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/5 17:03:52
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/5 21:10:50
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/6 7:24:02
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/6 7:24:01
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/5 17:03:21
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/5 15:25:31
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57