Nginx的负载均衡
一、概述
Nginx负载均衡是一种通过将客户端请求分发到多个后端服务器的技术,旨在提高系统的吞吐量、可用性和容错性。
二、Nginx负载均衡工作原理
Nginx作为反向代理服务器,接收客户端的请求,并根据配置的负载均衡算法将请求转发到后端服务器。其工作流程如下:
-
客户端请求到达Nginx。
-
Nginx根据配置的负载均衡策略选择后端服务器。
-
Nginx将请求转发到选定的后端服务器。
-
后端服务器处理请求并返回响应。
-
Nginx将响应返回给客户端。
三、负载均衡可以实现的场景
3.1、四层负载均衡
所谓四层负载均衡指的是OSI七层模型中的传输层,那么传输层Nginx已经能够支持TCP/IP的控制,所以只需要对客户端的请求进行TCP/IP协议包的转发就可以实现负载均衡,它的好处就是性能非常快、只需要底层进行应用处理,而不需要一些复杂的逻辑。
3.2、七层负载均衡
七层负载均衡是在应用层,它可以完成很多方面的协议请求,比如我们所说的http的负载均衡,它可以实现http信息的改写、头信息的改写、安全应用规则控制、URL匹配规则控制,以及转发、rewrite等等的规则。Nginx是一个典型的七层负载均衡SLB。
3.3、四层负载均衡与七层负载均衡的区别
四层负载均衡数据包在底层就进行了分发,而七层负载均衡数据包要在第七层才进行分发,所以,七层负载均衡的效率没有四层负载均衡效率高。
七层负载就均衡更贴近于服务,http协议就是在七层,我们可以通过Nginx做会话保持,URL路径规则匹配、Head头改写等等,这些都是四层负载均衡无法实现的。
四层负载均衡可以解决七层负载均衡的端口限制问题。
四层负载均衡可以解决七层负载均衡高可用问题。
四、Nginx负载均衡调度算法
调度算法 | 概述 |
轮循 | 按时间顺序逐一分配到不同的后端服务器 |
Weight(加权轮循) | Weight的值越大,分配到的访问几率就越高 |
Ip_hash | 每个请求按访问的IP的hash值结果进行分配,来自同一个IP的客户端会访问固定的服务器 |
url_hash | 按照访问的URL的hash值结果进行分配,每个URL定向到同一个后端服务器 |
Least_conn | 最少链接数,哪个服务器链接数少就发给哪个 |
五、负载均衡后端状态
状态 | 概述 |
down | 当前的server不参与负载均衡 |
backup | 预留的备份服务器 |
Max_fails | 允许请求失败的次数 |
Fail_timeout | 经过max_fails失败后,服务暂停时间 |
Max_conns | 限制最大的连接接受数 |
5.1、down状态
5.1.1、实验虚拟机配置
服务器:web01 10.0.0.7 172.16.1.7 #安装Nginx、PHP、MuSQL
服务器:web02 10.0.0.8 172.16.1.8 #安装Nginx、PHP、MuSQL
负载均衡服务器: lb 10.0.0.6 172.16.1.6 #安装Nginx
5.1.2、在负载均衡服务器上配置服务文件
upstream webs {
server 172.16.1.7 down; #表示web01服务器不参与负载均衡服务
server 172.16.1.8;
}
server {
listen 80;
server_name www.lv.com;
location / {
proxy_pass http://webs;
include proxy_params;
}
}
5.2、backup状态
5.2.1实验虚拟机配置
服务器:web01 10.0.0.7 172.16.1.7 #安装Nginx、PHP、MuSQL
服务器:web02 10.0.0.8 172.16.1.8 #安装Nginx、PHP、MuSQL
负载均衡服务器: lb 10.0.0.6 172.16.1.6 #安装Nginx
5.2.2、 在负载均衡服务器上配置服务文件
upstream webs {
server 172.16.1.7 backup; #预留的备份服务器
server 172.16.1.8;
}
server {
listen 80;
server_name www.lv.com;
location / {
proxy_pass http://webs;
include proxy_params;
}
}
六、实验演示案例(PhpMyadmin)
6.1、实验虚拟机配置
服务器:web01 10.0.0.7 172.16.1.7 #安装Nginx、PHP、MuSQL
服务器:web02 10.0.0.8 172.16.1.8 #安装Nginx、PHP、MuSQL
数据库:mysql 10.0.0.51 172.16.1.51 #安装mariadb-server
负载均衡服务器: lb 10.0.0.6 172.16.1.6 #安装Nginx
6.2、服务器web01配置
6.2.1、安装Nginx服务
6.2.1.1、配置Nginx官方扩展仓库
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
6.2.1.2、安装Nginx服务
yum -y install nginx
6.2.1.3、创建启动用户www
groupadd -g 666 www
useradd -u666 -g 666 -M -s /sbin/nologin www
6.2.1.4、修改Nginx配置文件
vim /etc/nginx/nginx.conf
user www;
worker_processes auto;error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
6.2.1.5、编辑PhpMyadmin配置文件
vim /etc/nginx/conf.d/admin.conf
server {
listen 80;
server_name www.admin.com;
root /app/admin;
location / {
index index.html index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
6.2.1.6、检查配置文件语法正确性
nginx -t
6.2.1.7、启动Nginx并加入开机自启动
systemctl start nginx
systemctl enable nginx
6.2.1.8、创建PhpMyadmin代码目录
mkdir -p /app/admin
6.2.1.9、将PhpMyadmin代码拷贝到PhpMyadmin代码目录
lz /app/phpMyAdmin-5.2.1-all-languages.zip
6.2.1.10、解压PhpMyadmin代码
tar zxf phpMyAdmin-5.2.1-all-languages.zip
6.2.1.10、将PhpMyadmin目录下的代码移到/app/admin
mv /app/admin/phpMyAdmin-5.2.1-all-languages/* /app/admin/
6.2.2、安装PHP服务
6.2.2.1、安装PHP应用软件组
yum -y install php php-bcmath php-cli php-common php-devel php-embedded php-fpm php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo php-process php-xml php-json
6.2.2.2、修改PHP配置文件
vim /etc/php-fpm.d/www.conf
同步启动用户与Nginx保持一致 www用户
24:user = www
26:group = www
修改监听方式
38:listen = 127.0.0.1:9000
6.2.2.3、启动PHP服务并加入开机自启动
systemctl start php-fpm
syatemctl enable php-fpm
6.3、在mysql服务器上安装mariadb服务
6.3.1 、安装mariadb
yum -y install mariadb-server
6.3.2、开启数据库并加入开机自启动
systemctl start mariadb
systemctl enable mariadb
6.3.3、创建数据库登录秘密
mysqladmin password 'lyx123.com'
6.3.4、登录数据库
mysql -uroot -plyx123.com
6.3.5、创建数据库远程登录用户
grant all on *.* to lyx@'%' identified by 'lyx123.com';
6.3.6、创建admin数据库
create database admin;
6.3.7、检查数据库
show databases;
6.4、本地hosts解析
10.0.0.7 www.admin.com
6.5、浏览器访问
6.6、服务器web02配置
6.6.1、安装Nginx服务与PHP服务同web01服务器一样
6.6.2、创建代码目录文件
mkdir -p /app/admin
6.6.3、同步web01的admin代码到web02下 (当前在web02服务器/app/admin)
rsync -avz --delete root@10.0.0.7:/app/admin/* ./
6.7、本地hosts解析
10.0.0.8 www.admin.com
6.9、浏览器访问
6.10、在mysql服务器安装会话保持
6.10.1、安装redis服务
yum -y install redis
6.10.2、 配置redis的监听端口
vim /etc/redis/redis.conf
75:bind 127.0.0.1 172.16.1.51
6.10.3、启动redis服务并加入开机自启动
systemctl start redis
systemctl enable redis
6.10.4、查看登录
redis -cli
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> quit
6.11、将两台web服务写入到redis (两台服务器都做如下操作)
6.11.1、安装redis插件
yum -y install gcc glibc gcc-c++ pcre-devel openssl-devel patch
6.11.2、下载redis源码包到/root
wget http://pecl.php.net/get/redis-4.0.1.tgz
6.11.3、在/root目录下解压redis源码包
tar zxf redis-4.0.1.tgz
6.11.4、配置初始化
cd redis-4.0.1
phpize
./configure
6.11.5、编译安装
make && make install
6.11.6、开启redis插件功能
vim /etc/php.ini
1357:extension=redis.so #添加此内容
1222:session.save_handler = redis
1255:session.save_path = "tcp://172.16.1.51:6379"
6.11.7、修改 配置文件
vim /etc/php-fpm.d/www.conf
;php_value[session.save_handler] = files
;php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
;php_value[opcache.file_cache] = /var/lib/php/opcache
6.11.8、重启PHP服务
systemctl restart php-fpm
6.12、搭建负载均衡
6.12.1、 负载均衡服务器配置Nginx官方仓库
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
6.12.2、安装Nginx服务
yum -y install nginx
6.12.3、编辑负载均衡配置文件
vim /etc/nginx/conf.d/lb.conf
upstream lb {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 80;
server_ name www.admin.com;
location / {
proxy_pass http://lb;
proxy_set_header HOST $host;
proxy_buffers 256 4k;
proxy_max_temp_file_size 0k;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_next_upstream error timeout invalid_header http_502 http_500 http_503 http_504;
proxy_set_header X-Forwarded-For $proxy_add__x_forwarded_for;}
}
6.12.4、启动Nginx并加入开机自启动
systemctl start nginx
systemctl enable nginx
6.13、本地hosts解析
10.0.0.6 www.admin.com
6.14、浏览器访问测试
七、总结
通过合理配置负载均衡策略,Nginx能够有效提升系统性能、容错能力和扩展性,是现代互联网架构中不可或缺的一部分。
相关文章:
Nginx的负载均衡
一、概述 Nginx负载均衡是一种通过将客户端请求分发到多个后端服务器的技术,旨在提高系统的吞吐量、可用性和容错性。 二、Nginx负载均衡工作原理 Nginx作为反向代理服务器,接收客户端的请求,并根据配置的负载均衡算法将请求转发到后端服务…...
vue3组件el-table报错
传给table标签的data不是数组就会报错, 摁着商品管理代码找了半天也没发现哪里错了,而且关闭报错表格数据能正常显示, 。。。 最后发现我还有个订单管理页面,这里面的data初始化成ref( )了,把这个组件注释掉…...
天聚地合:引领API数据流通服务,助力数字经济发展
天聚地合:引领API数据流通服务,助力数字经济发展 爱企猫01月24日消息:天聚地合(苏州)科技股份有限公司,成立于2010年,总部位于苏州,是一家综合性API数据流通服务商。公司旗下品牌‘聚合数据’已开发超过790个API,服务百万企业级客…...
AIGC的企业级解决方案架构及成本效益分析
AIGC的企业级解决方案架构及成本效益分析 一,企业级解决方案架构 AIGC(人工智能生成内容)的企业级解决方案架构是一个多层次、多维度的复杂系统,旨在帮助企业实现智能化转型和业务创新。以下是总结的企业级AIGC解决方案架构的主要组成部分: 1. 技术架构 企业级AIGC解决方…...
企业知识管理平台的对比分析与优化策略探讨
内容概要 随着信息技术的飞速发展,企业对知识管理的重视程度日益提高。知识管理不仅有助于知识的积累和传承,更在于提升企业整体运营效率和创新能力。为此,众多企业纷纷引入知识管理平台,以便更好地管理和利用其内部知识资源。 …...
分布式数据库与集中式数据库
分布式数据库 分布式数据库是在集中式数据库系统的基础上发展起来的,由多个相互连接并分布在不同物理位置的数据库组成。因此,可以独立于其他物理位置来管理存储在各个物理位置上的数据。因此,在不同物理位置的数据库之间的通信是由计算机网…...
STM32 OLED屏配置
1.OLED简介 OLED(Organic Light Emitting Diode):有机发光二极管 OLED显示屏:性能优异的新型显示屏,具有功耗低、相应速度快、宽视角、轻薄柔韧等特点 0.96寸OLED模块:小巧玲珑、占用接口少、简单易用&a…...
Spring Boot - 数据库集成04 - 集成Redis
Spring boot集成Redis 文章目录 Spring boot集成Redis一:redis基本集成1:RedisTemplate Jedis1.1:RedisTemplate1.2:实现案例1.2.1:依赖引入和属性配置1.2.2:redisConfig配置1.2.3:基础使用 2&…...
Day47:遍历元组
元组是 Python 中的一种有序集合类型,类似于列表,但与列表不同的是,元组是不可变的。这使得元组的元素一旦创建就不能更改。尽管元组是不可变的,我们仍然可以使用循环结构来遍历元组中的元素。 今天我们将学习如何遍历元组中的元…...
【PoCL】项目源码编译
PoCL 项目链接 本博文主要介绍了源码编译llvm和PoCL的过程 目录 0. 个人简介 && 授权须知1. 项目介绍2. 项目依赖3. 源码编译3.1 编译 LLVM 工程3.2 编译PoCL 工程 0. 个人简介 && 授权须知 📋 个人简介 💖 作者简介:大家好&…...
【数据分享】1929-2024年全球站点的逐月平均能见度(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标!说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站点…...
免费GPU算力,不花钱部署DeepSeek-R1
在人工智能和大模型技术飞速发展的今天,越来越多的开发者和研究者希望能够亲自体验和微调大模型,以便更好地理解和应用这些先进的技术。然而,高昂的GPU算力成本往往成为了阻碍大家探索的瓶颈。幸运的是,腾讯云Cloud Studio提供了免…...
C语言的灵魂——指针(1)
指针是C语言的灵魂,有了指针C语言才能完成一些复杂的程序;没了指针就相当于C语言最精髓的部分被去掉了,可见指针是多么重要。废话不多讲我们直接开始。 指针 一,内存和地址二,编址三,指针变量和地址1&#…...
2000-2020年各省第三产业增加值占GDP比重数据
2000-2020年各省第三产业增加值占GDP比重数据 1、时间:2000-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、第三产业增加值占GDP比重 4、范围:31省 5、指标解释:第三产业增加值占G…...
Linux MySQL离线安装
一、准备工作 1. 下载MySQL安装包 访问MySQL官方网站,选择适合您Linux系统的MySQL版本进行下载。通常推荐下载Generic Linux (glibc 2.12)版本的.tar.gz压缩包,例如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz。将下载好的安装包拷贝到Linux服务器的某…...
ESP32服务器和PC客户端的Wi-Fi通信
ESP32客户端-服务器Wi-Fi通信 本指南将向您展示如何设置ESP32板作为服务端,PC作为客户端,通过HTTP通信,以通过Wi-Fi(无需路由器或互联网连接)交换数据。简而言之,您将学习如何使用HTTP请求将一个板的数据发…...
Linux文件权限
目录 1.Linux权限管理 1.1文件访问者的分类 1.2文件的类型和访问权限 1)文件类型 2)文件访问权限 3)chmod指令 4)chown指令 编辑 5)chgrp命令 1.3目录权限 1.4粘滞位 1.5umask(权限掩码&…...
UE骨骼模拟物理
此功能可以制作仿动物派对上半身模拟物理效果 Set all bodies below simulate physics 骨骼名称设置为 spine_01 这样上半身所有骨骼都会模拟物理 效果演示...
salesforce中如何获取一个profile的18位id
在 Salesforce 中,要获取一个 Profile 的 18 位 ID,可以通过以下几种方式实现: 方法 1:通过 Developer Console 登录 Salesforce。 点击右上角的 头像 或 设置齿轮,选择 “开发者控制台”(Developer Conso…...
为什么机器学习中梯度下降是减去斜率,而不是按照其数学意义减去斜率的倒数
做个简单假设,Loss函数的某一个参数的函数曲线是二次方程,其导数函数为 r 2 ∗ w r 2*w r2∗w 按照斜率意义来看,要减去斜率倒数 降低LOSS需要将w1更新为w2,所以更新公式为 w w − Δ L Δ w w w - \frac{\Delta L}{\Delta w…...
Vue 3 30天精进之旅:Day 04 - 计算属性与侦听器
引言 在前几天的学习中,我们已经了解了Vue实例的基本概念和使用方法。今天,我们将深入探讨两个重要的特性:计算属性(computed properties)和侦听器(watchers)。这两个特性使得我们能够更高效地…...
UE学习日志#11GAS--ASC源码简要分析9 AbilitySystemGlobals分析2 初始化相关
1 static UAbilitySystemGlobals& Get() 保证了是单例,IGameplayAbilitiesModule继承了IModuleInterface /** Gets the single instance of the globals object, will create it as necessary */static UAbilitySystemGlobals& Get(){return *IGameplayAbi…...
SQL在DBA手里-改写篇
背景 最近运营需要做月报汇总交易情况,之前一直是他们手工出的数据,他们想做成月初自动发送邮件,从而减轻他们的工作量。于是他们提供SQL我们在邮件服务器配置做定时发送任务。 表介绍(表及字段已做脱敏处理) trans…...
SQL Server查询计划操作符(7.3)——查询计划相关操作符(5)
7.3. 查询计划相关操作符 38)Flow Distinct:该操作符扫描其输入并对其去重。该操作符从其输入得到每行数据时即将其返回(除非其为重复数据行,此时,该数据行会被抛弃),而Distinct操作符在产生任何输出前将消费所有输入。该操作符为逻辑操作符。该操作符具体如图7.2-38中…...
Autogen_core:Agent and Agent Runtime
目录 1. 代码2. 代码解释第一部分:定义消息类型和代理第二部分:定义助手代理第三部分:注册和运行代理第四部分:发送和停止消息处理总结 3. 类似的例子 1. 代码 from dataclasses import dataclassfrom autogen_core import Agent…...
vue(33) : 安装组件出错解决
1. request to https://registry.npm.taobao.org/semver/download/semver-6.1.1.tgz?cache0&other_urlshttps%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.1.1.tgz failed, reason: certificate has expired 这个错误提示表明你在尝试从https://reg…...
论文阅读(五):乳腺癌中的高斯图模型和扩展网络推理
1.论文链接:Network Inference in Breast Cancer with Gaussian Graphical Models and Extensions 摘要: 具有高相关性的聚类基因将具有接近表达谱的基因分组,确定共表达基因的聚类。然而,这种相关性并没有提供任何关于基因间信息…...
定时器按键tim_key模版
低优先级放在高优先级内势必是程序卡死 把高优先级放到低优先级内,会使程序卡死 可修改 Debuger调试方法 Pwm rcc #include "my_main.h" uint8_t led_sta0x10; char text[30]; void LED_Disp(uint8_t dsLED) {HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPI…...
Effective Objective-C 2.0 读书笔记—— objc_msgSend
Effective Objective-C 2.0 读书笔记—— objc_msgSend 文章目录 Effective Objective-C 2.0 读书笔记—— objc_msgSend引入——静态绑定和动态绑定OC之中动态绑定的实现方法签名方法列表 其他方法objc_msgSend_stretobjc_msgSend_fpretobjc_msgSendSuper 尾调用优化总结参考文…...
机器学习 vs 深度学习
目录 一、机器学习 1、实现原理 2、实施方法 二、深度学习 1、与机器学习的联系与区别 2、神经网络的历史发展 3、神经网络的基本概念 一、机器学习 1、实现原理 训练(归纳)和预测(演绎) 归纳: 从具体案例中抽象一般规律…...
Vue中的动态组件是什么?如何动态切换组件?
什么是动态组件? 动态组件是 Vue.js 中的一项强大功能,它允许开发者根据程序的状态或用户的操作,动态地切换组件。动态组件的优势在于,开发者可以根据具体需求灵活地渲染不同的组件,从而提高应用的通用性和可维护性。…...
Spring IoC DI
目录 一. IoC & DI 入门 1. 重谈Spring 2. 容器 3. IoC ① 传统程序开发 ② IoC 程序开发 ③ IoC 的优势 4. DI 3. IoC & DI 使用 二. IoC & DI 详解 1. Bean的存储 2. Bean的重命名 3. 扫描路径 三. DI 详解 1. 属性注入 2. 构造方法注入 3. Se…...
【Linux】线程、线程控制、地址空间布局
⭐️个人主页:小羊 ⭐️所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 1、Linux线程1.1 线程的优缺点1.2 线程异常和用途1.3 线程等待1.3 线程终止1.4 线程分离1.5 线程ID和地址空间布局1.6 线程栈 1、…...
【记录】日常|从零散记录到博客之星Top300的成长之路
文章目录 shandianchengzi 2024 年度盘点概述写作风格简介2024年的创作内容总结 shandianchengzi 2024 年度盘点 概述 2024年及2025年至今我创作了786即84篇文章,加上这篇就是85篇。 很荣幸这次居然能够入选博客之星Top300,这个排名在我之前的所有年份…...
网盘资源查找工具---AI功能
01 软件介绍 这是一款融入了ai技术的网盘搜索神器,可以让你更快,更精准的找到自己需要的文件,不管你是找影视,音乐,还是找软件或者学习资料都可以,欢迎前来使用。 02 功能展示 该软件非常简洁ÿ…...
LWJGL轻量级Java游戏库
LWJGL - Lightweight Java Game Library 基本介绍 LWJGL是一个Java库,它支持跨平台访问流行的本地api,这些api在图形(OpenGL, Vulkan)、音频(OpenAL)和并行计算(OpenCL)应用程序的…...
AI智能日志分析系统
文章目录 1.combinations-intelligent-analysis-starter1.目录结构2.pom.xml3.自动配置1.IntelligentAnalysisAutoConfiguration.java2.spring.factories 2.combinations-intelligent-analysis-starter-demo1.目录结构2.pom.xml3.application.yml4.IntelligentAnalysisApplicat…...
详解三种常用标准化:Batch Norm、Layer Norm和RMSNorm
在深度学习中,标准化技术是提升模型训练速度、稳定性和性能的重要手段。本文将详细介绍三种常用的标准化方法:Batch Normalization(批量标准化)、Layer Normalization(层标准化)和 RMS Normalization&#…...
数据压缩算法-差分编码(Delta Encoding)
Delta Encoding(差分编码)是一种数据压缩技术,其核心思想是存储数据之间的差异(delta),而不是原始数据本身。这种方法特别适用于数据序列中相邻元素之间变化较小的情况,可以显著减少存储空间或传…...
Nginx中部署多个前端项目
1,准备前端项目 tlias系统的前端资源 外卖项目的前端资源 2,nginx里面的html文件夹中新建,tlias和sky两个文件夹。 切记这是在nginx/html下创建的 mkdir sky mkdir tlias 把tlias和sky的资源都放到对应的文件夹中 3,编辑配置ngi…...
Level DB --- TableBuilder
TableBuilder是Level DB里面重要的类和模块,它描述了数据如何序列化到文件中,以及数据里面的格式逻辑。它里面包含了之前介绍的多个模块和类。 data block、filter block和index block block格式,之前已经介绍过Level DB --- BlockBuilder-…...
JVM堆空间
一、堆空间的核心概述 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。 堆内存的大小是可以调节的。堆可以处于物理上不连续的内存空间中ÿ…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.13 降维打击:扁平化操作的六种武器
1.13 降维打击:扁平化操作的六种武器 目录 #mermaid-svg-bbLxDryjxBbXe3tu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bbLxDryjxBbXe3tu .error-icon{fill:#552222;}#mermaid-svg-bbLxDryjxBbXe3tu…...
Doris Schema Change 常见问题分析
1. 什么是 Schema Change Schema Change 是在数据库中修改表结构的一种操作,例如添加列、删除列、更改列类型等。 ⚠️Schema Change 限制⚠️ 一张表在同一时间只能有一个 Schema Change 作业在运行。分区列和分桶列不能修改。如果聚合表中有 REPLACE 方式聚合的…...
数据结构之堆排序
文章目录 堆排序版本一图文理解 版本二向下调整建堆向上调整建堆 排升/降序升序 堆排序 版本一 基于已有数组建堆取堆顶元素并删除堆顶元素重新建大根堆,完成排序版本。 图文理解 版本二 前提:必须提供有现成的数据结构堆 数组建堆,首尾…...
实现桌面动态壁纸(三)—— 视频播放的策略
关于动态壁纸这边,其实已经不需要再谈什么东西了,现有的各种文章都在介绍相关的技术。可以说现如今要去制作一个桌面动态壁纸应该不是什么难事。我考虑了很久,决定还是开一篇单独谈谈。可能我说的也不全部正确,您有什么建议随时可…...
C语言程序设计十大排序—希尔排序
文章目录 1.概念✅2.希尔排序🎈3.代码实现✅3.1 直接写✨3.2 函数✨ 4.总结✅ 1.概念✅ 排序是数据处理的基本操作之一,每次算法竞赛都很多题目用到排序。排序算法是计算机科学中基础且常用的算法,排序后的数据更易于处理和查找。在计算机发展…...
2023年版本IDEA复制项目并修改端口号和运行内存
2023年版本IDEA复制项目并修改端口号和运行内存 1 在idea中打开server面板,在server面板中选择需要复制的项目右键,点击弹出来的”复制配置…(Edit Configuration…)“。如果idea上没有server面板或者有server面板但没有springbo…...
Ubuntu 安装 QGIS LTR 3.34
QGIS官方提供了安装指南:https://qgis.org/resources/installation-guide/#linux。大多数linux发行版将QGIS拆分为几个包:qgis、qgis-python、qgis-grass、qgis-plugin-grass、qgis-server,有的包最初安装时被跳过,可以在需要使用…...
win32汇编环境,对话框程序中使用进度条控件
;运行效果 ;win32汇编环境,对话框程序中使用进度条控件 ;进度条控件主要涉及的是长度单位,每步步长,推进的时间。 ;比如你的长度是1000,步长是100,每秒走1次,则10秒走完全程 ;比如你的长度是1000,步长是10,每秒走1次,则100秒走完全程,但每格格子的长度与上面一样 ;以下…...