看了一分钟了解负载均衡的文章说说自己的理解,结合之前公司的运作方式
负载均衡是个整体,从用户访问开始到用户收到反馈结束。
1 用户的访问从域名开始,所以负载均衡的入口也是从域名开始的,在域名解析的地方设置 A记录负载均衡
查看了下 dnspod有这个功能,在升级版中,默认免费版是木有的,简单的就是A记录可以设置重复,然后指向多个IP。
2 IP肯定是服务器的IP了,这样就来到了服务器,教程中使用了nginx做反向代理,然后访问apache,最后通过apache来访问网站,
那么 其实apache 也有mod_proxy_balancer这个模块,可以设置 直接实现负载均衡,不过效果不够好,所以都是用nginx做分发,apache做解析PHP。
3 httpd层的解析设置完毕了,那么就到了站点层,这里的站点层意思就是apache到PHP部分的处理,通常用服务连接池来实现。
apache到PHP的解析,开启连接数啥的。
4 那么来到的就是网站层,网站层这里默认是PHP部分,说白了就是程序部分道数据库层的访问
程序部分的逻辑大概就是,怎样能够均分的访问数据库层。比如没有登录的用户,默认可以设置为静态内容,这里就不在叙述。
假设来访的是带有用户ID的请求,
那么大致比如 均分用户ID,比如8个数据服务器,每个进行求余
比如2台数据服务器,那么可以把数字设置为奇数和偶数之类。其实就是尽量的平均分配请求。
5 数据层针对读写,做同步和主从,把查询都放到从服务器中,然后把数据反馈给PHP,呈现给用户。
总之:其实整理需要做负载均衡处理是个整体,主要在域名解析,反向代理,访问数据库 这3大块做均分。 无实际操作经验,欢迎讨论指正。