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

大连网站建设仟亿科技/长春网站seo公司

大连网站建设仟亿科技,长春网站seo公司,广东住房和城乡建设局网站首页,做网站优化的工资有多高目录 一、MHA 1、什么是MHA 2、MHA 的组成 3、MHA的特点 4、MHA的工作原理 二、有哪些数据库集群高可用方案 三、实操:一主两从部署MHA 1、完成主从复制 步骤一:完成所有MySQL的配置文件修改 步骤二:完成所有MySQL的主从授权&#x…

目录

一、MHA

1、什么是MHA

2、MHA 的组成

3、MHA的特点

4、MHA的工作原理

二、有哪些数据库集群高可用方案

三、实操:一主两从部署MHA

1、完成主从复制

步骤一:完成所有MySQL的配置文件修改

步骤二:完成所有MySQL的主从授权,以及mha的账号授权

步骤三:主查看master状态,从完成与主对接,启动从节点,查看从的状态,验证IO和SQL线程的状态是否为yes

步骤四:验证主从复制

步骤五:将从节点都改为只读状态

2、所有服务器配置MHA的node组件

步骤一:完成所有节点(三台mysql和manager)安装epel源和依赖环境

步骤二:完成所有服务器部署mha-node组件

3、在MHA manager服务器配置manager组件

步骤一:安装manager组件

4、完成所有所有服务器ssh免密登录

5、完成在 manager 节点上配置 MHA

步骤一:复制相关脚本到/usr/local/bin 目录

步骤二:使用master_ip_failover脚本来管理 VIP 和故障切换,修改该脚本

步骤三:创建 MHA 软件目录并拷贝配置文件,这里使用mysql_mha.conf配置文件来管理 mysql 节点服务器,#创建相关目录(所有节点)

步骤四:给主配置一个vip 

步骤五:完成ssh和集群的健康检查,最后启动mha 

6、故障切换实验

步骤一:先关闭主的mysqld服务

步骤二:查看故障切换有哪些内容

步骤三:修复master

重新启动旧master的mysqld服务,重新做主从

修改manager的配置文件


一、MHA

1、什么是MHA

MHA(master high availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。

MHA的出现是为了解决MySQL的单点故障,MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换过程中最大程度上保证数据的一致性,已达到真正意义上的高可用。

2、MHA 的组成

●MHA Node(数据节点)
MHA Node 运行在每台 MySQL 服务器上。(注意是每一台!!包含所有的MySQL节点和manager节点)

●MHA Manager(管理节点)
MHA Manager 可以单独部署在一台独立的机器上,管理多个 master-slave 集群;也可以部署在一台 slave 节点上。
MHA Manager 会定时探测集群中的 master 节点。当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master, 然后将所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明。

3、MHA的特点

1.自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失;

2.使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他的slave服务器上,因此可以保证所有节点的数据一致性。

3.目前MHA支持一主多从架构,最少三台服务,一主两从。

4、MHA的工作原理

实际就是manager的工作过程

manager会周期性探测master的状态,一旦发现master故障以后,会根据默认,将目前收到最新数据的从节点指定为新的master,所有的其他从节点指向新的master,同时VIP从原来的主漂移到新的主。这些对客户端来说都是透明的

二、有哪些数据库集群高可用方案

有keepalived(单主)、MHA(单主)、MMM(单主)以及MySQL cluster(多主)

所有的高可用都是在主从复制的基础上进行。

keepalived可以完成主备切换,但是不能完成读写分离

MMM的工作模式:

支持双主故障切换和双主日常管理,MMM也是用perl语言开发,主要用来监控和管理MySQL的双主复制。虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个 Slave 的 read 负载均衡。

三、实操:一主两从部署MHA

1、完成主从复制

步骤一:完成所有MySQL的配置文件修改

 

server-id = 3
log-bin=mysql_bin
binlog_format=mixed
log-slave-updates=true
relay-log=relay-log-bin
relay-log-index=relay-slave-bin.indexserver-id = 3 ##所有服务器的server-id都不相同
log-bin=mysql_bin ##开启二进制日志
binlog_format=mixed ##设置二进制日志的格式为mixed
log-slave-updates=true ##slave 从 master 复制的数据会写入二进制日志文件里
relay-log=relay-log-bin ##中继日志开启
relay-log-index=relay-slave-bin.index ##中继日志的索引文件

步骤二:完成所有MySQL的主从授权,以及mha的账号授权

mysql> grant replication slave on *.* to 'myslave'@'192.168.20.%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> grant all on *.* to 'manager'@'192.168.20.%' identified by 'manager123';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> grant all on *.* to 'manager'@'mysql1' identified by 'manager123';
Query OK, 0 rows affected, 2 warnings (0.00 sec)mysql> grant all on *.* to 'manager'@'mysql2' identified by 'manager123';
Query OK, 0 rows affected, 2 warnings (0.00 sec)mysql> grant all on *.* to 'manager'@'mysql3' identified by 'manager123';
Query OK, 0 rows affected, 2 warnings (0.00 sec)mysql> flush privileges;

步骤三:主查看master状态,从完成与主对接,启动从节点,查看从的状态,验证IO和SQL线程的状态是否为yes

show master status;

mysql> change master to master_host='192.168.20.15',master_user='myslave',master_port=3306,master_password='abc123',master_log_file='mysql_bin.000001',master_log_pos=1761;mysql> start slave;

mysql> show slave status\G;

步骤四:验证主从复制

步骤五:将从节点都改为只读状态

set global read_only=1;

2、所有服务器配置MHA的node组件

步骤一:完成所有节点(三台mysql和manager)安装epel源和依赖环境

yum install epel-release --nogpgcheck -yyum install -y perl-DBD-MySQL \
perl-Config-Tiny \
perl-Log-Dispatch \
perl-Parallel-ForkManager \
perl-ExtUtils-CBuilder \
perl-ExtUtils-MakeMaker \
perl-CPAN

步骤二:完成所有服务器部署mha-node组件

cd /opt
tar zxvf mha4mysql-node-0.57.tar.gz
cd mha4mysql-node-0.57
perl Makefile.PL
make && make install

3、在MHA manager服务器配置manager组件

步骤一:安装manager组件

cd /opt
tar zxvf mha4mysql-manager-0.57.tar.gz
cd mha4mysql-manager-0.57
perl Makefile.PL
make && make install

4、完成所有所有服务器ssh免密登录

ssh-keygen -t rsassh-copy-id 192.168.20.15
ssh-copy-id 192.168.20.16
ssh-copy-id 192.168.20.17
ssh-copy-id 192.168.20.7

5、完成在 manager 节点上配置 MHA

步骤一:复制相关脚本到/usr/local/bin 目录

cp -rp /opt/mha4mysql-manager-0.57/samples/scripts /usr/local/bin

步骤二:使用master_ip_failover脚本来管理 VIP 和故障切换,修改该脚本

cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin

vim /usr/local/bin/master_ip_failover
#!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';use Getopt::Long;my ($command, $orig_master_host, $orig_master_ip,$ssh_user,$orig_master_port, $new_master_host, $new_master_ip,$new_master_port,$orig_master_ssh_port,$new_master_ssh_port,$new_master_user,$new_master_password
);# 这里定义的虚拟IP配置要注意,这个ip必须要与你自己的集群在同一个网段,否则无效
my $vip = '192.168.20.100/24';
my $key = '1';
# 这里的网卡名称 “ens33” 需要根据你机器的网卡名称进行修改
# 如果多台机器直接的网卡名称不统一,有两种方式,一个是改脚本,二是把网卡名称修改成统一
# 我这边实际情况是修改成统一的网卡名称
my $ssh_start_vip = "sudo /sbin/ifconfig ens33:$key $vip";
my $ssh_stop_vip = "sudo /sbin/ifconfig ens33:$key down";
my $ssh_Bcast_arp= "sudo /sbin/arping -I ens33 -c 3 -A $vip";GetOptions('command=s'          => \$command,'ssh_user=s'         => \$ssh_user,'orig_master_host=s' => \$orig_master_host,'orig_master_ip=s'   => \$orig_master_ip,'orig_master_port=i' => \$orig_master_port,'orig_master_ssh_port=i' => \$orig_master_ssh_port,'new_master_host=s'  => \$new_master_host,'new_master_ip=s'    => \$new_master_ip,'new_master_port=i'  => \$new_master_port,'new_master_ssh_port' => \$new_master_ssh_port,'new_master_user' => \$new_master_user,'new_master_password' => \$new_master_password);exit &main();sub main {$ssh_user = defined $ssh_user ? $ssh_user : 'root';print "\n\nIN SCRIPT TEST====$ssh_user|$ssh_stop_vip==$ssh_user|$ssh_start_vip===\n\n";if ( $command eq "stop" || $command eq "stopssh" ) {my $exit_code = 1;eval {print "Disabling the VIP on old master: $orig_master_host \n";&stop_vip();$exit_code = 0;};if ($@) {warn "Got Error: $@\n";exit $exit_code;}exit $exit_code;}elsif ( $command eq "start" ) {my $exit_code = 10;eval {print "Enabling the VIP - $vip on the new master - $new_master_host \n";&start_vip();&start_arp();$exit_code = 0;};if ($@) {warn $@;exit $exit_code;}exit $exit_code;}elsif ( $command eq "status" ) {print "Checking the Status of the script.. OK \n";exit 0;}else {&usage();exit 1;}
}sub start_vip() {`ssh $ssh_user\@$new_master_host \" $ssh_start_vip \"`;
}
sub stop_vip() {`ssh $ssh_user\@$orig_master_host \" $ssh_stop_vip \"`;
}sub start_arp() {`ssh $ssh_user\@$new_master_host \" $ssh_Bcast_arp \"`;
}
sub usage {print"Usage: master_ip_failover --command=start|stop|stopssh|status --ssh_user=user --orig_master_host=host --orig_master_ip=ip --orig_master_port=port --new_master_host=host --new_master_ip=ip --new_master_port=port\n";
}

步骤三:创建 MHA 软件目录并拷贝配置文件,这里使用mysql_mha.conf配置文件来管理 mysql 节点服务器,#创建相关目录(所有节点)

[root@localhost /opt]#mkdir -p /opt/mysql-mha/mha-node
[root@localhost /opt]#mkdir -p /opt/mysql-mha/mha

vim /opt/mysql-mha/mysql_mha.cnf
[server default]
manager_log=/opt/mysql-mha/manager.log
manager_workdir=/opt/mysql-mha/mha
master_binlog_dir=/usr/local/mysql/data
master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
user=manager
password=manager123
ping_interval=1
port=3306
remote_workdir=/opt/mysql-mha/mha-node
repl_password=abc123
repl_user=myslave
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.20.16 -s 192.168.20.17
shutdown_script=""
ssh_user=root[server1]
hostname=192.168.20.15
port=3306[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.20.16
port=3306[server3]
hostname=192.168.20.17
port=3306

步骤四:给主配置一个vip 

[root@mysql1 /opt]#ifconfig ens33:1 192.168.20.100/24

步骤五:完成ssh和集群的健康检查,最后启动mha 

[root@localhost /usr/local/bin]#masterha_check_ssh -conf=/opt/mysql-mha/mysql_mha.cnf

[root@localhost /usr/local/bin]#masterha_check_repl -conf=/opt/mysql-mha/mysql_mha.cnf

masterha_check_ssh -conf=/opt/mysql-mha/mysql_mha.cnf ##ssh检查
masterha_check_repl -conf=/opt/mysql-mha/mysql_mha.cnf ##集群检查##在 manager 节点上启动 MHA
nohup masterha_manager \
--conf=/opt/mysql-mha/mysql_mha.cnf \
--remove_dead_master_conf \
--ignore_last_failover < /dev/null > /var/log/mha_manager.log 2>&1 &##查看 MHA 状态,可以看到当前的 master 是 mysql1 节点。
masterha_check_status --conf=/opt/mysql-mha/mysql_mha.cnfcat /opt/mysql-mha/manager.log | grep "current master"

6、故障切换实验

步骤一:先关闭主的mysqld服务

[root@mysql1 /opt]#systemctl stop mysqld

步骤二:查看故障切换有哪些内容

 

总结:
故障切换后,
1、MHA 进程会退出;
2、HMA 会自动修改 配置文件内容,将宕机的 mysql1 节点删除
3、VIP会漂移到新的master上
4、从节点的状态可以查看 指向新的master

步骤三:修复master

重新启动旧master的mysqld服务,重新做主从

ps:如果说master宕机以后有数据写入,那么还需要先完成数据一致再做主从!!!

[root@mysql1 /opt]#systemctl restart mysqld
[root@mysql1 /opt]#mysql -uroot -pabc123mysql> change master to master_host='192.168.20.16',master_user='myslave',master_password='abc123',master_log_file='mysql_bin.000001',master_log_pos=3087;mysql> start slave;mysql> show slave status\G;

针对数据不一致问题:需要先将主进行只读锁定,然后用mysqldump完成全量备份 给从以后 再从做一次全量备份恢复,最后当数据一致以后,再重新做主从复制 

修改manager的配置文件

[server default]
manager_log=/opt/mysql-mha/manager.log
manager_workdir=/opt/mysql-mha/mha
master_binlog_dir=/usr/local/mysql/data
master_ip_failover_script=/usr/local/bin/master_ip_failover
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
user=manager
password=manager123
ping_interval=1
port=3306
remote_workdir=/opt/mysql-mha/mha-node
repl_password=abc123
repl_user=myslave
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.20.15 -s 192.168.20.17
shutdown_script=""
ssh_user=root[server1]
hostname=192.168.20.15
port=3306[server2]
candidate_master=1
check_repl_delay=0
hostname=192.168.20.16
port=3306[server3]
hostname=192.168.20.17
port=3306

 

相关文章:

【MySQL】数据库之MHA高可用

目录 一、MHA 1、什么是MHA 2、MHA 的组成 3、MHA的特点 4、MHA的工作原理 二、有哪些数据库集群高可用方案 三、实操&#xff1a;一主两从部署MHA 1、完成主从复制 步骤一&#xff1a;完成所有MySQL的配置文件修改 步骤二&#xff1a;完成所有MySQL的主从授权&#x…...

ffmpeg 改变帧率,分辨率,时长等命令

ffmpeg -i elva.mp4 -ss 00:00:20 -t 00:00:30 -c:v copy -c:a copy output1.mp4 视频截取&#xff0c;开始时间和时长,-ss 00:00:20 -t 00:00:30 ffmpeg -i output1.mp4 -c:v libx265 output265.mp4 -c:v libx265,264转265 ffmpeg -i output1.mp4 -c:v libx264 output264.mp4 …...

烟火检测AI边缘计算智能分析网关V4在安防项目中的应用及特点

一、行业背景 随着社会和经济的发展&#xff0c;公共安全和私人安全的需求都在不断增长。人们需要更高效、更准确的安防手段来保障生命财产安全&#xff0c;而人工智能技术正好可以提供这种可能性&#xff0c;通过智能监控、人脸识别、行为分析等手段&#xff0c;大大提高了安防…...

有效的回文

常用方法就是双指针。使用两个指针从字符串的两端向中间移动&#xff0c;同时比较对应位置的字符&#xff0c;直到两个指针相遇。由于题目忽略非字母和非数字的字符且忽略大小写&#xff0c;所以跳过那些字符&#xff0c;并将字母转换为小写&#xff08;或大写&#xff09;进行…...

Electron快速上手

Electron 目录 简介 打包简单的html/css/javascript项目 打包Vue2项目 打包Vue3项目 简介 Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows…...

华为“纯血”鸿蒙加速进场 高校、企业瞄准生态开发新风口

近日&#xff0c;华为终端BG CEO、智能汽车解决方案BU董事长余承东在2024年新年信中提出&#xff0c;开启华为终端未来大发展的新十年。 他特别提到&#xff0c;未来要构建强大的鸿蒙生态&#xff0c;2024年是原生鸿蒙的关键一年&#xff0c;将加快推进各类鸿蒙原生应用的开发…...

抖音百科怎么创建?头条百科的规则和技巧

在玩抖音的时候&#xff0c;不知道注意到抖音的搜索结果没有&#xff0c;有时候会去搜索框搜索一个品牌或人物名称&#xff0c;搜索框下面翻几下大概率就会出现百科词条&#xff0c;这个词条就是抖音百科。抖音的百科属于头条百科&#xff0c;因为这两个平台都属于字节跳动旗下…...

leetcode10-困于环中的机器人

题目链接&#xff1a; https://leetcode.cn/problems/robot-bounded-in-circle/description/?envTypestudy-plan-v2&envIdprogramming-skills 思路&#xff1a; 首先&#xff0c;题目要寻找的是成环的情况。 1.如果经历一次指令后的方向仍为北方&#xff0c;要使得机器人循…...

Linux-shell简单学习

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 其他…...

CMake入门教程【高级篇】qmake转cmake

&#x1f608;「CSDN主页」&#xff1a;传送门 &#x1f608;「Bilibil首页」&#xff1a;传送门 &#x1f608;「动动你的小手」&#xff1a;点赞&#x1f44d;收藏⭐️评论&#x1f4dd; 文章目录 1. 概述2.qmake与cmake的差异3. qmake示例4.qmake转cmake示例5.MOC、UIC和RCC…...

c#图片作为鼠标光标

图片转换为鼠标光标代码如下&#xff1a; private void Form1_Load(object sender, EventArgs e) {//button1.Cursor System.Windows.Forms.Cursors.Hand;Bitmap bmp new Bitmap("780.jpg");Cursor cursor new Cursor(bmp.GetHicon());button1.Cursor cursor;} …...

微信小程序swiper实现层叠轮播图

在微信小程序中,需要实现展示5个&#xff0c;横向层叠的轮播图效果&#xff0c;轮播图由中间到2侧的依次缩小.如下图 使用原生小程序进行开发,没有使用Skyline模式&#xff0c;所以layout-type配置项也无效。所以基于swiper组件进行调整。 主要思路就是设置不同的样式&#xff…...

揭露欧拉骗局第二篇:逼近公式“Σ1/n=lnn+C”。

Σ1/nlnnC是欧拉为调和级数创造(注意是创造、而不是发现)的“逼近公式”&#xff0c;它在欧系大名鼎鼎&#xff0c;因为它解决了欧洲人百筹莫展的“调和级数求和问题”。 “lnnC”是欧拉的发明&#xff0c;欧拉认为n→∞时&#xff0c;Σ1/nlnn常数&#xff0c;这个常数就是欧…...

MYSQL的学习——单行函数详解

目录 1. 数值函数 1) 基本函数 2) 角度与弧度互换函数 3) 三角函数 4) 指数与对数函数 5) 进制间的转换 2. 字符串函数 3. 日期和时间函数 1) 获取日期、时间 2) 日期与时间戳的转换 3) 获取月份、星期、星期数、天数等函数 4) 日期的操作函数 5) 时间和秒钟转换的…...

深度解析Cron表达式:精确控制任务调度的艺术

深度解析Cron表达式&#xff1a;精确控制任务调度的艺术 希望我们都可以满怀期待的路过每一个转角 去遇见 那个属于自己故事的开始 去追寻那个最真实的自己 去放下 去拿起 安然&#xff0c;自得&#xff0c;不受世俗牵绊… 导言 在计算机科学领域&#xff0c;任务调度是一项关…...

java实现AES256对称加解密工具类

一、引入依赖包 引入相关依赖包 <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.70</version> </dependency> <!--lombok用于简化实体类开发--> <dependency&g…...

其他排序(基数排序,希尔排序和桶排序)(数据结构课设篇3,python版)(排序综合)

本篇博客主要详细讲解一下其他排序&#xff08;基数排序&#xff0c;希尔排序和桶排序&#xff09;也是排序综合系列里最后一篇博客。第一篇博客讲解的是LowB三人组&#xff08;冒泡排序&#xff0c;插入排序&#xff0c;选择排序&#xff09;&#xff08;数据结构课设篇1&…...

【复现】DiffTalk

code&#xff1a;GitHub - sstzal/DiffTalk: [CVPR2023] The implementation for "DiffTalk: Crafting Diffusion Models for Generalized Audio-Driven Portraits Animation" 问题1. ERROR: Failed building wheel for pysptk Cython.Compiler.Errors.CompileError:…...

SQLServer 系统概述

目录 1.SQL语言的发展和特点 2.SQL语言的特点 1.SQL语言的发展和特点 SQL是利用一些简单的语句构成的基本语法&#xff0c;来存储数据库的内容。目前已经成为关系型数据库系统中使用最广泛的语言。 1974年SQL语言由Boyce和Chamberlin提出来。 1975~1979年研制了著名的关系数…...

Vue3 + TS + Element-Plus —— 项目系统中封装表格+搜索表单 十分钟写五个UI不在是问题

前期回顾 纯前端 —— 200行JS代码、实现导出Excel、支持DIY样式&#xff0c;纵横合并-CSDN博客https://blog.csdn.net/m0_57904695/article/details/135537511?spm1001.2014.3001.5501 目录 一、&#x1f6e0;️ newTable.vue 封装Table 二、&#x1f6a9; newForm.vue …...

Linux系统——测试端口连通性方法

目录 一、TCP端口连通性测试 1、ssh 2、telnet&#xff08;可能需要安装&#xff09; 3、curl 4、tcping&#xff08;需要安装&#xff09; 5、nc&#xff08;需要安装&#xff09; 6、nmap&#xff08;需要安装&#xff09; 二、UDP端口连通性测试 1、nc&#xff08;…...

Python虚拟环境轻松配置:Jupyter Notebook中的内核管理指南

问题 在Python开发中&#xff0c;一些人在服务器上使用Jupyter Notebook中进行开发。一般是创建虚拟环境后&#xff0c;向Jupyter notebook中添加虚拟环境中的Kernel&#xff0c;后续新建Notebook中在该Kernel中进行开发&#xff0c;这里记录一下如何创建Python虚拟环境以及添…...

大数据-hive函数与mysql函数的辨析及练习-将多行聚合成一行

目录 1. &#x1f959;collect_list: 聚合-不去重 2. &#x1f959;collect_set(col): 聚合-去重 3. &#x1f959;mysql的聚合函数-group_concat 4. leetcode练习题 1. &#x1f959;collect_list: 聚合-不去重 将组内的元素收集成数组 不会去重 2. &#x1f959;collec…...

【AI视野·今日NLP 自然语言处理论文速览 第七十三期】Tue, 9 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 9 Jan 2024 Totally 80 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers FFSplit: Split Feed-Forward Network For Optimizing Accuracy-Efficiency Trade-off in Language Model Infe…...

vue知识-03

购物车案例 要实现的功能&#xff1a; 1、计算商品总价格 2、全选框和取消全选框 3、商品数量的增加和减少 <body> <div id"app"><div class"row"><div class"col-md-6 col-md-offset-3"><h1 class"text-center…...

关于httpClient 使用的注意事项

关于httpClient 使用的注意事项 用例 PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager();// 最大连接数-不设置默认20connectionManager.setMaxTotal(200);// 每个路由最大连接数-不设置默认2connectionManager.setDefaultMax…...

Docker 发布自定义镜像到公共仓库

Docker 发布自定义镜像到公共仓库 引言 Docker 是一种轻量级、便携式的容器化技术&#xff0c;可以使应用程序在不同环境中更加可移植。在本文中&#xff0c;我们将学习如何使用 Docker 从公共仓库拉取 Nginx 镜像&#xff0c;定制该镜像&#xff0c;添加自定义配置文件&…...

程序员有哪些接单的渠道?

这题我会&#xff01;程序员接单的渠道那可太多了&#xff0c;想要接到合适的单子&#xff0c;筛选一个合适的平台很重要。如果你也在寻找一个合适的接单渠道&#xff0c;可以参考以下这些方向。 首先&#xff0c;程序员要对接单有一个基本的概念&#xff1a;接单渠道可以先粗略…...

服务容错-熔断策略之断路器hystrix-go

文章目录 概要一、服务熔断二、断路器模式三、hystrix-go3.1、使用3.2、源码 四、参考 概要 微服务先行者Martin Fowler与James Lewis在文章microservices中指出了微服务的九大特征&#xff0c;其中一个便是容错性设计(Design for failure)。正如文章中提到的&#xff0c;微服…...

C++进阶(三)多态

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、多态的概念1、概念 二、多态的定义及实现1、多态的构成条件2、虚函数3、虚函数的重写4、C…...