LVS持久连接
来源:互联网 发布:python twisted 编辑:程序博客网 时间:2024/06/04 19:07
用户 跟服务器进行交互的时候会产生一个回话信息,叫做session。session的功能可以让服务器快速响应用户请求,记录用户行为等,但是如果是基于LVS的服务端,假如用户请求服务器在当前是由RS1提供,下一刻由RS2提供,那么RS1上的session就会失效,用户刚刚请求的行为还需要重新请求,这对于用户来说是极不方便的,因此企业尝试解决这个问题的办法大概有以下三种,一是做一个专门的session服务器,这样每个RS都可以从session服务器上共享这一会话信息;另一种则是session复制,即每个服务器产生的session都会复制给其他服务器,这样如果在大的站点,各RS是难以承受的;第三种解决方式是session绑定,LVS持久连接,即当用户请求LVS服务时,调度器会首先检查用户连接模板信息,查看是否有该用户的连接信息,如果有且处于长连接的时间范围内,则就会直接将该请求转发给模板上出现的RS。今天先总结LVS的持久连接。
LVS的持久连接一共分为三种方式:
a)PCC:将来自于同一个客户端发往VIP的所有请求统统定向至同一个RS;
b)PPC:将来自于一个客户端发往某VIP的某端口的所有请求统统定向至同一个RS;
c)PFMC: 端口绑定,port affinity:基于防火墙标记,将两个或以上的端口绑定为同一个服务
其实在配置中,跟正常的LVS集群配置没有太大区别,另外持久连接的作用跟调度算法是没有任何关系的,即无论是何种调度算法,对持久连接的方式也是没有任何影响的。
如下:(假如架构图还是如上节的LVS-DR模型架构,即VIP:172.16.0.8,RS1:10.10.10.11,RS2:10.10.10.22)
我定义一个PPC的持久连接
# ipvsadm -A -t 172.16.0.8:80 -s rr -p 120
//注意:如有只使用-p不指定长连接时间,则默认是300秒,单位为秒# ipvsadm -a -t 172.16.0.8:80 -r 10.10.10.11 -g# ipvsadm -a -t 172.16.0.8:80 -r 10.10.10.22 -g
现在定义一个PCC的持久连接,其实基本一样的
# ipvsadm -A -t 172.16.0.8:0 -s wlc -p 120# ipvsadm -a -t 172.16.0.8:0 -r 10.10.10.11 -g# ipvsadm -a -t 172.16.0.8:0 -r 10.10.10.22 -g
也就是说,当我们将LVS服务的端口设置为0时,就是指所有端口,那这样的话,只要是同一个客户端访问这一协议的一系列端口,就一定会被转发到同一个RS上。这样看来,PCC的作用范围似乎太大了,PPC的作用范围似乎有优点小,因此有了第三种长连接办法,即PFMC基于防火墙标记的持久连接,简单的说就是将几个服务绑到一起,用防火墙给他们打个标签,以后但凡是这个标签来的请求,都被转发到同一个RS上,当然这是指在持久连接的有效时间内。
现在定义一个PFMC的持久连接(打算将集群服务的80(http)端口和443(https)端口做成防火墙标记为10的服务)
# iptables -t mangle -A PREROUTING -d 172.16.0.8 -p tcp --dport 80 -j MARK --set-mark 10# iptables -t mangle -A PREROUTING -d 172.16.0.8 -p tcp --dport 443 -j MARK --set-mark 10# service iptables save# ipvsadm -A -f 10 -s wlc -p 120# ipvsadm -a -f 10 -r 10.10.10.11 -g -w 2# ipvsadm -a -f 10 -r 10.10.10.22 -g -w 1
防火墙标记:
# iptables -t mangle -A PREROUTING -d VIP -p tcp --dport CS_Port -j MARK --set-mark # (0-99)
定义集群服务:
# ipvsadm -A -f #
- LVS持久连接
- LVS持久连接
- LVS连接的持久时间
- LVS连接的持久时间
- lvs负载均衡之持久连接
- LVS 的持久连接访问 【摘】
- LVS-nat方式实现持久连接
- LINUX集群--均衡负载 LVS(四) LVS持久连接
- LVS之七:使用持久连接解决session问题
- LVS负载均衡之session解决方案 持久连接
- Lvs-dr(直接路由)集群的实现和防火墙标记实现持久连接
- LVS基于DR模型实现简单负载均衡集群和持久连接
- lvs持久连接及防火墙标记实现多端口绑定服务
- LVS--持久链接(4)
- 持久连接
- LVS 连接数
- lvs连接数监视工具lvs-rrd
- HTTP非持久连接和持久连接
- 线程6:互斥量,解决线程冲突
- 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。
- Orchard编写网上商店模块2
- 011折半插入排序
- 分析运行结果,说明原理。(没有分析结果不得分) import java.util.ArrayList; class Data { int
- LVS持久连接
- php文件上传
- <img src="">标签中的src 找不到 Servlet的路径
- 黑马程序员--转换流、打印流、序列化流、Properties类
- Android UI设计:TextView与EditText
- 自定义字符输入流的包装类,通过这个包装类对底层字符输入流进行包装,让程序通过这个包装类读取某个文本文件(例如,一个java源文件)时,能够在读取的每行前面都加上有行号和冒号。
- Mysql 中的事务
- 虚方法
- 数字视频广播字幕系统(第四章)