client到数据库走向:
client通过keepalived虚拟的vip访问两个ngnix中的一个,
ngnix 通过http头文件中的uri 判断以php和jsp结尾的文件交给谁去处理
以php结尾的交给apache php来处理
以jsp结尾的交给tomcat来处理
apache连接mysql 通过amoeba进行分发,写的在主上,读取则在辅上,走得是mysql协议
数据库回client走向:
mysql 通过amoeba再通过apache再通过正在使用的ngnix再到client
HTTP分析:
客户端通过tcp三次握手的方式与keepalived虚拟的ip进行连接,源地址源mac是client端的,目的ip地址是keepalived虚拟的vip,但是取得的mac地址是两台ngnix中的任意一台,这时就访问到了ngnix,再根据client端请求的数据http中的uri头部字段 进行判断,是访问php页面还是jsp页面,访问的是php就交给apache来处理,目的ip地址及mac地址变成了 apache,源ip是keepalived中的vip,源mac是ngnix的,apache收到请求后将目标ip以及目标mac换成client端的,进行数据传递。
mysql分析:
apache连接的是amoeba,通过amoeba中的两个xml文件来进行处理与验证,根据amoeba中的设置规则查看请求是read还是write或者insert,所以就能够对来源请求进行去哪个数据库的读或者是写。
转载于:https://blog.51cto.com/zhmcookie/1081131