haproxy 常用轮询算法及日常配置
1.1 常见轮询算法介绍
roundrobin 基于权重进行轮询,在服务器的处理时间保持均匀分布时,这是最平衡,最公平的算法.此算法是动态的,这表示其权重可以在运行时进行调整.不过在设计上,每个后端服务器仅能最多接受4128个连接 static-rr 基于权重进行轮叫,与roundrobin类似,但是为静态方法,在运行时调整其服务器权重不会生效.不过,其在后端服务器连接数上没有限制 leastconn 新的连接请求被派发至具有最少连接数目的后端服务器.在有着较长时间会话的场景中推荐使用此算法,如LDAP、SQL等;其并不太适用于较短会话的应用层协议,如HTTP.此算法是动态的,可以在运行时调整其权重 first 第一个具有可用连接槽的服务器得到连接.这些服务器将从最小到最大的id选择.一旦一个服务器到达它的最大连接数,下一个服务器将被使用.如果不定义每个服务器的maxconn参数,这个算法是无意义的.使用这个算法的目的是尽量使用最小数量的服务器以便于其他服务器可以在非密集时段待机.这个算法将忽略服务器权重 source 将请求的源地址进行hash运算,并由后端服务器的权重总数相除后派发至某匹配的服务器.这可以使得同一个客户端IP的请求始终被派发至某特定的服务器.不过,当服务器权重总数发生变化时,如某服务器宕机或添加了新的服务器,许多客户端的请求可能会被派发至与此前请求不同的服务器.常用于负载均衡无cookie功能的基于TCP的协议.其默认为静态,不过也可以使用hash-type修改此特性 uri 对URI的左半部分(“?”标记之前的部分)或整个URI进行hash运算,并由服务器的总权重相除后派发至某匹配的服务器.这可以使得对同一个URI的请求总是被派发至某特定的服务器,除非服务器的权重总数发生了变化.此算法常用于代理缓存或反病毒代理以提高缓存的命中率.需要注意的是,此算法仅应用于HTTP后端服务器场景.其默认为静态算法,不过也可以使用hash-type修改此特性 url_param 通过< argument>为URL指定的参数在每个HTTP GET请求中将会被检索.如果找到了指定的参数且其通过等于号”=”被赋予了一个值,那么此值将被执行hash运算并被服务器的总权重相除后派发至某匹配的服务器.此算法可以通过追踪请求中的用户标识进而确保同一个用户ID的请求将被送往同一个特定的服务器,除非服务器的总权重发生了变化.如果某请求中没有出现指定的参数或其没有有效值,则使用轮叫算法对相应请求进行调度.此算法默认为静态的,不过其也可以使用hash-type修改此特性 hdr(< name>) 对于每个HTTP请求,通过< name>指定的HTTP首部将会被检索.如果相应的首部没有出现或其没有有效值,则使用轮询算法对相应请求进行调度.其有一个可选选项”use_domain_only”,可在指定检索类似Host类的首部时仅计算域名部分(比如通过www.baidu.com来说,仅计算”baidu”字符串的hash值)以降低hash算法的运算量.此算法默认为静态的,不过其也可以使用hash-type修改此特性
1.2 线上配置算法使用(仅供参考)
cat /etc/haproxy/haproxy.cfg global #全局定义 chroot /var/lib/haproxy daemon group haproxy log 127.0.0.1 local2 info maxconn 40960 pidfile /var/run/haproxy.pid spread-checks 3 stats socket /var/lib/haproxy/stats user haproxy nbthread 16 defaults log global option tcplog maxconn 40960 mode http option redispatch option http-server-close option dontlognull balance source ## 设置haproxy的调度算法为源地址hash retries 3 # 定义连接后端服务器的失败重连次数,连接失败次数超过此值后将会将对应后端服务器标记为不可用 timeout http-request 40s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout check 10s listen haproxy_stats #haproxy自己定义 mode http bind 10.0.0.191:8888 option httplog stats refresh 30s stats uri /status stats realm Haproxy Manager stats auth xxxx:xxxx #### #BEGIN listen for OpenStack mariadb-server BEGIN# listen mariadb bind mariadb.cty.os:10024 mode tcp balance source #设置haproxy的调度算法为源地址hash option httpchk option tcplog timeout client 1800s timeout server 1800s #监测的间隔时长毫秒 inter 2000 #监测正常多少次后被认为后端服务器是可用的 rise 2 #监测失败多少次后被认为后端服务器是不可用 fall 5 server node-1 10.0.0.180:18913 check port 39000 inter 2000 rise 2 fall 5 server node-2 10.0.0.181:18913 backup check port 39000 inter 2000 rise 2 fall 5 server node-3 10.0.0.182:18913 backup check port 39000 inter 2000 rise 2 fall 5 #END listen for OpenStack mariadb-server END# # BEGIN listen for OpenStack keystone BEGIN listen keystone-admin bind keystone-admin.cty.os:10006 balance roundrobin #基于权重进行轮询 option tcpka option httpchk option httplog server node-1 10.0.0.180:18896 check inter 2000 rise 2 fall 5 server node-2 10.0.0.181:18896 check inter 2000 rise 2 fall 5 server node-3 10.0.0.182:18896 check inter 2000 rise 2 fall 5 listen keystone-public bind keystone-public.cty.os:10008 balance roundrobin option tcpka option httpchk option httplog server node-1 10.0.0.180:18897 check inter 2000 rise 2 fall 5 server node-2 10.0.0.181:18897 check inter 2000 rise 2 fall 5 server node-3 10.0.0.182:18897 check inter 2000 rise 2 fall 5 # END listen for OpenStack keystone END #BEGIN listen for OpenStack Glance BEGIN# listen glance-api bind glance-api.cty.os:10002 balance roundrobin option tcpka option httpchk option httplog server node-1 10.0.0.180:18894 check inter 2000 rise 2 fall 5 server node-2 10.0.0.181:18894 check inter 2000 rise 2 fall 5 server node-3 10.0.0.182:18894 check inter 2000 rise 2 fall 5 #END listen for OpenStack Glance END# #BEGIN listen for OpenStack cinder BEGIN# listen cinder-api bind cinder-api.cty.os:10014 balance roundrobin option tcpka option httpchk option httplog server node-1 10.0.0.180:18900 check inter 2000 rise 2 fall 5 server node-2 10.0.0.181:18900 check inter 2000 rise 2 fall 5 server node-3 10.0.0.182:18900 check inter 2000 rise 2 fall 5 #END listen for OpenStack cinder END# #BEGIN listen for OpenStack neutron-server BEGIN# listen neutron bind neutron-server.cty.os:10018 balance roundrobin option tcpka option httpchk option httplog server node-1 10.0.0.180:18912 check inter 2000 rise 2 fall 5 server node-2 10.0.0.181:18912 check inter 2000 rise 2 fall 5 server node-3 10.0.0.182:18912 check inter 2000 rise 2 fall 5 #END listen for OpenStack neutron-server END# #BEGIN listen for OpenStack nova-api BEGIN# listen nova-api bind nova-api.cty.os:10010 balance roundrobin option tcpka option httpchk option httplog server node-1 10.0.0.180:18898 check inter 2000 rise 2 fall 5 server node-2 10.0.0.181:18898 check inter 2000 rise 2 fall 5 server node-3 10.0.0.182:18898 check inter 2000 rise 2 fall 5 #END listen for OpenStack nova-api END# #BEGIN listen for OpenStack nova-placement BEGIN# listen nova-placement bind nova-placement-api.cty.os:10013 balance roundrobin option tcpka option httplog server node-1 10.0.0.180:18887 check inter 2000 rise 2 fall 5 server node-2 10.0.0.181:18887 check inter 2000 rise 2 fall 5 server node-3 10.0.0.182:18887 check inter 2000 rise 2 fall 5 #END listen for OpenStack nova-placement END# #BEGIN listen for OpenStack nova-metadata-api BEGIN# listen nova-metadata-api bind nova-api-metadata.cty.os:10012 balance roundrobin option tcpka option httplog server node-1 10.0.0.180:18899 check inter 2000 rise 2 fall 5 server node-2 10.0.0.181:18899 check inter 2000 rise 2 fall 5 server node-3 10.0.0.182:18899 check inter 2000 rise 2 fall 5 #END listen for OpenStack nova-metadata-api END#

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JavaWeb项目部署到Linux服务器
写这篇文章的目的就是为了方便以后遇到部署项目时不必要花更多的时间做些麻烦的事了。 虽说当初第一次搭建的时候确实是花了不少时间和精力,但有时用到的又不算多。看起来简单,但实际操作中依然会漏掉,导致部署失败。所以才有了这次写作! 目录 1. 购买服务器、域名并备案 2. 搭建环境 3. 项目部署 项目的数据库文件导入问题 Nginx反向代理通过域名访问项目 1. 购买服务器、域名并备案 阿里云、腾讯云、华为云啥的都可以选择,也不算贵。一般至少购买三个月才能备案。 现在的备案都简化了好多,直接下载APP扫描就能成功备案了,之前我备案的时候差不多花了一个多月了,过程中也出现了些错误,当初还是邮寄幕布拍照上传照片的。 2. 搭建环境 有关这方面的知识,我也不过多写了,可以访问我之前写过的搭建步骤。 Centos7.3云服务器上安装Nginx、MySQL、JDK、Tomcat环境 Centos7.6安装mysql5.5教程 Cenos7.3安装mysql8.0 Centos8.0编译安装稳定最新版的nginx Centos7.3 卸载 Nginx(彻底卸载) 并重新安装 Nginx(RPM源yum...
- 下一篇
特征工程个人笔记
特征工程 1.概述 2方法 2.1去除唯一性 2.2处理缺失值 2.3 特征编码 2.3.1特征二元化 2.3.2独热编码(One-HotEncoding) 2.3.3标签编码 2.3.4多项式特征 2.3.5交叉验证 2.3.6网格搜索 2.3.7管道机制 2.4数据标准化、正则化 2.5 特征选择(降维) 1.概述 在工程实践中,我们得到的数据会存在有缺失值、重复值等,在使用之前需要进行数据预处理。数据预处理没有标准的流程,通常针对不同的任务和数据集属性的不同而不同。数据预处理的常用流程为:去除唯一属性、处理缺失值、属性编码、数据标准化正则化、特征选择、主成分分析。 2方法 2.1去除唯一性 唯一属性通常是一些id属性,这些属性并不能刻画样本自身的分布规律,所以简单地删除这些属性即可。 2.2处理缺失值 缺失值处理的三种方法:直接使用含有缺失值的特征;删除含有缺失值的特征(该方法在包含缺失值的属性含有大量缺失值而仅仅包含极少量有效值时是有效的)→dropna();缺失值补全→fillna( )。判断是否缺失→isnull( ) 常见的缺失值补全方法:均值插补、同类均值插补、建模预测...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Red5直播服务器,属于Java语言的直播服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2全家桶,快速入门学习开发网站教程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长