高可用&负载均衡常用架构
2015-10-01 14:05
387 查看
下面总结一下常用的高可用复杂均衡架构模式。
1. 客户端切换。
客户端配置多个服务器地址。如果发生某个服务器无法访问或者使用异常,客户端就切换到其它服务器上。
优点:简单,高效,可以在业务层面检测服务可用性
缺点:需要提前配置。
![](http://img.blog.csdn.net/20151001140733159?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Mysql connect 这样做load balance 和failed over .在JDBC连接上可以配置多个服务器。
http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html#connector-j-reference-url-format
2. DNS映射
DNS服务返回不同的IP来达到切换和负载均衡的效果。由于DNS会缓存,实际使用中问题会比较多。.
优点:对使用者是透明,
缺点:由于DNS缓存问题,可能切换不及时
3. 服务注册发现
注册服务器(zookeeper)用来管理当前可以用的服务提供。dubbo使用这种方式来实现。
优点:可以使用复杂的负载均衡策略,可以实现服务路由。
缺点:实现复杂
![](http://img.blog.csdn.net/20151001141054685?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
http://shiyanjun.cn/archives/325.html
4. keepalive+浮动IP
如果正在使用的机器出问题,外网Ip可以根据情况,分配到另外一台主机上。这样IP切换对外部访问者是透明的。不过要实现浮动IP,对底层网络的支持。在现在的云服务器中无法使用。
优点: 高效,对客户端透明
缺点: 对主机网络有要求,无法在云服务器中使用。
![](http://img.blog.csdn.net/20151001140912074?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
5 代理服务器(nginx ,lVS,Haproxy)
![](http://img.blog.csdn.net/20151001140756127?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
代理服务器检测上游服务器是否可用。并且会根据一定策略来路由前端过来的请求。为了避免代理服务器出现故障,导致系统无法被访问。所以一般都要结合keepalive+vip一起使用。
优点: 支持大量服务器,可以配置复杂路由规则
缺点:代理服务器有单点问题,故障检测不及时
1. 客户端切换。
客户端配置多个服务器地址。如果发生某个服务器无法访问或者使用异常,客户端就切换到其它服务器上。
优点:简单,高效,可以在业务层面检测服务可用性
缺点:需要提前配置。
Mysql connect 这样做load balance 和failed over .在JDBC连接上可以配置多个服务器。
http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html#connector-j-reference-url-format
# Connection URL for a server failover setup: jdbc:mysql//primaryhost,secondaryhost1,secondaryhost2/test
2. DNS映射
DNS服务返回不同的IP来达到切换和负载均衡的效果。由于DNS会缓存,实际使用中问题会比较多。.
优点:对使用者是透明,
缺点:由于DNS缓存问题,可能切换不及时
3. 服务注册发现
注册服务器(zookeeper)用来管理当前可以用的服务提供。dubbo使用这种方式来实现。
优点:可以使用复杂的负载均衡策略,可以实现服务路由。
缺点:实现复杂
http://shiyanjun.cn/archives/325.html
4. keepalive+浮动IP
如果正在使用的机器出问题,外网Ip可以根据情况,分配到另外一台主机上。这样IP切换对外部访问者是透明的。不过要实现浮动IP,对底层网络的支持。在现在的云服务器中无法使用。
优点: 高效,对客户端透明
缺点: 对主机网络有要求,无法在云服务器中使用。
5 代理服务器(nginx ,lVS,Haproxy)
代理服务器检测上游服务器是否可用。并且会根据一定策略来路由前端过来的请求。为了避免代理服务器出现故障,导致系统无法被访问。所以一般都要结合keepalive+vip一起使用。
优点: 支持大量服务器,可以配置复杂路由规则
缺点:代理服务器有单点问题,故障检测不及时
相关文章推荐
- 《不花钱学法语》--18个网站,强化法语六力
- 网站白名单过滤Java代码
- ThinkPHP代码和程序目录结构与MVC架构
- 【甘道夫】官方网站MapReduce代码注释具体实例
- 爱奇艺视频下载网站
- 网站并发300就很慢
- Android群英传读书笔记-----控件架构
- 为什么看起来不是很复杂的网站,淘宝、腾讯却需要大量顶尖高手来开发?
- 电商网站如何推广自己呢?
- WebService-架构浅析(一)
- phalapi-入门篇4(国际化高可用和自动生成文档)
- 熟悉xcode及网站推荐
- 基于ActiveMQ的消息中间件系统 OneMM逻辑与物理架构设计详解
- 如何集成varnish到已有的网站架构
- drupal网站安全之文件权限
- Microsoft Azure 部署网站
- Java Web性能测试 - 动态网站测试脚本录制
- IIS 多网站,多域名共用80端口
- 基于LAMP 的NFS数据共享论坛网站 推荐
- 浅谈iOS中MVVM的架构设计与团队协作