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

Haproxy搭建web群集

一.常见的web集群调度器

1、目前常见的web集群调度器分为软件和硬件

2、软件通常使用开源的LVS、Haproxy、Nginx

​ LVS 性能最好,但搭建复杂。Nginx并发量,性能低于Haproxy

3、硬件一般使用比较多的是F5,也有很多人使用国内的一些产品,如梭子鱼、绿盟等

二、Haproxy应用分析

1、LVS在企业应用中抗负载能力很强,但存在不足

• LVS不支持正则处理,不能实现动静分离

• 对于大型网站,LVS的实施配置复杂,维护成本相对较高

2、Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理软件

• 适用于负载大的web站点

• 运行在硬件上可支持数以万计的并发连接的连接请求

三、Haproxy调度算法原理

Haproxy 支持多种调度算法,最常用的有三种

1、RR(Round Robin)

RR算法是最简单最常用的一种算法,即轮询调度

例如:
• 有三个节点A、B、C

• 第一个用户访问会被指派到节点A

• 第二个用户访问会被指派到节点B

• 第三个用户访问会被指派到节点C

• 第四个用户访问会被指派到节点A,轮询分配访问请求实现负载均衡效果

2、LC(Least Connections)

最小连接数算法,根据后端的节点连接数大小动态分配前端请求

例如:

• 有三个节点A、B、C,各节点的连接数分别为A:4、B:5、 C:6

• 第一个用户连接请求,会被指派到A上,连接数变为A:5、B:5、 C:6

• 第二个用户请求会继续分配到A上,连接数变为A:6、B:5、 C:6; 再有新的请求会分配给B,每次将新的请求指派给连接数最小的客户端

• 由于实际情况下A、B、C的连接数会动态释放,很难会出现一样连接数的情况

• 此算法相比较rr算法有很大改进,是目前用到比较多的一种算法

3、SH(Source Hashing)

基于来源访问调度算法,用于一些有Session会记录在服务器端的场景,可以基于来源的IP、Cookie等做集群调度

例如:

• 有三个节点A、B、C,第一个用户第一次访问被指派到了A,第二个用户第一次访问被指派到了B

• 当第一个用户第二次访问时会被继续指派到A,第二个用户第二次访问时依旧会被指派到B,只要负载均衡调度器不重启,第一个用户访问都会被指派到A,第二个用户访问都会被指派到B,实现集群的调度

• 此调度算法好处是实现会话保持,但某些IP访问量非常大时会引|起负载不均衡,部分节点访问量超大,影响业务使用

四、Haproxy介绍

1、HAProxy是什么?

是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。

HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。

HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上。

HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。

事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space)实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以使每个CPU时间片(Cycle)做更多的工作。

包括 GitHub、Bitbucket、StackOverflow、Reddit、Tumblr、Twitter和 Tuenti在内的知名网站,及亚马逊网络服务系统都使用了HAProxy。

2、 Haproxy的特性

可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美;

最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s;

支持多达8种负载均衡算法,同时也支持会话保持;

支持虚机主机功能,从而实现web负载均衡更加灵活;

支持连接拒绝、全透明代理等独特的功能;

拥有强大的ACL支持,用于访问控制;

其独特的弹性二叉树数据结构,使数据结构的复杂性上升到了0(1),即数据的查寻速度不会随着数据条目的增加而速度有所下降;

支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源浪费,让多个请求在一个tcp连接中完成;

支持TCP加速,零复制功能,类似于mmap机制;

支持响应池 (response buffering);

支持RDP协议;

基于源的粘性,类似nginx的ip hash功能,把来自同一客户端的请求在一定时间内始终调度到上游的同一服务器;

更好统计数据接口,其web接口显示后端集群中各个服务器的接收、发送、拒绝、错误等数据的统计信息;

详细的健康状态检测,web接口中有关于对上游服务器的健康检测状态, 并提供了一定的管理功能;

基于流量的健康评估机制;

基于http认证;

基于命令行的管理接口;

日志分析器,可对日志进行分析

3、负载均衡策略

HAProxy负载均衡策略非常多,常见的有如下8种∶

roundrobin∶表示简单的轮询。

static-rr∶表示根据权重。

leastconn∶ 表示最少连接者先处理。

source∶ 表示根据请求的源IP,类似Nginx的IP hash机制。

ri∶表示根据请求的URI。

rl_param∶表示根据HTTP请求头来锁定每 一 次HTrTP请求。

rdp-cookie (name)∶表示根据据cookie (name)来锁定并哈希每一次TCP请求。

4、 LVS、Nainx、HAproxy的区别

LVS基于Linux操作系统实现软负载均衡,而HAProxy和Nginx是基于第三方应用实现的软负载均衡;

LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而HAProxy和Nainx都可以实现4层和7层技术,HAProxy可提供TCP和HrTP应用的负载均衡综合解决方案

LVS因为工作在ISO模型的第四层,其状态监测功能单一, 而HAProxy在状监测方面功能更丰富、强大, 可支持端口、URL、脚本等多种状态检测方式;

HAProxy功能强大,但整体性能低于4层模式的LVS 负载均衡。

Nginx主要用于Web服务器或缓存服务器。

五、Haproxy集群的构建的步骤

准备工作:

Haproxy服务器:192.168.2.66
Nginx 服务器1:192.168.2.105
Nginx 服务器2:192.168.2.200
客户端:宿主机

1.关闭防火墙,将安装Haproxy所需软件包传到/opt目录下

systemctl stop firewalld
setenforce 0haproxy-1.5.19.tar.gz

2、编译安装 Haproxy

yum install -y pcre-devel bzip2-devel gcc gcc-c++ maketar zxvf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
make TARGET=linux2628 ARCH=x86_64
make install

---------------------参数说明---------------------------------------------------------------------------
TARGET=linux26 #内核版本,
#使用uname -r查看内核,如:2.6.18-371.el5,此时该参数用TARGET=linux26;kernel大于2.6.28的用TARGET=linux2628

ARCH=x86_64 #系统位数,64位系统

3、Haproxy服务器配置

mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/cd /etc/haproxy/
vim haproxy.cfg
global
--4~5行--修改,配置日志记录,local0为日志设备,默认存放到系统日志log /dev/log   local0 info     log /dev/log   local0 notice#log loghost    local0 infomaxconn 4096                    #最大连接数,需考虑ulimit -n限制
--8行--注释,chroot运行路径,为该服务自设置的根目录,一般需将此行注释掉#chroot /usr/share/haproxyuid 99                          #用户UIDgid 99                          #用户GIDdaemon                          #守护进程模式defaults       log     global                  #定义日志为global配置中的日志定义mode    http                    #模式为httpoption  httplog                 #采用http日志格式记录日志option  dontlognull             #不记录健康检查日志信息retries 3                       #检查节点服务器失败次数,连续达到三次失败,则认为节点不可用redispatch                      #当服务器负载很高时,自动结束当前队列处理比较久的连接maxconn 2000                   #最大连接数,“defaults”中的值不能超过“global”段中的定义#contimeout 5000               #设置连接超时时间,默认单位是毫秒#clitimeout 50000               #设置客户端超时时间,默认单位是毫秒#srvtimeout 50000              #设置服务器超时时间,默认单位是毫秒timeout http-request 10s       #默认http请求超时时间timeout queue 1m               #默认队列超时时间timeout connect 10s            #默认连接超时时间,新版本中替代contimeout,该参数向后兼容timeout client 1m             #默认客户端超时时间,新版本中替代clitimeout,该参数向后兼容timeout server 1m             #默认服务器超时时间,新版本中替代srvtimeout,该参数向后兼容timeout http-keep-alive 10s   #默认持久连接超时时间timeout check 10s             #设置心跳检查超时时间--删除下面所有listen项--,添加
listen  webcluster 0.0.0.0:80           #定义一个名为webcluster的应用option httpchk GET /test.html   #检查服务器的test.html文件balance roundrobin              #负载均衡调度算法使用轮询算法roundrobinserver inst1 192.168.2.105:80 check inter 2000 fall 3      #定义在线节点server inst2 192.168.2.200:80 check inter 2000 fall 3---------------------参数说明---------------------------------------------------------------------------
balance roundrobin      #负载均衡调度算法
#轮询算法:roundrobin;最小连接数算法:leastconn;来源访问调度算法:source,类似于nginx的ip_hashcheck inter 2000        #表示haproxy服务器和节点之间的一个心跳频率
fall 3                  #表示连续三次检测不到心跳频率则认为该节点失效
若节点配置后带有“backup”表示该节点只是个备份节点,只有主节点失效该节点才会上。不携带“backup”,表示为主节点,和其它主节点共同提供服务。

4、添加haproxy 系统服务

cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
chmod +x haproxy
chkconfig --add /etc/init.d/haproxyln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
service haproxy start   或   /etc/init.d/haproxy start

5、节点服务器部署

systemctl stop firewalld
setenforce 0yum install -y pcre-devel zlib-devel gcc gcc-c++ makeuseradd -M -s /sbin/nologin nginxcd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/cd nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make installmake && make install--192.168.229.105---
echo "this is xkq web" > /usr/share/nginx/html/index.html--192.168.229.200---
echo "this is wy web" > /usr/share/nginx/html/index.htmlln -s /usr/share/nginx/sbin/nginx /usr/local/sbin/nginx      #启动nginx 服或者用yum安装
cat > /etc/yum.repos.d/nginx.repo << 'EOF'
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
EOFyum install nginx -y

6、测试 Web群集

在客户端使用浏览器打开 http://192.168.2.66/index.html ,不断刷新浏览器测试负载均衡效果

六、实例操作:Haproxy集群的构建

1、关闭防火墙,将安装Haproxy所需软件包传到/opt目录下


  

2、编译安装 Haproxy

3、Haproxy服务器配置


  

4、添加haproxy 系统服务

5、节点服务器部署

Nginx 服务器1:192.168.229.105(编译安装)


  

Nginx 服务器2:192.168.2.200(yum安装)


  

6、测试 Web群集

在客户端使用浏览器打开 http://192.168.2.66/index.html ,不断刷新浏览器测试负载均衡效果

七、Haproxy集群的日志重新定义的操作步骤

默认haproxy的日志是输出到系统的syslog中,查看起来不是非常方便,为了更好的管理haproxy的日志,我们在生产环境中一般单独定义出来。需要将haproxy的info及notice日志分别记录到不同的日志文件中

vim /etc/haproxy/haproxy.cfg
globallog /dev/log local0 infolog /dev/log local0 noticeservice haproxy restart#需要修改rsyslog配置,为了便于管理。将haproxy相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下,rsyslog启动时会自动加载此目录下的所有配置文件。
vim /etc/rsyslog.d/haproxy.conf
if ($programname == 'haproxy' and $syslogseverity-text == 'info')
then -/var/log/haproxy/haproxy-info.log
&~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice')
then -/var/log/haproxy/haproxy-notice.log
&~#说明:
这部分配置是将haproxy的info日志记录到/var/log/haproxy/haproxy-info.log下,将notice日志记录到/var/log/haproxy/haproxy-notice.log下。“&~”表示当日志写入到日志文件后,rsyslog停止处理这个信息。systemctl restart rsyslog.servicetail -f /var/log/haproxy/haproxy-info.log       #查看haproxy的访问请求日志信息

八、实例操作:Haproxy集群的日志重新定义

1、修改rsyslog配置

2、确认默认haproxy的日志、创建/var/log/haproxy/目录并重启服务


 

3、在浏览器中重新访问后,测试日志生成

相关文章:

Haproxy搭建web群集

一.常见的web集群调度器 1、目前常见的web集群调度器分为软件和硬件 2、软件通常使用开源的LVS、Haproxy、Nginx ​ LVS 性能最好&#xff0c;但搭建复杂。Nginx并发量&#xff0c;性能低于Haproxy 3、硬件一般使用比较多的是F5&#xff0c;也有很多人使用国内的一些产品&a…...

Packet Tracer - 配置和验证小型网络

Packet Tracer - 配置和验证小型网络 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 RTA G0/0 10.10.10.1 255.255.255.0 不适用 G0/1 10.10.20.1 255.255.255.0 不适用 SW1 VLAN1 10.10.10.2 255.255.255.0 10.10.10.1 SW2 VLAN1 10.10.20.2 255.25…...

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机设备的各种固件信息如DeviceID或者SerialNumber等(C++)

项目场景 Baumer工业相机堡盟相机是一种高性能、高质量的工业相机&#xff0c;可用于各种应用场景&#xff0c;如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能&#xff0c;可以实时传输高分辨率图像。此外&#xff0c;该相机还具…...

java 的参数传递

一、疑惑引入 首先&#xff0c;我们从一个例子来引出这个问题&#xff1a; public static void main(String[] args) throws IOException {List<String> mockList Lists.newArrayList("a", "b");System.out.println("1: " mockList);L…...

【面试长文】HashMap的数据结构和底层原理以及在JDK1.6、1.7和JDK8中的演变差异

文章目录 HashMap的数据结构和底层原理以及在JDK1.6、1.7和JDK8中的演变差异HashMap的数据结构和原理JDK1.6、1.7和1.8中的HashMap源码演变JDK1.6JDK1.7JDK1.8 总结自己实现一个简单的HashMapHashMap的时间复杂度分析HashMap的空间复杂度分析HashMap的应用场景HashMap的弊端及解…...

【25】linux进阶——网络文件系统NFS

大家好&#xff0c;这里是天亮之前ict&#xff0c;本人网络工程大三在读小学生&#xff0c;拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识&#xff0c;希望能提高自己的技术的同时&#xff0c;也可以帮助到大家 另外其它专栏请关注&#xff1a; 锐捷数通实验&…...

JAVA入坑之JAVADOC(Java API 文档生成器)与快速生成

目录 一、JAVADOC&#xff08;Java API 文档生成器&#xff09; 1.1概述 1.2Javadoc标签 1.3Javadoc命令 1.4用idea自带工具生成API帮助文档 二、IDEA如何生成get和set方法 三、常见快捷方式 3.1快速生成main函数 3.2快速生成println()语句 3.3快速生成for循环 3.4“…...

React | React组件化开发

✨ 个人主页&#xff1a;CoderHing &#x1f5a5;️ React .js专栏&#xff1a;React .js React组件化开发 &#x1f64b;‍♂️ 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; &#x1f4ab; 系列专栏&#xff1a;吊打面试官系列 16天学会Vue 11天学会React Node…...

云计算的优势与未来发展趋势

一、前言二、云计算的基础概念2.1 云计算的定义2.2 云计算的发展历程2.3 云计算的基本架构2.4 云计算的主要服务模式 三、企业采用云计算的优势3.1 降低成本3.2 提高效率和灵活性3.3 提升信息系统的安全性和可靠性3.4 拥有更加丰富的应用和服务 四、行业应用案例4.1 金融行业4.…...

shell编程lesson01

命令行和脚本关系 命令行&#xff1a;单一shell命令&#xff0c;命令行中编写与执行&#xff1b; 脚本&#xff1a;众多shell命令组合成一个完成特定功能的程序&#xff0c;在脚本文件中进行编写维护。 脚本是一个文件&#xff0c;一个包含有一组命令的文件。 编写一个shel…...

看看人家的MyBatis批量插入数据优化,从120s到2.5s,那叫一个优雅!

粗略的实验 最后 最近在压测一批接口的时候&#xff0c;我发现接口处理速度比我们预期的要慢。这让我感到有点奇怪&#xff0c;因为我们之前已经对这些接口进行了优化。但是&#xff0c;当我们进行排查时&#xff0c;发现问题出在数据库批量保存这块。 我们的项目使用了 myb…...

软件和信息服务业专题讲座

软件和信息服务业专题讲座 单选题&#xff08;共 10 题&#xff0c;每题 3 分&#xff09; 1、根据本讲&#xff0c;我国要加强物联网应用领域&#xff08;&#xff09;开发和应用。 A、大数据 2、根据本讲&#xff0c;要充分发挥软件对城市管理和惠民服务的&#xff08;&am…...

由 ChatGPT 团队开发,堪称辅助神器!IntelliJ IDEA 神级插件

什么是Bito&#xff1f; 为什么要使用Bito&#xff1f; 如何安装Bito插件 如何使用Bito插件 什么是Bito&#xff1f; Bito是一款由ChatGPT团队开发的IntelliJ IDEA编辑器插件&#xff0c;旨在提高开发人员的工作效率。此插件强大之处在于它不仅可以帮助开发人员更快地提交…...

spass modeler

课时1&#xff1a;SPSS Modeler 简介 本课时一共分为五个模块&#xff0c;分别是Modeler概述、工具安装、窗口说明以及功能介绍和应用案例。相信通过本课时内容的学习&#xff0c;大家将会对SPSS Modeler有个基础的了解. 在学习本节课内容之前&#xff0c;先来看看本节课我们究…...

kafka的push、pull分别有什么优缺点

文章目录 kafka的push、pull分别有什么优缺点Push 模式优点缺点 Pull 模式优点缺点 实践操作 kafka的push、pull分别有什么优缺点 Kafka 是由 Apache 软件基金会开发的一个开源流处理平台&#xff0c;广泛应用于各大互联网公司的消息系统中。在 Kafka 中&#xff0c;生产者使用…...

【Canvas入门】从零开始在Canvas上绘制简单的动画

这篇文章是观看HTML5 Canvas Tutorials for Beginners教程做的记录&#xff0c;所以代码和最后的效果比较相似&#xff0c;教程的内容主要关于这四个部分&#xff1a; 创建并设置尺寸添加元素让元素动起来与元素交互 设置Canvas的大小 获取到canvas并设置尺寸为当前窗口的大…...

【技术整合】各技术解决方案与对应解决的问题

文章目录 基本实现性能安全 本文将框架分为三大类&#xff1a; 基本实现&#xff1a;包括某个供能或者提供web、移动端、桌面端、或者上述端上的某种功能性能&#xff1a;提升高可用、高并发的框架安全&#xff1a;包括网络安全、权限与容灾等 基本实现 .NET CORE、.NET web基…...

公网远程访问公司内网象过河ERP系统「内网穿透」

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 概述 ERP系统对于企业来说重要性不言而喻&#xff0c;不管是财务、生产、销售还是采购&#xff0c;都需要用到ERP系统来协助。…...

Win11的两个实用技巧系列之修改c盘大小方法、功能快捷键大全

Win11 c盘无法更改大小什么原因?Win11修改c盘大小方法 有不少朋友反应Win11 c盘无法更改大小是怎么回事&#xff1f;本文就为大家带来了详细的更改方法&#xff0c;需要的朋友一起看看吧 Win11 c卷无法更改大小什么原因&#xff1f;有用户电脑的系统盘空间太小了&#xff0c;…...

离散数学下--- 代数系统

代数系统 定义&#xff1a; 代数系统是用代数运算构造数学模型的方法。 • 通过构造手段生成&#xff0c;所以也称代数结构 • 代数运算&#xff1a;在集合上建立满足一定规则的运算系统 &#xff08;一&#xff09;二元运算 二元运算的定义 二元运算需要满足的两个条件&a…...

java基础入门-04

Java基础入门-04 11、集合&学生管理系统11.1.ArrayList集合和数组的优势对比&#xff1a;11.1.1 ArrayList类概述11.1.2 ArrayList类常用方法11.1.2.1 构造方法11.1.2.2 成员方法11.1.2.3 示例代码 11.1.3 ArrayList存储字符串并遍历11.1.3.1 案例需求11.1.3.2 代码实现 11…...

《面试1v1》java反射

我是 javapub&#xff0c;一名 Markdown 程序员从&#x1f468;‍&#x1f4bb;&#xff0c;八股文种子选手。 面试官&#xff1a; 你好&#xff0c;请问你对 Java 反射有了解吗&#xff1f; 候选人&#xff1a; 是的&#xff0c;我了解一些。 面试官&#xff1a; 那你能简单…...

【C语言】struct结构体

文章目录 一. 结构体简述二. 结构体的声明和定义1、简单地声明一个结构体和定义结构体变量2、声明结构体的同时也定义结构体变量3、匿名结构体4、配合typedef&#xff0c;声明结构体的同时为结构体取别名5、在声明匿名结构体时&#xff0c;使用typedef给这个匿名结构体取别名 三…...

Docker代码环境打包

1. 介绍 Docker是一种开源的容器化平台&#xff0c;它可以在操作系统级别运行应用程序。通过将应用程序及其依赖项封装成一个可移植的容器&#xff0c;Docker使得应用程序可以在任何环境中轻松部署、运行和管理。使用Docker&#xff0c;开发人员可以避免在不同环境中出现的配置…...

现代CMake高级教程 - 第 6 章:输出与变量

双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 第 6 章&#xff1a;输出与变量 在运行 cmake -B build 时&#xff0c;打印字符串&#xff08;用于调试&#xff09; message("Hello world!")❯ cmake --build buildHello world! -- Configuring done -- G…...

windows/linux文件传输

windows系统下文件传输-FTP python安装pyftpdlib模块 pip install pyftpdlib 这里可能会出现报错&#xff0c;自己看着更换源解决 然后运行python&#xff0c;在2121端口监听 python -m pyftpdlib 然后我们可以使用windows命令行进行操作&#xff0c;自己可以去看下相关文…...

Anoconda安装笔记+win10 更改中文用户名为英文

win10 更改中文用户名为英文 ① WinR打开命令窗口&#xff0c;输入regedit 打开注册表&#xff0c; 手动找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList 在这个目录下面有几个S-1-5-的项&#xff0c;挨个检查每一项&#xff0c; 找到“…...

Java Web应用开发 ——作业七

一.单项选择题&#xff08;共7题,28.7分&#xff09; 1 Servlet程序的入口点是&#xff08; &#xff09;。 A、 init&#xff08;&#xff09; B、 main&#xff08;&#xff09; C、 service&#xff08;&#xff09; D、 doGet&#xff08;&#xff09; 正确答案&#…...

echo,date,bc命令详解

文章目录 echo&#xff0c;date&#xff0c;bc命令详解echo(输出文本)date(显示日期的命令)date命令的--date选项date命令 bc(高精度计算器) echo&#xff0c;date&#xff0c;bc命令详解 echo(输出文本) echo命令是一个常用的Shell命令&#xff0c;用于在终端上输出文本。它…...

【Java笔试强训 29】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;求正数数…...

做古玩生意哪些网站好/中央常委成员名单

点击上方“Java基基”&#xff0c;选择“设为星标”做积极的人&#xff0c;而不是积极废人&#xff01;每天 14:00 更新文章&#xff0c;每天掉亿点点头发...源码精品专栏 原创 | Java 2021 超神之路&#xff0c;很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框…...

广商网/短视频seo营销

如下&#xff1a; 中英文都可以&#xff0c;可以和cmd5网站上的比较&#xff0c;绝对是一模一样。 package com.vastis.ext.huishan;import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;public…...

网站建设开发能力很强的企业/网站优化推广外包

转载于:https://blog.51cto.com/linuxrookie/1399645...

wordpress文章关闭缩略图/seo搜索引擎优化的内容

变量和简单数据类型 1.用引号括起来的都是字符串&#xff0c;可以是单引号也可以是双引号。 2.主要是变量不能使用空格&#xff0c;大小写有区别&#xff0c;尽量使用小写字母&#xff0c;少使用l和o。 3.对于删除空白格&#xff0c;可以使用lstrip()\rstrip()\strip(),要是…...

自建房平面图设计软件/360优化大师安卓手机版下载安装

关于 Java 中引入的 Checked Exceptions&#xff0c;目前存在着很多反对意见。正方的观点是引入 Checked Exceptions&#xff0c;可以增加程度的鲁棒性。反方的观点是 Checked Exceptions 很少被开发人员正确使用过&#xff0c;并且降低了程序开发的生产率和代码的执行效率。 正…...

乐清市网站建设公司/百度权重1

js实现html 页面之间的跳转传参以及返回上一页的相关知识点 一、页面之间的跳转传参 1、在页面之间跳转的方式有两种&#xff1a; window.location.href”test.html?num10” 地址会改变参数也会被传递但是不会打开新窗口 window.open("test.html") 这样会重新…...