运维锅总详解HAProxy

本文尝试从HAProxy简介、HAProxy工作流程及其与Nginx的对比对其进行详细分析;在本文最后,给出了为什么Nginx比HAProxy更受欢迎的原因。希望对您有所帮助!

HAProxy简介

HAProxy(High Availability Proxy)是一款广泛使用的开源软件,主要用于负载均衡和代理。它在高性能、可靠性和灵活性方面表现出色,广泛应用于各种规模的企业和互联网服务中。以下是关于HAProxy的介绍:

HAProxy最初由Willy Tarreau在2000年开发,旨在提供高性能和高可用性的负载均衡解决方案。它主要用于分发网络或应用流量,确保服务的可用性和响应速度。

主要功能和特点

1. 高性能
  • 多线程支持:现代版本的HAProxy支持多线程,充分利用多核CPU的性能。
  • 高吞吐量:HAProxy能够处理大量并发连接,每秒可以处理数十万甚至百万级别的请求。
  • 低延迟:优化的事件驱动架构保证了低延迟处理。
2. 负载均衡算法
  • 轮询(Round Robin):将请求依次分发到后端服务器。
  • 最少连接数(Least Connections):将请求分发到当前连接数最少的服务器。
  • 源IP哈希(Source IP Hashing):根据请求的源IP地址进行分发,保证同一IP的请求始终分发到同一服务器。
  • 加权轮询(Weighted Round Robin):根据服务器权重分配请求,权重高的服务器分配更多请求。
3. 高可用性
  • 健康检查:定期检查后端服务器的健康状态,自动移除不可用的服务器。
  • 自动故障转移:在检测到故障时,自动将流量切换到健康的服务器。
4. 安全性
  • SSL/TLS终止:支持在代理层进行SSL/TLS解密,减轻后端服务器的负担。
  • 防DDoS:内置多种防护措施,可以有效抵御DDoS攻击。
5. 灵活性和可扩展性
  • 支持多种协议:支持HTTP、HTTPS、TCP和UDP等多种协议。
  • 配置灵活:通过配置文件可以实现非常灵活的流量管理策略。

HAProxy的优缺点

优点
  1. 高性能和高可用性:在高并发和高流量场景下表现优异。
  2. 丰富的负载均衡算法:能够根据不同需求选择最合适的算法。
  3. 强大的健康检查和故障转移机制:保证服务的高可用性。
  4. 灵活的配置:可以满足复杂的流量管理需求。
  5. 开源和社区支持:拥有庞大的用户社区和丰富的文档支持。
缺点
  1. 配置复杂:对于初学者来说,复杂的配置文件和众多选项可能会有一定的学习曲线。
  2. 高级功能需要专业知识:一些高级功能的配置和优化需要较深入的专业知识。

HAProxy的历史演进

1. 初期开发(2000-2005)
  • 2000年:Willy Tarreau开始开发HAProxy,旨在提供高性能的负载均衡解决方案。
  • 2001年:HAProxy 1.0发布,初步具备负载均衡和健康检查功能。
2. 功能扩展和社区发展(2006-2010)
  • 2006年:HAProxy 1.2发布,引入了高级负载均衡算法和改进的健康检查机制。
  • 2009年:HAProxy 1.3发布,增加了对更多协议的支持,包括TCP和HTTPS。
3. 稳定性和性能优化(2011-2015)
  • 2011年:HAProxy 1.4发布,引入了对多核CPU的支持和更灵活的配置选项。
  • 2013年:HAProxy 1.5发布,支持SSL终止和多线程,进一步提升性能和安全性。
4. 现代化和云支持(2016-至今)
  • 2016年:HAProxy 1.6发布,引入了更多的性能优化和安全特性。
  • 2017年:HAProxy 1.7发布,支持HTTP/2和改进的SSL/TLS性能。
  • 2018年:HAProxy 1.8发布,全面支持多线程和更多的协议。
  • 2019年:HAProxy 2.0发布,引入了更多现代化特性和对云环境的支持。
  • 2020年:HAProxy 2.2发布,增加了对更多云平台的支持和改进的负载均衡算法。
  • 2021年:HAProxy 2.4发布,进一步优化了性能和安全性,支持更多的现代Web标准。
  • 2022年:HAProxy 2.6发布,增强了对微服务和容器化环境的支持。

主要里程碑总结

  1. 2000年:开始开发。
  2. 2001年:发布第一个版本。
  3. 2011年:引入多核支持。
  4. 2013年:支持SSL终止。
  5. 2017年:支持HTTP/2。
  6. 2019年:HAProxy 2.0发布,支持现代化特性和云环境。

HAProxy在过去20多年中不断发展,逐步成为高性能和高可靠性的负载均衡解决方案。通过不断引入新功能和优化性能,HAProxy在现代Web应用和云环境中扮演着重要角色。

HAProxy工作流程

要深入了解HAProxy的工作流程,可以分解HAProxy的处理流程,包括接收请求、选择后端服务器、转发请求、处理响应、健康检查等步骤。以下是HAProxy的详细工作流程以及调用的具体模块。

HAProxy工作流程

  1. 接收客户端请求:客户端请求到达HAProxy前端。
  2. 解析请求:HAProxy解析请求,确定要使用的前端和后端配置。
  3. 选择后端服务器:根据配置的负载均衡算法,HAProxy从后端服务器池中选择一台服务器。
  4. 转发请求:将客户端请求转发到选定的后端服务器。
  5. 服务器处理请求:后端服务器处理请求并生成响应。
  6. 转发响应:将后端服务器的响应转发回客户端。
  7. 健康检查:定期对后端服务器进行健康检查,确保其可用性。

详细的Mermaid图

日志和监控模块
健康检查模块
轮询
最少连接
源IP哈希
记录请求日志
接收请求模块
记录响应日志
后端服务器处理请求
记录健康检查日志
健康检查
选择后端服务器1
选择后端服务器2
选择后端服务器3
客户端请求
解析请求模块
选择负载均衡算法
转发请求模块
生成响应
转发响应模块
客户端响应

解释

  1. 客户端请求:客户端发出请求,发送到HAProxy。
  2. 接收请求模块:HAProxy接收客户端请求,进入接收请求模块。
  3. 解析请求模块:HAProxy解析请求,确定使用的前端和后端配置。
  4. 选择负载均衡算法:根据配置的负载均衡算法,选择适当的后端服务器。
    • 轮询:选择后端服务器1。
    • 最少连接:选择后端服务器2。
    • 源IP哈希:选择后端服务器3。
  5. 转发请求模块:将客户端请求转发到选定的后端服务器。
  6. 后端服务器处理请求:后端服务器处理请求并生成响应。
  7. 生成响应:后端服务器生成响应。
  8. 转发响应模块:将后端服务器的响应转发回客户端。
  9. 客户端响应:客户端接收到来自HAProxy的响应。

健康检查模块

  • 健康检查:定期对后端服务器进行健康检查,确保其可用性。健康检查模块与选择后端服务器模块(E、F、G)相连接,以确保选择的服务器都是健康的。

日志和监控模块

  • 记录请求日志:在接收请求时记录请求日志。
  • 记录响应日志:在处理响应时记录响应日志。
  • 记录健康检查日志:在进行健康检查时记录健康检查日志。

具体实现原理和调用模块

  • 接收请求模块:负责接受客户端的请求,并传递给解析请求模块。
  • 解析请求模块:解析HTTP请求头、确定目标前端和后端配置。
  • 选择负载均衡算法模块:根据配置选择合适的负载均衡算法,并选择相应的后端服务器。
  • 转发请求模块:将解析后的请求转发到选定的后端服务器。
  • 后端服务器处理请求模块:后端服务器接收请求并生成响应。
  • 生成响应模块:后端服务器生成响应内容并返回给HAProxy。
  • 转发响应模块:将后端服务器生成的响应转发回客户端。
  • 健康检查模块:定期检查后端服务器的健康状态,确保服务器的可用性。
  • 日志和监控模块:记录请求、响应和健康检查的日志,用于监控和调试。

这张详细的Mermaid图和解释展示了HAProxy的工作流程和调用的具体模块,帮助理解其内部工作机制。

和Nginx有什么区别,两者各有什么优势

HAProxy和Nginx都是非常流行的开源负载均衡和反向代理软件,各自有不同的特点和优势。以下是两者的详细对比:

基本介绍

  • Nginx:最初由Igor Sysoev于2004年开发,主要设计用于高性能的HTTP服务器、反向代理服务器以及负载均衡器。Nginx以其高并发处理能力和低资源消耗著称。

  • HAProxy:由Willy Tarreau于2000年开发,主要设计用于提供高可用性、负载均衡和代理服务。HAProxy以其强大的负载均衡和高可用性功能闻名。

工作模式

  • Nginx:基于事件驱动架构,可以高效地处理大量并发连接。支持HTTP、HTTPS、IMAP、POP3、SMTP等多种协议。

  • HAProxy:基于事件驱动和单线程架构,专注于TCP和HTTP协议的负载均衡和代理。能够处理非常高的并发连接和请求速率。

主要特性和优势对比

1. 性能
  • Nginx

    • 高并发处理:能够处理数十万并发连接。
    • 低内存占用:高效的事件驱动模型,低资源消耗。
  • HAProxy

    • 极高的请求处理能力:能够处理每秒数百万的请求。
    • 细粒度的性能优化:专门为高性能和高可用性设计。
2. 配置和灵活性
  • Nginx

    • 灵活的配置文件:支持模块化配置,易于扩展和定制。
    • 广泛的功能支持:包括静态文件服务、反向代理、负载均衡、缓存、SSL终止等。
  • HAProxy

    • 高度优化的配置文件:配置选项多样,针对性能和高可用性进行了优化。
    • 高级负载均衡算法:支持多种负载均衡算法,如轮询、最少连接、源IP哈希等。
3. 健康检查和故障转移
  • Nginx

    • 基础健康检查:支持简单的健康检查功能,通过配置进行状态监控。
  • HAProxy

    • 高级健康检查:支持多种健康检查方法,如TCP、HTTP、SSL等,并可以对健康检查进行细粒度的配置。
    • 自动故障转移:在后端服务器故障时自动进行故障转移,确保服务高可用性。
4. 代理和协议支持
  • Nginx

    • 多协议支持:支持HTTP、HTTPS、IMAP、POP3、SMTP等多种协议。
    • 反向代理和缓存:强大的反向代理和缓存功能,适用于Web加速。
  • HAProxy

    • 专注于TCP和HTTP:主要支持TCP和HTTP协议,专注于高性能的负载均衡和代理。
    • SSL/TLS支持:支持SSL终止和传递,增强了安全性。
5. 扩展性和社区支持
  • Nginx

    • 模块化设计:支持动态加载模块,可以根据需求扩展功能。
    • 活跃的社区和广泛的文档:拥有庞大的用户社区和丰富的文档支持。
  • HAProxy

    • 集中式功能设计:所有功能都直接集成在核心中,无需额外的模块。
    • 专业支持和丰富的文档:活跃的开发者社区和详细的文档支持。

适用场景

  • Nginx

    • Web服务器:适合作为高性能的Web服务器,提供静态内容服务。
    • 反向代理:适合作为反向代理服务器,提供缓存和负载均衡功能。
    • 应用交付控制器:适用于需要高级HTTP处理功能的场景,如Web加速和安全性增强。
  • HAProxy

    • 高性能负载均衡:适用于需要极高请求处理能力和高可用性的负载均衡场景。
    • 全局流量管理:适用于需要复杂流量管理和细粒度控制的环境。
    • 高可用性场景:适用于要求严格的健康检查和故障转移机制的场景。

总结

  • Nginx以其灵活性和多功能性著称,适用于各种Web应用和反向代理场景。它的模块化设计和多协议支持使其在Web服务器领域非常受欢迎。
  • HAProxy以其卓越的负载均衡和高可用性功能闻名,适用于高性能和高可靠性的场景。它专注于TCP和HTTP协议,提供了极高的请求处理能力和细粒度的控制。

两者各有优势,选择使用哪一个主要取决于具体的应用需求和使用场景。在许多情况下,Nginx和HAProxy可以结合使用,发挥各自的优势,提供更强大的解决方案。

HAProxy最佳实践

以下是20项HAProxy生产最佳实践,每项都附有简要介绍:

1. 使用全局日志

配置全局日志以便于故障排除和监控。

globallog 127.0.0.1 local0log 127.0.0.1 local1 notice

2. 限制最大连接数

限制最大连接数以防止资源耗尽。

globalmaxconn 20000

3. 使用非root用户运行

使用非root用户运行HAProxy,提高安全性。

globaluser haproxygroup haproxy

4. 启用守护进程模式

确保HAProxy以守护进程模式运行。

globaldaemon

5. 设置合理的超时时间

设置各种超时时间以避免长时间占用资源。

defaultstimeout connect 5000mstimeout client  50000mstimeout server  50000ms

6. 启用HTTP日志

启用HTTP日志以便于分析请求和响应。

defaultsoption httplog

7. 启用HTTP健康检查

使用HTTP健康检查以确保后端服务器的可用性。

backend http_backoption httpchk GET /health

8. 使用强加密算法

在SSL/TLS配置中使用强加密算法。

frontend https_frontbind *:443 ssl crt /etc/ssl/private/haproxy.pem

9. 启用HTTP/2

启用HTTP/2以提高传输性能。

frontend https_frontbind *:443 ssl crt /etc/ssl/private/haproxy.pem alpn h2,http/1.1

10. 设置负载均衡算法

选择合适的负载均衡算法(如轮询、最少连接)。

backend http_backbalance roundrobin

11. 启用压缩

启用压缩以减少传输数据量。

frontend http_frontcompression algo gzipcompression type text/html text/plain text/css

12. 使用ACL进行访问控制

使用ACL进行细粒度的访问控制。

frontend http_frontacl restricted_page path_beg /adminhttp-request deny if restricted_page

13. 启用连接重用

启用连接重用以减少连接建立的开销。

defaultsoption http-server-closeoption forwardfor except 127.0.0.0/8

14. 使用DNS解析后端服务器

使用DNS解析后端服务器以便动态更新IP。

backend http_backserver-template web 1-5 web.example.com:80 check

15. 启用统计界面

启用统计界面以便监控HAProxy的状态。

frontend statsbind *:8404stats enablestats uri /statsstats realm Haproxy\ Statisticsstats auth admin:password

16. 设置合理的重试次数

设置请求重试次数以提高可用性。

defaultsretries 3

17. 启用监控和报警

配置监控和报警以便快速响应故障。

backend http_backoption log-health-checks

18. 优化连接池

优化连接池以提高性能和资源利用率。

defaultsmaxconn 3000

19. 使用Keepalived实现高可用性

使用Keepalived实现HAProxy的高可用性。

vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass password}virtual_ipaddress {192.168.1.100}
}

20. 定期更新和安全补丁

定期更新HAProxy版本和应用安全补丁以确保安全性和性能。

通过实施这些最佳实践,可以确保HAProxy在生产环境中的高性能、高可用性和安全性。这些实践涵盖了从配置优化到安全性增强的各个方面,帮助你打造一个稳定可靠的HAProxy负载均衡解决方案。

配置示例

下面是一个综合了上述20项最佳实践的完整HAProxy生产配置示例。这个配置文件包含了全局设置、默认设置、前端和后端配置、高可用性、健康检查、日志记录和安全设置等方面。

# 全局设置
globallog 127.0.0.1 local0log 127.0.0.1 local1 noticemaxconn 20000user haproxygroup haproxydaemonstats socket /var/run/haproxy.sock mode 600 level admintune.ssl.default-dh-param 2048# 默认设置
defaultslog globaloption httplogoption dontlognulloption http-server-closeoption forwardfor except 127.0.0.0/8retries 3timeout connect 5000mstimeout client  50000mstimeout server  50000mstimeout http-request 10stimeout queue 1mtimeout http-keep-alive 10stimeout check 10smaxconn 3000# 前端配置(HTTP)
frontend http_frontbind *:80mode httpdefault_backend http_backoption httploglog globalmaxconn 10000# 启用压缩compression algo gzipcompression type text/html text/plain text/css# ACL 进行访问控制acl restricted_page path_beg /adminhttp-request deny if restricted_page# 前端配置(HTTPS)
frontend https_frontbind *:443 ssl crt /etc/ssl/private/haproxy.pem alpn h2,http/1.1mode httpdefault_backend https_backoption httploglog globalmaxconn 10000# 后端配置(HTTP)
backend http_backbalance roundrobinmode httpoption httpchk GET /healthserver web1 192.168.1.1:80 checkserver web2 192.168.1.2:80 check# 启用连接重用option http-server-closeoption forwardfor except 127.0.0.0/8# 启用监控和报警option log-health-checks# 后端配置(HTTPS)
backend https_backbalance roundrobinmode httpoption httpchk GET /healthserver web1 192.168.1.1:443 ssl verify none checkserver web2 192.168.1.2:443 ssl verify none check# 统计界面配置
frontend statsbind *:8404mode httpstats enablestats uri /statsstats realm Haproxy\ Statisticsstats auth admin:passwordstats admin if TRUE# 高可用性配置(Keepalived示例)
# Keepalived配置需要放在Keepalived配置文件中,一般是 /etc/keepalived/keepalived.conf
# 示例:
#
# vrrp_instance VI_1 {
#     state MASTER
#     interface eth0
#     virtual_router_id 51
#     priority 100
#     advert_int 1
#     authentication {
#         auth_type PASS
#         auth_pass password
#     }
#     virtual_ipaddress {
#         192.168.1.100
#     }
# }# 高可用性配置指示
# 请将上述 Keepalived 配置保存为 /etc/keepalived/keepalived.conf 并启动 Keepalived 服务。# 连接池优化
defaultsmaxconn 3000# 使用DNS解析后端服务器
backend dynamic_http_backbalance roundrobinmode httpoption httpchk GET /healthserver-template web 1-5 web.example.com:80 check# 定期更新和安全补丁
# 这个部分需要手动执行,确保你的HAProxy版本是最新的,并定期应用安全补丁。# 完整的配置文件示例

解释

  • 全局设置:定义全局日志、最大连接数、运行用户和组、守护进程模式、统计套接字等。
  • 默认设置:设置日志、HTTP选项、重试次数、超时时间和最大连接数等。
  • 前端配置(HTTP/HTTPS):绑定IP和端口、启用压缩、设置ACL、日志和模式、启用HTTP/2。
  • 后端配置(HTTP/HTTPS):定义负载均衡算法、健康检查、连接重用、启用监控和报警。
  • 统计界面配置:启用并配置统计界面。
  • 高可用性配置:使用Keepalived实现高可用性。
  • 连接池优化:优化连接池设置。
  • 使用DNS解析后端服务器:动态解析后端服务器IP。
  • 定期更新和安全补丁:确保定期更新和应用安全补丁。

通过遵循这些最佳实践,可以确保HAProxy在生产环境中的高性能、高可用性和高安全性。

为什么Nginx比HAProxy更受欢迎

从多个角度来看,Nginx在某些场景下比HAProxy更受欢迎,主要原因如下:

1. 多功能性

  • 反向代理和静态内容服务:Nginx不仅仅是一个负载均衡器,它还可以作为一个高性能的HTTP服务器,能够处理静态内容,提供反向代理功能。
  • 多协议支持:Nginx支持多种协议,包括HTTP、HTTPS、HTTP/2、WebSocket等,而HAProxy主要集中在TCP和HTTP负载均衡。

2. 性能和资源利用

  • 事件驱动架构:Nginx采用事件驱动架构,在处理大量并发连接时表现出色。相比之下,虽然HAProxy在高并发情况下也表现良好,但Nginx的设计使其在处理静态内容和反向代理方面更具优势。
  • 内存和CPU效率:Nginx的设计更加轻量化,在相同的硬件资源下,可以处理更多的请求和连接。

3. 配置简便性

  • 易于配置:Nginx的配置文件语法相对简单且直观,尤其是在处理静态内容和反向代理设置时。
  • 模块化设计:Nginx支持动态加载模块,使其在扩展和配置方面更加灵活。

4. 社区和生态系统

  • 广泛的社区支持:Nginx拥有一个庞大的用户社区,提供丰富的文档、教程和支持,使新用户更容易上手和解决问题。
  • 丰富的插件和模块:Nginx的生态系统中有许多第三方模块和插件,可以扩展其功能,满足各种需求。

5. 功能丰富

  • 广泛的功能集:Nginx原生支持许多功能,如缓存、负载均衡、限速、访问控制和SSL/TLS终止等,这些功能在一个工具中集成,使其在各种场景下都非常实用。
  • 高级功能:Nginx Plus(商业版)提供了一些高级功能,如活动健康检查、动态重新配置、增强的监控和分析等,进一步增强了Nginx的吸引力。

6. 市场接受度和惯性

  • 市场占有率:由于早期的广泛采用,Nginx在市场上已经占据了很大的份额,很多企业和开发者已经习惯于使用Nginx,并形成了使用惯性。
  • 集成支持:许多开源和商业软件,如容器编排工具(Kubernetes)、CI/CD工具和云服务平台,默认或优先支持Nginx作为反向代理或负载均衡解决方案。

7. 可扩展性

  • 自动伸缩支持:在容器化环境和微服务架构中,Nginx能够更好地支持自动伸缩和动态配置,这在现代应用部署中非常重要。
  • 灵活的负载均衡策略:虽然HAProxy也提供多种负载均衡算法,但Nginx在配置和灵活性方面更具优势。

8. 商业支持

  • Nginx Plus:Nginx公司提供的商业支持和增强版(Nginx Plus),提供了更多的企业级功能和技术支持,这对一些企业用户非常有吸引力。
  • 长期支持:Nginx提供了长期支持版本(LTS),使企业用户可以在稳定的版本上获得持续的支持和更新。

总结

Nginx的多功能性、性能优势、配置简便性、广泛的社区支持、丰富的功能集、市场接受度、可扩展性和商业支持使其在许多场景下比HAProxy更受欢迎。虽然HAProxy在负载均衡和高可用性方面表现出色,但Nginx的综合优势使其成为许多用户的首选解决方案。

完。

一个秘密

希望对您有用!关注锅总,及时获得更多花里胡哨的运维实用操作!

图片

锅总个人博客

https://gentlewok.blog.csdn.net/

锅总微信公众号

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/36727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot在线考试 LW +PPT+源码+讲解

第三章 系统分析 3.1 可行性分析 一个完整的系统,可行性分析是必须要有的,因为他关系到系统生存问题,对开发的意义进行分析,能否通过本系统来补充线下在线考试管理模式中的缺限,去解决其中的不足等,通过对…

阿里云开启ssl证书过程记录 NGINX

🤞作者简介:大家好,我是思无邪,2024 毕业生,某厂 Go 开发工程师.。 🐂我的网站:https://www.yishanicode.top/ ,持续更新,希望对你有帮助。 🐞如果文章或网站…

【面试系列】数据科学家 高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…

实验 1 图像基本操作

1. 实验目的 ①熟悉 Photoshop 基本操作; ②掌握 Matlab 、PythonOpenCV 中处理图像的基本方法; ③掌握图像的半调转换和抖动转换。 2. 实验内容 ①Photoshop 基本操作:打开图像文件,选择区域,旋转、裁剪图像、图层…

os实训课程模拟考试(大题复习)

目录 一、Linux操作系统 (1)第1关:Linux初体验 (2)第2关:Linux常用命令 (3)第3关:Linux 查询命令帮助语句 二、Linux之进程管理—(重点) &…

青岛网站建设一般多少钱

青岛网站建设的价格一般会根据网站的规模、功能、设计风格等因素来定,价格会存在着一定的差异。一般来说,一个简单的网站建设可能在数千元到一万元之间,而一个复杂的大型网站建设可能会需要数万元到数十万元不等。所以在选择网站建设服务时&a…

[Cloud Networking] BGP

1. AS (Autonomous System) 由于互联网规模庞大,所以网络会被分为许多 自治系统(AS-Autonomous system)。 所属类型ASN名称IPv4 数量IPv6数量运营商ISPAS3356LEVEL3 - Level 3 Parent, LLC, US29,798,83273,301,954,048互联网企业AS15169GO…

java接口自动化测试,怎样可以快速入门?

从0到1,快速入门Java接口自动化测试 Java接口自动化测试是一种自动化测试的方式,通过模拟用户发送HTTP请求并验证返回结果,来测试接口的正确性。它可以大大提高测试效率和覆盖率,减少人工测试的工作量。本文将从零开始&#xff0…

【NodeJs】入门

目录 一、前导 二、 url模块 三、path模块 四、buffer模块 五、fs模块 六、stream流模块 七、os模块 八、crypto模块 九、util模块 十、http模块 nodejs官网 Node.js — 在任何地方运行 JavaScript nmp是Node.js包管理器,用来安装各种库、框架和工具&…

pdf怎么转换成jpg,本地转换还是在线转换?

PDF(Portable Document Format)和JPG(Joint Photographic Experts Group)这两种文件格式在我们的日常生活和工作中扮演着举足轻重的角色。PDF因其跨平台、保持原样性强的特点,被广泛应用于文件传输和存储;而…

从0到1搭建Java开发环境(内涵超详细教程、软件、提供网盘链接直接一步到位!!!!)

软件部分 需要的软件为下面两个: IDEANavicat 需要的可以自行拿(安装教程和软件): 链接:https://pan.baidu.com/s/1y3RoMt0ZapyJsj3P0DPaVA?pwdxr4p 提取码:xr4p 环境部分 需要的环境为以下几个&…

springboot+vue+mybatis奶茶管理系统+PPT+论文+讲解+售后

由于科学技术的快速发展,人们的生活也与信息时代的发展相关。同时,随着市场化和经济化的发展,国内很多行业已经意识到了这一点,为了提升行业的竞争力,就应当率先把握机会。于是在互联网的默化潜移影响下,餐…

【Qt+opencv】编译、配置opencv

文章目录 前言下载opencv编译opencvmingw版本 总结 前言 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,它包含了超过2500个优化的算法。这些算法可以用来检测和识别面部,识别对象&#x…

UML建模笔记

5个视图 设计。类,接口,对象如何协作。实现。组件,运行程序,文档关系。用例。用户功能期望。进程。并发与同步相关进程,线程。部署。部署到计算机。 建模目的 和客户共创追踪需求变更协同开发进度控制持续迭代测试生…

前端工程化08-新的包管理工具pnpm

1、历史原因解读 pnpm这个东西发布的时间是比较早的,但是在最近一两年的时候才开始流行,甚至是可以说非常的盛行,那么这个包到底是个什么东西的,那么我们先说下,原来的包管理工具到底有那些问题?比如说我们…

MySQL自增主键踩坑记录

对于MySQL的自增主键,本文记录、整理下在工作中实际遇到的问题。 下面示例均基于MySQL 8.0 修改列的类型后,自增属性消失 CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,email VARCHAR(100) NOT NULL );上面的…

论文学习——一种自适应提升的动态多目标优化进化算法

论文题目:A dynamic multi-objective optimization evolutionary algorithm with adaptive boosting 一种自适应提升的动态多目标优化进化算法(Hu Peng a,b,∗, Jianpeng Xiong a, Chen Pi a, Xinyu Zhou c, Zhijian Wu d)IEEE Swarm and Ev…

phpstorm2024代码总是提示“no usages”或者“无用法”解决办法

问题:phpstorm2024使用时,总是会提示无用法,如果没有安装中文语言包的情况下会提示:no usages,如果想关闭怎么办? 编译器右上角点击齿轮进入设置,按照下图的方法点击即可关闭。或者在编译器的“…

机器学习——强化学习中的“策略π”的个人思考

这两天回顾了《西瓜书》中的最后一章——“强化学习”,但是忽然发现之前对于本章中的“策略π”的理解有些偏差,导致我在看值函数公式时有些看不明白。对此,我在网上查了一些资料,但是大部分人都是一笔带过,或者是照本…

c++ 设计模式 的课本范例(中)

(10)单例模式 singleton 。整个应用程序执行时,只有一个单例模式的对象。 class GameConfig // 懒汉式,啥时候用单例对象,啥时候创建。 { private:static GameConfig* ptrGameConfig; // 这些函数都作为私有函数&…