参考资料:
全对称结构,没有中央服务器
web方案:
只从本地数据库检索符合条件的记录,给出结果
每次检索都要从本地服务器的海量数据中进行
数据库方案:
数据库保存所有服务器的索引内容
缓存命中率高的记录,减少检索时间
服务器负载分析:
服务器负载假设:
一百个结点,每结点一百人同时使用,每个结点一万条记录
web服务器:同时一百线程在本地数据库服务器检索
数据库服务器:每次接收一百个查询请求;每个请求要从一百万条索引中检索(最坏的情况);缓冲机制可以稍微减轻负担
数据更新 *** 作:
同时更新所有数据库/只更新本地,服务器间相互同步
方案二(数据库保存本地索引及少量缓冲)
每高校作为一个结点
所有结点全对称结构,网络中没有一个中央服务器
web方案:
接收到请求时同时多线程向其它服务器同时搜索(服务器压力问题?)
数据库方案:
数据库保存本地数据
数据库保存一定量缓冲数据,
服务器负载分析:
服务器负载假设:
一百个结点,每结点一百人同时使用
则每个web服务器同时发起一万个线程向其它数据服务器搜索(oops!)
每个数据库服务器会同时接收到一万个查询请求(oops!)
采用学习过程只能少量减少查询请求和web服务器搜索线程
数据更新 *** 作:
只更新本地
方案三(中央服务器方案一)
每高校一个结点
每结点结构相同,连接到同一个中央服务器
web方案
每个查询向中央服务器进行,由中央服务器实行检索,中央服务器返回检索结果
数据库方案
中央数据库保存所有索引信息
每结点可以只用小型数据库保存本地用户和其它信息即可
服务器负载分析:
服务器负载假设:
一百个结点,每结点一百人同时使用,每结点资料记录一万条
web服务器:同时发起一百个进程向中央数据库查询
数据库服务器(中央):同时接收一万条查询请求并返回大容量结果
数据库服务器(结点):少量工作
数据更新 *** 作:
只更新中央服务器
方案四(中央服务器方案二)
每高校一个结点
每结点结构相同,连接到同一中央服务器
web方案:
每个查询向中央服务器进行,由中央服务器根据查询内容进行转发到结点数据库,再由结点数据库返回结果
数据库方案:
中央服务器保存各结点分类信息,根据页面请求的分类转发查询到相应服务器
服务器负载分析:
服务器负载假设:
一百个结点,每结点一百人同时使用,每结点资料记录一万条,每结点一百个类别
web服务器:同时一百个进程向中央数据库查询
数据库服务器(中央):同时接收一万条请求并转发
数据库服务器(结点):从中央服务器接收查询请求,最坏情况下每结点接收到一万条查询请求
数据更新 *** 作:
只更新本地服务器
分类变化时更新中央服务器阅读本文前,需熟悉OSI七层参考模型。
常见的负载均衡设备,有F5,Haproxy,lvs, nginx等。
F5是商用硬件负载均衡,性能很好,但是价格昂贵,除了负载均衡,还有应用交换、会话交换、状态监控等众多功能。
F5一般做四层负载均衡,但也支持七层负载均衡。
Haproxy(以下简称ha)是软件负载均衡,开源,一般做七层负载均衡,但也支持四层负载均衡。
Linux Virtual Server(以下简称lvs)是软件负载均衡,开源,二层或四层负载均衡,已集成到linux内核,自身有完备的热备方案(keepalived+lvs),稳定性极强。
nginx也是软件负载均衡,开源,通过反向代理实现负载均衡,是七层负载均衡,性能不如上面的几个。
tips1
有些公司,测试环境用ha/lvs/nginx,生产环境用F5。
tips2
nginx做web服务器时,一般做静态资源服务器和php的web服务器,所以很多公司,会采用F5+nginx或者ha+nginx的架构
tips3
微服务中的ribbon属于客户端负载均衡,上面的几种都是服务端负载均衡
二层负载均衡
在数据链路层通过修改mac地址实现,如lvs的DR模式(直接路由模式)
三层负载均衡
在网络层通过DNAT协议修改目标地址实现
四层负载均衡
用ip+端口实现请求转发
备注:tcp报文里并没有ip,但是四层负载均衡可以用ip+端口,是因为server可以拿到ip
七层负载均衡
通过重新发起>转发技术是用于解决那些在本地DNS服务器解决不了的查询工作。这个过程涉及到一个DNS服务器与其他DNS服务器直接通信的问题。当本地DNS与外部DNS服务器直接进行通信时,将简化存储在DNS服务器缓冲区中非本地站点的信息。这样将可以使得DNS服务器在解决本地查询工作时的效率会更高。
在Windows 2003之前发行的版本中,对于所有不能解决的查询工作可以指定转发给多个服务器。如果其中一个服务器不可用,这个请求就可以转发到列表中的下一个服务器。这在Windows2003中称为标准转发。
条件转发的定义如下:对于一个特定域的DNS查询信息将向何处转发。这是Windows 2003 DNS 的一个可用的新特征。这种设计的目的是为了实现在多个DNS分区环境中工作,在这种情况下,一个名字空间(例如prepcom)中的系统能够和另一个名字空间(例如testcom)中的系统进行通信。当然,这也可以作为企业内部互联网(两个公司合并的情况)或者互联网中特定场合(与一个商业伙伴共享数据)的解决方案。
设置标准转发
1、点击“开始”菜单中的“管理工具”中的“DNS”
2、在左面板的树层次上选定你的DNS服务器的名字,单击鼠标右键,然后选择“属性
注意:在DNS域名中的“所有其他DNS域名”也都被选定了。当选定这个标准时,所有被添加为转发器的服务器也将用于标准转发(或者也可以用于没有定义条件转发但是包含此域信息的所有其他查询)
在 “选定的域转发器IP地址列表”中输入服务器的IP地址,然后点击“添加”,对应这个IP地址的服务器将作为转发DNS查询的服务器。用于转发的服务器将按照添加的先后顺序存放在列表中
可以选定列表中的IP地址并点击“上移”或者“下移”来适当的调整整个列表顺序。
点击DNS属性对话框下面的“确定”按钮结束设置
在这种情况下,假设两个公司——每个公司都有自己的网络——合并了。他们想要保持各自的网络配置,但是每个网络的域名服务器只能解析自己内部的网络。而有一些应用程序和行为要求每个网络的域名服务器能够解析另一个网络的域名。这就是条件转发的最完美的情形。
1、点击DNS服务器属性的“转发”标签
2、点击在DNS域名列表附近的“新建”。将出现新的转发器的对话框
3在“DNS域”中输入域名服务器,需要转发的查询将被转发到这个服务器,点击“确定”按钮。这个域名就被添加到“转发器”标签下的DNS域名列表中
为该域名指定一个IP地址,单击确定,完成
设置条件转发的其他提示和技巧
条件转发只能用于那些DNS服务器中没有一级或者二级区(zones)的域。这意味着条件转发可以用于具有与本地维护级别相同的区或者级别更高的区的域中。例如,可以对testcom、corptestcom或者prepcom设置条件转发,而exampletestcom是在DNS服务器上维护的本地分区。无论如何,在这种情况下,你都无法对oneexampletestcom 和exampletestcom 设置条件转发。
对于容错性,建议设置条件转发时,每个条件转发都定义多个服务器作为转发器。如果其中一个服务器不可用,那么还有另一个服务器可能可用。
条件转发可以替代以前版本的Windows DNS服务中的二级区(secondary zones),这个第二分区用于解决其他名字空间中的查询问题
1在/etc/namedconf 的options字段增加 options {
directory "/var/named";
dump-file "/var/named/data/cache_dumpdb";
statistics-file "/var/named/data/named_statstxt";
/
If there is a firewall between you and nameservers you want
to talk to, you might need to uncomment the query-source
directive below Previous versions of BIND always asked
questions using port 53, but BIND 81 uses an unprivileged
port by default
/
// query-source address port 53;
forwarders {19216801;192168122;};
};
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)