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

HAproxy群集

HAproxy群集

  • 常见的集群调度器
  • HAproxy 、nginx、LVS区别
    • HAproxy
    • nginx
    • lvs
  • HAproxy介绍
  • HAproxy特点
  • HAproxy常见的负载均衡策略
  • HAproxy会话保持
  • HAproxy配置实例

常见的集群调度器

常见的web集群调度器分为软件和硬件

软件:LVS Haproxy nginx

硬件: F5 Array 梭子鱼 绿盟

HAproxy 、nginx、LVS区别

HAproxy

HAProxy和Nginx是基于第三方应用实现的软负载均衡;

HAProxy和Nginx都可以实现4层和7层技术,HAProxy可提供TCP和HTTP应用的负载均衡综合解决方案;

而HAProxy在状态监测方面功能更丰富、强大,可支持端口、URL、脚本等多种状态检测方式;

HAProxy功能强大,单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。但整体性能低于4层模式的LVS负载均衡;

nginx

基于第三方应用实现软负载均衡,可以实现4层和7层技术;

Nginx主要用于Web服务器或缓存服务器。Nginx的upstream模块虽然也支持群集功能,但是性能没有LVS和Haproxy好,对群集节点健康检查功能不强,只支持通过端口来检测,不支持通过URL来

lvs

LVS基于Linux操作系统内核实现软负载均衡

LVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发

LVS因为工作在ISO模型的第四层,其状态监测功能单一

HAproxy介绍

Haproxy是一款课提供高可用、负载均衡、及基于TCP和http应用的代理软件,通常用于并发大1万以上的web站点。通常这些站点又需要会话保持或七层处理,HAProxy的运行模式使得它可以很简单安全的整合至当前的架构中,同时可以保护web服务器不被暴露到网络上

HAproxy特点

●可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美;
●最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s;
●支持多达8种负载均衡算法
●支持Session会话保持,Cookie的引导;
●支持通过获取指定的url来检测后端服务器的状态;
●支持虚机主机功能,从而实现web负载均衡更加灵活;
●支持连接拒绝、全透明代理等独特的功能;
●拥有强大的ACL支持,用于访问控制;
●支持TCP和HTTP协议的负载均衡转发;
●支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源浪费,让多个请求在一个tcp连接中完成

HAproxy常见的负载均衡策略

(1)roundrobin----------表示简单的轮询
(2)static-rr----------------表示根据权重
(3)leastconn-------------表示最少连接者先处理
(4)source-----------------表示根据请求源IP
(5)uri——————----表示根据请求的URI,做cdn需使用;
(6)url_param————表示根据请求的URl参数’balance url_param’ requires an URL parameter name
(7)hdr(name)——------表示根据HTTP请求头来锁定每一次HTTP请求;
(8)rdp-cookie(name)–表示根据cookie(name)来锁定并哈希每一次TCP请求。

HAproxy会话保持

HAProxy 提供了3种实现会话保持的方式
1)source(源地址hash)
2)设置cookie
3)会话粘性表stick-table

HAproxy配置实例

web1 192.168.65.104
web2 192.168.65.105
tomcat1 192.168.65.102:8080
tomcat2 192.168.65.102:8081
Haproxy 192.168.65.106104
[root@localhost ~]# yum -y install nginx (用 nginx.repo安装的)
[root@localhost ~]# cd /usr/share/nginx.html
[root@localhost html]# mkdir static
[root@localhost html]#echo 'this is web1 page!' >static/test.html
[root@localhost ~]#systemctl start nginx105
[root@localhost ~]# yum -y install nginx (用 nginx.repo安装的)
[root@localhost ~]# cd /usr/share/nginx.html
[root@localhost html]# mkdir static
[root@localhost html]#echo 'this is web2 page!' >static/test.html
[root@localhost ~]#systemctl start nginx102
安装jdk
[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#setenforce 0
[root@localhost ~]#cd /opt
[root@localhost opt]#ls
apache-tomcat-8.5.16.tar.gz  jdk-8u91-linux-x64.tar.gz  rh
[root@localhost opt]#tar xf jdk-8u91-linux-x64.tar.gz
[root@localhost opt]#ls
apache-tomcat-8.5.16.tar.gz  jdk1.8.0_91  jdk-8u91-linux-x64.tar.gz  rh
[root@localhost opt]#mv jdk1.8.0_91/ /usr/local/
[root@localhost opt]#ls /usr/local/
bin  etc  games  include  jdk1.8.0_91  lib  lib64  libexec  sbin  share  src
[root@localhost opt]#cd /etc/profile.d/ #环境变量子配置文件
[root@localhost profile.d]#ls
256term.csh                   colorgrep.csh  flatpak.sh  less.sh        vte.sh
256term.sh                    colorgrep.sh   lang.csh    PackageKit.sh  which2.csh
abrt-console-notification.sh  colorls.csh    lang.sh     vim.csh        which2.sh
bash_completion.sh            colorls.sh     less.csh    vim.sh
[root@localhost profile.d]#vim java.sh
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH[root@localhost profile.d]#source java.sh部署Tomcat
[root@localhost profile.d]#cd /opt
[root@localhost opt]#ls
apache-tomcat-8.5.16.tar.gz  jdk-8u91-linux-x64.tar.gz  rh
[root@localhost opt]#tar xf apache-tomcat-8.5.16.tar.gz
[root@localhost opt]#ls
apache-tomcat-8.5.16  apache-tomcat-8.5.16.tar.gz  jdk-8u91-linux-x64.tar.gz  rh
[root@localhost opt]#cp -a apache-tomcat-8.5.16 /usr/local/tomcat1
[root@localhost opt]#cp -a apache-tomcat-8.5.16 /usr/local/tomcat2
[root@localhost opt]#ls /usr/local/
bin  games    jdk1.8.0_91  lib64    sbin   src      tomcat2
etc  include  lib          libexec  share  tomcat1
[root@localhost opt]#vim /usr/local/tomcat2/conf/server.xml
//修改tomcat2的配置文件
<Server port="8006" shutdown="SHUTDOWN">		
#22行,修改Server prot,默认为8005 -> 修改为8006
<Connector port="8081" protocol="HTTP/1.1"		
#69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
[root@localhost opt]#cd /usr/local/tomcat2
[root@localhost tomcat2]#ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@localhost tomcat2]#cd bin
[root@localhost bin]#ls
bootstrap.jar                 configtest.bat    setclasspath.sh  tomcat-native.tar.gz
catalina.bat                  configtest.sh     shutdown.bat     tool-wrapper.bat
catalina.sh                   daemon.sh         shutdown.sh      tool-wrapper.sh
catalina-tasks.xml            digest.bat        startup.bat      version.bat
commons-daemon.jar            digest.sh         startup.sh       version.sh
commons-daemon-native.tar.gz  setclasspath.bat  tomcat-juli.jar[root@localhost bin]#vim startup.sh
export CATALINA_BASE=/usr/local/tomcat2 #Tomcat存放的目录位置
export CATALINA_HOME=/usr/local/tomcat2
export TOMCAT_HOME=/usr/local/tomcat2[root@localhost bin]#vim shutdown.sh
export CATALINA_BASE=/usr/local/tomcat2
export CATALINA_HOME=/usr/local/tomcat2
export TOMCAT_HOME=/usr/local/tomcat2[root@localhost bin]#cd /usr/local/tomcat1
[root@localhost tomcat1]#ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@localhost tomcat1]#cd bin
[root@localhost bin]#ls
bootstrap.jar                 configtest.bat    setclasspath.sh  tomcat-native.tar.gz
catalina.bat                  configtest.sh     shutdown.bat     tool-wrapper.bat
catalina.sh                   daemon.sh         shutdown.sh      tool-wrapper.sh
catalina-tasks.xml            digest.bat        startup.bat      version.bat
commons-daemon.jar            digest.sh         startup.sh       version.sh
commons-daemon-native.tar.gz  setclasspath.bat  tomcat-juli.jar
[root@localhost bin]#vim startup.sh
export CATALINA_BASE=/usr/local/tomcat1
export CATALINA_HOME=/usr/local/tomcat1
export TOMCAT_HOME=/usr/local/tomcat1
[root@localhost bin]#vim shutdown.sh
export CATALINA_BASE=/usr/local/tomcat1
export CATALINA_HOME=/usr/local/tomcat1
export TOMCAT_HOME=/usr/local/tomcat1[root@localhost bin]#/usr/local/tomcat1/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat1
Using CATALINA_HOME:   /usr/local/tomcat1
Using CATALINA_TMPDIR: /usr/local/tomcat1/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat1/bin/bootstrap.jar:/usr/local/tomcat1/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]#/usr/local/tomcat2/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat2
Using CATALINA_HOME:   /usr/local/tomcat2
Using CATALINA_TMPDIR: /usr/local/tomcat2/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_91/jre
Using CLASSPATH:       /usr/local/tomcat2/bin/bootstrap.jar:/usr/local/tomcat2/bin/tomcat-juli.jar
Tomcat started.[root@localhost bin]#netstat -ltnp |grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      40828/java 
tcp6       0      0 :::8081                 :::*                    LISTEN      40885/java 
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      40828/java 
tcp6       0      0 127.0.0.1:8006          :::*                    LISTEN      40885/java 
tcp6       0      0 :::8009                 :::*                    LISTEN      40828/java 
tcp6       0      0 :::8010                 :::*                    LISTEN      40885/java #编译安装Haproxy
yum install -y zlib-devel openssl-devel pcre-devel systemd-devel[root@localhost opt]# useradd -M -s /sbin/nologin haproxy
[root@localhost opt]# tar xf haproxy-2.8.3.tar.gz
[root@localhost opt]# ls
haproxy-2.8.3  haproxy-2.8.3.tar.gz  rh
[root@localhost opt]# cd haproxy-2.8.3/
[root@localhost haproxy-2.8.3]# make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1[root@localhost haproxy-2.8.3]# make install PREFIX=/usr/local/haproxy
[root@localhost haproxy-2.8.3]# ls
addons       CHANGELOG     examples  LICENSE      reg-tests  tests
admin        CONTRIBUTING  haproxy   MAINTAINERS  scripts    VERDATE
BRANCHES     dev           include   Makefile     src        VERSION
BSDmakefile  doc           INSTALL   README       SUBVERS
[root@localhost haproxy-2.8.3]# cd examples/
[root@localhost examples]# ls
basic-config-edge.cfg  lua                    transparent_proxy.cfg
content-sw-sample.cfg  option-http_proxy.cfg  wurfl-example.cfg
errorfiles             quick-test.cfg
haproxy.init           socks4.cfg
[root@localhost examples]# mkdir /etc/haproxy
[root@localhost examples]# cp quick-test.cfg  /etc/haproxy/haproxy.cfg
[root@localhost examples]# cp haproxy.init  /etc/init.d/haproxy
[root@localhost examples]# cd /etc/haproxy/
[root@localhost haproxy]# ls
haproxy.cfg
[root@localhost haproxy]# cd /etc/init.d/
[root@localhost init.d]# ls
functions  haproxy  netconsole  network  README
[root@localhost init.d]# vim haproxy
[root@localhost init.d]# cd /usr/local/haproxy/
[root@localhost haproxy]# ls
doc  sbin  share
[root@localhost haproxy]# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin
[root@localhost haproxy]# haproxy -v
HAProxy version 2.8.3-86e043a 2023/09/07 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2028.
Known bugs: http://www.haproxy.org/bugs/bugs-2.8.3.html
Running on: Linux 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
[root@localhost haproxy]# chmod +x /etc/init.d/haproxy
[root@localhost haproxy]# chkconfig --add haproxy
[root@localhost haproxy]# chkconfig --list haproxy注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。要列出 systemd 服务,请执行 'systemctl list-unit-files'。查看在具体 target 启用的服务请执行'systemctl list-dependencies [target]'。haproxy         0:关    1:关    2:关    3:关    4:关    5:关    6:关
[root@localhost haproxy]# chkconfig --level 35 haproxy on
[root@localhost haproxy]# chkconfig --list haproxy注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。要列出 systemd 服务,请执行 'systemctl list-unit-files'。查看在具体 target 启用的服务请执行'systemctl list-dependencies [target]'。haproxy         0:关    1:关    2:关    3:开    4:关    5:开    6:关
[root@localhost haproxy]# service haproxy start
Starting haproxy (via systemctl):                          [  确定  ]
[root@localhost haproxy]# netstat -lntp |grep haproxy
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      3110/haproxy
[root@localhost haproxy]# vim haproxy.cfg
global		log 127.0.0.1 local0 infolog 127.0.0.1 local1 warning	maxconn 30000			            #chroot /var/lib/haproxy            pidfile     /var/run/haproxy.piduser haproxygroup haproxydaemon#nbproc 1spread-checks 2defaults   	   log     globalmode    httpoption  http-keep-alive option  forwardfor      option  httplog			option  dontlognulloption  redispatchoption  abortonclosemaxconn 20000			retries 3              #contimeout 5000#clitimeout 50000#srvtimeout 50000timeout http-request 2stimeout queue 3stimeout connect 1stimeout client 10stimeout server 2stimeout http-keep-alive 10stimeout check 2sfrontend mm-httpbind 0.0.0.0:80acl url_static path_beg -i /staticacl url_dynamic path_end -i .jspuse_backend static_backend if url_staticuse_backend dynamic_backend if url_dynamicdefault_backend static_backendbackend static_backendbalance roundrobinoption httpchk GET /index.htmlserver static_inst01 192.168.65.104:80 check inter 2000 rise 2 fall 3server static_inst02 192.168.65.105:80 check inter 2000 rise 2 fall 3
backend dynamic_backendbalance roundrobinoption http-server-closeserver dynamic_inst01 192.168.65.102:8080 checkserver dynamic_inst02 192.168.65.102:8081 checklisten statsbind *:1080stats enablestats refresh 30sstats uri /statsstats realm HAProxy\ Statsstats auth admin:adminservice haproxy restart
Restarting haproxy (via systemctl):                        [  确定  ]
[root@localhost haproxy]# netstat -lntp |grep haproxy
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17869/haproxy
tcp        0      0 0.0.0.0:1080            0.0.0.0:*               LISTEN      17869/haproxy
在网页输入以下网址
http://192.168.65.106/static/test.html
http://192.168.65.106/mm/test.jsp[root@localhost haproxy]# vim haproxy.cfg
backend dynamic_backendbalance roundrobinoption http-server-closecookie HA_STICKY_dy insert indirect nocache#实现会话保持,不能刷新了server dynamic_inst01 192.168.65.102:8080 cookie appserver1 checkserver dynamic_inst02 192.168.65.102:8081 cookie appserver1 check在网页输入以下网址
http://192.168.65.106/static/test.html
http://192.168.65.106/mm/test.jsp

相关文章:

HAproxy群集

HAproxy群集 常见的集群调度器HAproxy 、nginx、LVS区别HAproxynginxlvs HAproxy介绍HAproxy特点HAproxy常见的负载均衡策略HAproxy会话保持HAproxy配置实例 常见的集群调度器 常见的web集群调度器分为软件和硬件 软件&#xff1a;LVS Haproxy nginx 硬件&#xff1a; F5 Ar…...

LeetCode2469. Convert the Temperature

文章目录 一、题目二、题解 一、题目 You are given a non-negative floating point number rounded to two decimal places celsius, that denotes the temperature in Celsius. You should convert Celsius into Kelvin and Fahrenheit and return it as an array ans [ke…...

【ROS2】MOMO的鱼香ROS2(五)ROS2入门篇——ROS2接口与自定义

ROS2接口与自定义 引言1 ROS2自带接口1.1 ROS2通用标准消息包1.2 ROS2传感器消息包1.3 ROS2几何相关消息包 2 ROS2接口介绍2.1 常用CLI命令2.2 原始数据类型与包装类型 3 自定义接口示例3.1 接口定义3.2 自定义接口RCLPY 引言 笔者跟着鱼香ROS的ROS2学习之旅 学习参考&#xf…...

python c语言 代码动态检查,python c语言语法分析

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python c语言 代码动态检查&#xff0c;python c语言语法分析&#xff0c;今天让我们一起来看看吧&#xff01; Source code download: 本文相关源码 初学编程&#xff0c;应该学习哪一门编程语言&#xff0c;有不少人感…...

C++ DAY6 作业

1.用模板类写顺序表 #include <iostream>using namespace std;#define MAXSIZE 10 template <typename T> class Arr {T *data NULL;int len 0; public://构造函数Arr():data(new T){}Arr(T a,int len):data(new T(a)),len(len){}//析构函数~Arr(){delete data;}…...

华为服务器安装银河麒麟V10操作系统(IBMC安装)

iBMC是华为面向服务器全生命周期的服务器嵌入式管理系统。提供硬件状态监控、部署、节能、安全等系列管理工具&#xff0c;标准化接口构建服务器管理更加完善的生态系统。 服务器BMC IP&#xff1a;192.168.2.100 一、准备工作 1、确保本机和服务器BMC管理口在同一网络 2、银…...

macos下php 5.6 7.0 7.4 8.0 8.3 8.4全版本PHP开发环境安装方法

在macos中如果使用brew 官方默认的core tap 只可以安装官方最新的稳定版PHP, 如果想要安装 php 5.6 或者 php 8.4版本的PHP就需要使用第三方的tap , 这里分享一个比较全面的brew tap shivammathur/php 这个tap里面包含了从php5.6到最新版php8.4的所有可用最新版本PHP, 而且是同…...

Chatgpt为什么像打字机逐字输出?磨洋工,防止数据库被盗

在他后台的数据库里肯定是完整的结果,每次只给你一个单词一个单词的输送,一方面是为了耍酷&#xff0c;好像真的是一个人在那给你说话&#xff0c;另一方面也是防止第三方的抄袭者最快速度盗取采集偷走数据库。防止他们的服务器崩溃&#xff0c;可以多收几个月会员费。 都说搞…...

ubuntu 卸载桌面

要卸载Ubuntu上的桌面环境&#xff0c;您可以按照以下步骤进行操作&#xff1a; 登录到您的Ubuntu系统&#xff0c;并打开终端。 确认您当前正在使用的桌面环境。可以运行以下命令来查看已安装的桌面环境&#xff1a; s /usr/share/xsessions/ 根据您当前使用的桌面环境&…...

Linux文件fd剖析

学习之前&#xff0c;首先要认识什么是文件&#xff1f; 空文件也是要在内存中占据空间的&#xff0c;因为它还有属性数据。文件 属性 内容文件操作 对内容 对属性 或者对内容和属性的操作标定一个文件的时候&#xff0c;必须使用&#xff1a;路径文件名&#xff0c;文件具…...

VMWARE ESXi存储多路径策略修改

一、存储多路径介绍 VMware 路径选择插件 (PSP) 负责选择 I/O 请求的物理路径。插件是 VMware NMP 的子模块。NMP 根据设备类型为每个逻辑设备分配默认 PSP。每个PSP 启用并执行相应的路径选择策略。支持的路径选项有以下3种&#xff1a; VMW_PSP_MRU - 最近使用 它将选择在系…...

结构体详解

结构体&#xff1a; 一系列具有相同类型或不同类型的数据构成的数据集合&#xff0c;也叫结构 结构体可以用来封装一些属性来组成新的类型。 结构体的大小&#xff1a; 结构体的大小不是结构体元素单纯相加。内存对齐&#xff08;若计算机使用32位字长的cpu&#xff0c;对32位的…...

前端开发个人简历范本(2024最新版-附模板)

前端开发工程师个人简历范本> 年龄 25岁 性别 男 毕业院校 XX大学 张三 学历 邮箱 leeywai-tools.cn 本科 专业 计算机科学与技术 个人梗概 拥有扎实的前端开发技能和丰富的实践经验 善于与团队合作&#xff0c;适应能力强&#xff0c;能够快速融入团队并贡献自…...

# 编程语言简史

编程语言简史 文章目录 编程语言简史1. python简史1. python发展历程 2. python适用领域1. 优点&#xff1a;2. 缺点&#xff1a;3. 应用领域&#xff1a; 2. java简史1. java发展历程2. java适用领域 3. C简史1. C发展历程2. C使用领域 4. C简史1. C发展历程2. C适用领域 5. C…...

SpringMVC学习与开发(三)

注&#xff1a;此为笔者学习狂神说SpringMVC的笔记&#xff0c;其中包含个人的笔记和理解&#xff0c;仅做学习笔记之用&#xff0c;更多详细资讯请出门左拐B站&#xff1a;狂神说!!! 10、ssm整合 问了一下ChatGPT SSM 是一个基于 Java 的开发框架整合&#xff0c;由 Spring、…...

JAVA对象、List、Map和JSON之间的相互转换

JAVA对象、List、Map和JSON之间的相互转换 1.Java中对象和json互转2.Java中list和json互转3.Java中map和json互转 1.Java中对象和json互转 Object obj new Object(); String objJson JSONObject.toJSONString(obj);//java对象转json Object newObj JSONObject.parseObject(…...

图像分割-漫水填充法 floodFill

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 本文的C#版本请访问&#xff1a;图像分割-漫水填充法 floodFill (C#&#xff09;-CSDN博客 FloodFill方法是一种图像处理算法&#…...

Python open函数详解:打开指定文件与 readline和readlines函数:按行读取文件

Python open函数详解&#xff1a;打开指定文件 掌握了各种操作目录字符串或目录的函数之后&#xff0c;接下来可以准备读写文件了。在进行文件读写之前&#xff0c;首先要打开文件。 Python 提供了一个内置的 open() 函数&#xff0c;该函数用于打开指定文件。 open() 函数的…...

Vue 生命周期有哪些?作用是什么?

什么是vue的生命周期 Vue 实例从开始创建、初始化数据、编译模板、挂载Dom和渲染、更新和渲染、卸载等一系列过程&#xff0c;这是 Vue 的生命周期 vue的生命周期的八个钩子函数 beforeCreat() 创建前 在new一个vue实例后&#xff0c;只有一些默认的生命周期钩子和默认事件&a…...

《Vue3 前端构建工具》 Vue-cli 与 Vite 创建项目的插件和配置对比

前言 2024 年 啦&#xff01;Vue2 也于 2023.12.31 寿终正寝 &#xff01; 然而我的 Vue3 升级一再拖延&#xff08;惭愧不已&#xff09;~ 赶起来吧~ 今天用 vue-cli 和 vite 分别创建了 Vue3 项目&#xff0c;具体实现步骤见如下两篇。 《基于 Vue Cli4.x Vue3 TS styl…...

springboot(ssm中山社区医疗综合服务平台 医疗管理系统 Java系统

springboot(ssm中山社区医疗综合服务平台 医疗管理系统 Java系统 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#x…...

Qt编写的exe程序上添加程序信息

1、qtcreator编写 在pro文件中添加如下信息 # 版本信息 VERSION 4.0.2.666# 图标 RC_ICONS Images/MyApp.ico# 公司名称 QMAKE_TARGET_COMPANY "Digia"# 产品名称 QMAKE_TARGET_PRODUCT "Qt Creator"# 文件说明 QMAKE_TARGET_DESCRIPTION "Qt …...

(一)CarPlay集成开发之概述与环境篇

系列文章目录 第一章 CarPlay集成开发之概述与环境篇 文章目录 系列文章目录概述开发环境依赖项总结 概述 CarPlay是由苹果公司开发的一款集成在iOS系统中&#xff0c;用于运行在已完成对接该系统的汽车中控台&#xff0c;仪表盘上的车载系统&#xff0c;该系统通过USB或者WI…...

js文件上传 分片上传/断点续传/极速秒传

(极速秒传)利用md5判断上传的文件是否存在 MD5信息摘要算法&#xff0c;一种被广泛使用的密码散列函数&#xff0c;可以产生出一个128位&#xff08;16字节&#xff09;的散列值&#xff08;hash value&#xff09;&#xff0c;用于确保信息传输完整一致。 每一个文件都会生成…...

mysql 通过 binglog 恢复数据

mysql 通过 binglog 恢复数据 测试数据库版本: 8.0.5 查看当前是否开启 进入数据库,查看当前是否开启了 binglog 的相关设置: mysql> show variables like log_bin%; -------------------------------------------------------------- | Variable_name …...

【REST2SQL】01RDB关系型数据库REST初设计

0 概念 REST2SQL实现连接数据库&#xff0c;数据库的表或视图即可提供REST的GET\POST\PUT\DELETE请求&#xff0c;SQL可执行SQLECT\INSERT\UPDATE\DELETE语句。 0.1 RDB Relational Database 即关系型数据库&#xff08;简称 RDB&#xff09;是一种以关系&#xff08;即表格…...

图像识别原理

图像识别是计算机视觉领域中的一个重要任务&#xff0c;其目标是使计算机系统能够理解和解释图像中的信息。以下是图像识别的基本原理&#xff1a; 1. 数据采集&#xff1a;首先&#xff0c;需要获取图像数据。这可以通过摄像头、传感器、扫描仪等设备来实现。图像可以是静态的…...

共识算法介绍

文章目录 共识算法Paxos 算法三种角色一致性提交算法prepare 阶段accept 阶段commit 阶段 CAP 定理BASE 理论Zookeeper 算法实现三类角色三个数据三种模式四种状态消息广播算法Leader选举算法 共识算法 Paxos 算法 Paxos 算法是莱斯利兰伯特(Leslie Lamport)1990 年提出的一种…...

Gen-AI 的知识图和分析(无需图数据库)

如今&#xff0c;图表比以往任何时候都更加相关和有用。由于目前正在发生的人工智能革命&#xff0c;工程师们正在考虑围绕 Gen-AI 的机会&#xff0c;利用具有动态提示、数据基础和屏蔽功能的开放 Gen-AI 解决方案&#xff0c;这进一步促使他们思考知识图谱等有效的解决方案。…...

flutter 安卓使用高德插件黑屏

地址 https://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project 下面介绍的方式是Native配置 sdk&#xff0c;也就是需要手动下载到本地在引入的方式 1、添加 jar 文件&#xff1a; 将下载的地图 SDK 的 jar包复制到工程&#xff08;此处截…...

海城网站制作建设/哈尔滨最新消息

一、Amoeba的简述&#xff1a;[来自百度百科] Amoeba是一个以MySQL为底层数据存储&#xff0c;并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求&#xff0c;依据用户事先设置的规则&#xff0c;将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离…...

网站安装教程/郑州发布最新通告

目录 0 分区表 1 分区表基本操作 2 二级分区 3 动态分区调整 0 分区表 分区表实际上就是对应一个HDFS文件系统上的独立的文件夹&#xff0c;该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录&#xff0c;把一个大的数据集根据业务需要分割成小的数据集。在查询…...

网络推广教育机构/seo网页优化工具

1: 查询错误日志地址show variables like log_error;2&#xff1a;查询慢查询是否开启show variables like log_slow_queries;3&#xff1a;查询慢查询时间show variables like long_query_time;4&#xff1a;设置慢查询[mysqld]slow_query_logonlog_slow_queriesonslow_launch…...

网站排名查询平台/中国seo排行榜

CentOS7——阿里云ESC 安装 Docker 步骤&#xff1a;1. 安装 Docker2. 配置阿里镜像源3. Docker 服务常用命令1. 安装 Docker # 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加软件源信息 sudo yum-config-manager --add-re…...

哪里有做兼职的网站/广告公司招聘

介绍 FAB&#xff0c;在Material Design中&#xff0c;一般用来处理界面中最常用&#xff0c;最基础的用户动作。它一般出现在屏幕内容的前面&#xff0c;通常是一个圆形&#xff0c;中间有一个图标。 FAB有三种类型&#xff1a;regular, mini, and extended。不要强行使用FAB…...

我想做/seo诊断

HTMLTestRunner下载地址&#xff1a; python 2: http://tungwaiyip.info/software/HTMLTestRunner.html python 3:http://pan.baidu.com/s/1dEZQ0pz 下载后放到路径&#xff1a;${python}\Lib\site-packages\ 在cmd引入HTMLTestRunner 不报错说明成功 3.方法一&#xff1a; …...