可扩展高可用负载均衡网站架构设计方案

lonelyxmas lonelyxmas     2023-02-24     512

关键词:

原文:可扩展、高可用、负载均衡网站架构设计方案

可扩展、高可用、负载均衡网站架构设计方案
作者:田逸([email protected]) 本作品已刊登在《IT实验室周报》第6期第6版
基本需求:
1、  高可用性:将停止服务时间降低到最低甚至是不间断服务
2、  可扩展性:随着访问的增加,系统具备良好的伸缩能力
3、  可视性:系统、服务的状态处于一个实时的监控之下
4、  高性能高可靠性:经过优化的体系结构及合理的备份策略
5、  安全性:结构上的安全及主机的安全策略
 
基本思路
1、对于访问频繁,用户量大的对象(bbs,blog)采用某种合理的方式负载到多个服务器上。把数据库独立出来,准备2mysql数据库,以实现主从复制,即减轻负载,又提高了可靠性。更近一步,使用mysql proxy技术,实现主从服务器的读写分离,大大提高这个系统的性能和负载能力。
2、数据库与外部网络隔离,只允许web服务器(bbs,blog等)通过私有地址方式访问。这样就提高了数据库的安全性,同时也节省了宝贵的带宽。
3、部署监控系统,通过监控主机存活、服务、主机资源,实时把系统的健康状态置于可视状态,对系统的运营状态心中有数。
4、备份是想都不用想的事情,使用单独的服务器集中备份,是一个比较不错的主意。
 
拓扑结构
 
 
业务逻辑
 
 
 
技术实现
1、负载均衡。2台同样配置的linux服务器,内核支持lvs,配置keepalived工具,即可实现负载转发。一旦其后的真实服务器出现故障,keepalived会自动把故障机器从转发队列删除掉,等到故障修复,它又会自动把真实服务器的地址加入转发列表。由于lvs支持会话保持,因此对于bbs 这样的应用,一点也不用担心其登录丢失。
2mysql主从复制。即保证数据的安全,又提高了访问性能。我们在前端的每个web服务器上加入mysql proxy这个工具,即可期待实现读写的自动分离,让写的操作发生在主数据库,让查询这类读操作发生在从数据库。
3nagios是一个开源的,受广泛欢迎的监控平台。它可对主机的存活、系统资源(磁盘空间、负载等)、网络服务进行实时监控。一旦探测到故障,将自动发送邮件(短信)通知故障。
4、备份。包括web数据和数据库服务器的备份。对于web服务而言,GNU tar即可实现备份的一切愿望。简单的设置一下crontab 就可以让系统在我们做梦的时刻老老实实的帮我们备份了。但是,由于空间的限制,不可能一直备份下去,所以要做一个合适的策略,以不断的用新的备份去替换陈旧的备份数据;多少天合适?看磁盘容量吧。对于数据库,先mysqldump一下,再tar.完成这些工作后把备份文件传输到备份服务器集中。一个比较省事的方法是把备份服务器以NFS方式挂接到web服务器及数据库服务器。
5web服务器。至少包括apachemysql proxy这两个组件。Apachebbsblog的容器,以虚拟机方式把用户的请求转发到bbs目录或blog目录。
6、安全措施。包含两层安全,一层是主机本身,另一层是结构(mysql从外部网络隔离)。实践证明,iptables是一个非常值得信赖的防火墙工具。在实际应用中,采取先关门后开窗的策略,大大增强系统的安全性。
 
组件
一、 硬件: 负载均衡2(dell 1950),web服务器2-3(dell1950),数据库2(dell 2950),存储NAS(5T格式化后容量),备份4u服务器(带磁盘阵列5T容量),监控服务器1(dell1850).
二、 软件:操作系统centos 5(定制安装),负载均衡ipvsadmkeepalived,监控nagios,web服务apache+php等,数据库mysql,数据库代理mysql proxy.
 
进度安排
1、  lvs负载均衡配置及测试:2-3
2、  web服务器配置:2-3
3、  mysql主从服务器配置:1-3
4、  web数据迁移:1
5、  数据库数据迁移:2
6、  上线测试:1-2
7、  正式上线:2
 
 
keepalived.conf
! Configuration File for keepalived
global_defs
router_id LVS_DEVEL
 
vrrp_instance VI_1
    state  master
    interface eth0
    virtual_router_id 59
    priority 100
    advert_int 1
    authentication
        auth_type PASS
        auth_pass 1111
        
  virtual_ipaddress
  61.61.61.100
  #61.61.61.101
 
 
virtual_server 61.61.61.100 80
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP
real_server 61.61.61.102 80
        weight 100
        TCP_CHECK
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
       
   
    real_server 61.61.61.103 80
        weight 100
        TCP_CHECK
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
       
    
   
 
真实服务器虚拟ip设置脚本
#!/bin/bash
#description : start realserver
VIP=61.61.61.100
./etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 start|stop"
exit 1
esac

本文出自 “sery” 博客,请务必保留此出处http://sery.blog.51cto.com/10037/85910


























java架构师大型分布式综合项目实战,高并发,集群,高可用,程序设计,性能优化,架构设计,负载均衡,大数据量

...i"!important}h1{color:#FF0}15套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Springboot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程 视频课程包含:高级Java架构师包含:Springboot、Spring& 查看详情

实现基于haproxy+keepalived负载均衡高可用架构

1.项目介绍:上上期我们实现了keepalived主从高可用集群网站架构,随着公司业务的发展,公司负载均衡服务已经实现四层负载均衡,但业务的复杂程度提升,公司要求把mobile手机站点作为单独的服务提供,不在和pc站点一起提供... 查看详情

项目实战3—keepalived实现高可用

实现基于Keepalived高可用集群网站架构  环境:随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展,后端节点已经通过集群技术保障了可用性,... 查看详情

负载均衡架构方案

负载均衡器1、硬件负载均衡F5BIG-IPCitrixNetScalerArray2、软件负载均衡LVSNginx及HAProxy3、高可用软件HeartbeatKeepalivedLinux集群架构DNS轮询LVS+KeepalivedNginx/HAProxy+KeepalivedDRBD+Heartbeat 查看详情

应用架构设计之学习路线

...的流量分发控制服务。用户可以通过负载均衡的流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。阿里云负载均衡主要功能:负载均衡服务通过设置虚拟服务地址(IP),将多台云服务器ECS实例... 查看详情

跨园区容灾,升级不停服——高可用负载均衡集群实践

对于云计算行业来说,云服务的可用性和可扩展性是的检测其服务质量的重要标准,也是最受用户关注的两大难题。各云计算厂商针对容灾、升级等需求的解决方案,最能够体现其底层架构的实力。腾讯云基于基础架构的优势,... 查看详情

activemq实现负载均衡+高可用部署方案

一、架构和技术介绍1、简介ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。完全支持JMS1.1和J2EE1.4规范的JMSProvider实现2、activemq的特性1.多种语言和协议编写客户端。语言:Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议:OpenWire,Stom... 查看详情

关于高可用负载均衡的探索

...对运维友好(傻瓜高效)、对架构友好(追溯监控)的高可用状态。搜索微信号RancherLabs,添加Rancher小助手为好友,可加入官方技术交流群,实时参加下一次分享~引言我们今天要说的是一个老生常谈的问题:负载均衡。有点运... 查看详情

高并发高可用架构设计之简介

设计一个好的架构需要满足:高并发、高性能、高可用三个条件。举一个实际的例子,如高并发方面要求QPS大于10万;高性能方面要求请求延迟小于100ms;高可用方面要高于99.99%。注:QPS(QueryPerSecond):每秒请求数,就是说服务... 查看详情

高并发高可用架构设计之简介

设计一个好的架构需要满足:高并发、高性能、高可用三个条件。举一个实际的例子,如高并发方面要求QPS大于10万;高性能方面要求请求延迟小于100ms;高可用方面要高于99.99%。注:QPS(QueryPerSecond):每秒请求数,就是说服务... 查看详情

高可用负载均衡架构

高可用负载均衡架构 1     前言1.1 LVS介绍LVS是LinuxVirtualServer的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一... 查看详情

架构设计:负载均衡层设计方案之负载均衡技术总结篇

...这篇文章我们对前面的知识点进行总结,并有意进行一些扩展,以便于各位 查看详情

架构设计:负载均衡层设计方案之负载均衡技术总结篇

...这篇文章我们对前面的知识点进行总结,并有意进行一些扩展,以便于各位 查看详情

activemq实现负载均衡+高可用部署方案

一、架构和技术介绍1、简介ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。完全支持JMS1.1和J2EE1.4规范的JMSProvider实现2、activemq的特性1. 多种语言和协议编写客户端。语言:Java,C,C++,C#,Ruby,Perl,Python,PHP。应用协议:O... 查看详情

跨园区容灾,升级不停服:高可用负载均衡集群实践

...作者:方坤丁对于云计算行业来说,云服务的可用性和可扩展性是的检测其服务质量的重要标准,也是最受用户关注的两大难题。各云计算厂商针对容灾、升级等需求的解决方案,最能够体现其底层架构的实力。腾讯云基于基础... 查看详情

《大型网站技术架构》核心原理与案例分析

...网站整体架构。  第二篇,从性能、可用性、伸缩性、扩展性、安全性这五个要素方面详细描述网站架构核心原理,其中重要的负载均衡、异步处理、分布式缓存等技术方案又在不同章节从多角度进行描述。  第三篇,通过... 查看详情

成为架构师课程系列高并发系统设计的三大目标:高性能高可用可扩展

...能?#高并发系统设计的三大目标:高性能、高可用、可扩展高并发, 是指运用设计手段让系统能够处理更多的用户并发请求,也就是承担更大的流量。它是一切架构设计的背景和前提,脱离了它去谈性能和可用性是没有意... 查看详情

大型电商网站系统架构分层设计

...构设计是非常有必要的。网站架构一般分成网页缓存层、负载均衡层、Web服务器层、文件服务器层及数据库层这五层。1、网页缓存层网页缓存层,比如CDN的租赁,专业CDN公司的Cache缓存服务都是自研的(底层开发一般是C语言)... 查看详情