关于负载均衡方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maxmin
V2EX    问与答

关于负载均衡方案

  •  
  • &bsp; maxmin 2018-01-24 09:50:54 +08:00 4085 次点击
    这是一个创建于 2822 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近准备把我们的后台对接服务器加上负载均衡功能,避免因为某一台对接服务器挂机,导致接入的设备,用户得到有效的实时数据。

    大家有什么好的解决方案,或者开源比较成熟的方案吗?

    求帮忙推荐一下

    ps: 大致流程: 对接服务器负责管理接入的设备,然后再上报信息给中心管理服务器,中心管理服务器再推送给用户。 用户控制的话则先到中心管理服务器->对接服务器->设备。

    23 条回复    2018-01-25 14:19:29 +08:00
    zlfzy
        1
    zlfzy  
       2018-01-24 09:53:46 +08:00
    上阿里云的负载均衡就行了
    mewushuang
        2
    mewushuang  
       2018-01-24 10:05:56 +08:00 via Android
    keepalived
    maxmin
        3
    maxmin  
    OP
       2018-01-24 10:10:28 +08:00
    @zlfzy 局域网。不适合用阿里云。

    @mewushuang 啥意思?
    hxndg
        4
    hxndg  
       2018-01-24 10:13:05 +08:00
    我忽然觉得不如直接买台负载均衡设备。。。
    比方说绿盟,华耀中国,启明星辰。。
    maxmin
        5
    maxmin  
    OP
       2018-01-24 10:15:27 +08:00
    @hxndg 之前已经买过 F5, 有些时候场景不适用,所以还得自己来搞一搞。
    xenme
        6
    xenme  
       2018-01-24 10:16:58 +08:00
    开源 HAProxy 这种,商业 NetScaler/F5
    greenskinmonster
        7
    greenskinonster  
       2018-01-24 10:17:12 +08:00
    搜索 keepalived、haproxy,如果可以用 nginx 反代,那么也可以。
    shooyaaa
        8
    shooyaaa  
       2018-01-24 10:23:05 +08:00
    量不是巨大的话用 nginx
    zlfzy
        9
    zlfzy  
       2018-01-24 10:24:01 +08:00
    @maxmin 一般来说 nginx 够你用了
    hxndg
        10
    hxndg  
       2018-01-24 10:26:44 +08:00
    @maxmin 你是要哪种负载均衡? rr, cookie, ss?
    maxmin
        11
    maxmin  
    OP
       2018-01-24 10:30:29 +08:00
    @zlfzy @shooyaaa 服务器管理的设备有两种注册方式,一种设备主动向服务器注册的,一种是服务器向设备发起连接的,这种情况下,nginx 的负载均衡支持吗?


    @hxndg 主要为了防止工作期间某一个服务器挂机了,其他备用服务器能把设备信息同步过来,提供给用户 7*24 的管理,控制。
    kkk330
        12
    kkk330  
       2018-01-24 10:31:42 +08:00
    lvs
    hxndg
        13
    hxndg  
       2018-01-24 11:04:51 +08:00
    @maxmin 我又想了一下,感觉你这个不是负载均衡。
    因为负载均衡是不涉及服务器上的数据的,你可能需要看一下灾备备份的东西,多机热启等等。
    imherer
        14
    imherer  
       2018-01-24 11:07:39 +08:00
    nginx 吧
    maxmin
        15
    maxmin  
    OP
       2018-01-24 11:17:50 +08:00
    @hxndg 数据的话,只是交互就可以,切换服务器后,同步就可以,灾备也会在其中之一的。
    做这个主要是担心某个时刻服务器挂机了,其他服务器能接管工作。
    soli
        16
    soli  
       2018-01-24 12:30:20 +08:00   2
    看你的描述应该是至少两方面的需求:

    1. 负载均衡,LB (Load Balancing)
    2. 高可用,HA (High Availability)

    把问题分拆成这两方面的,各个击破的话,就比较容易和清晰了。

    不过,我还是综合起来说一个一般性方案吧。你可以按需求进行取舍其中的某一环:

    - 前面上智能 DNS,往后依次是 LVS、HAProxy/Keepalived、Nginx 反代、对接服务器;
    - 对接服务器最好拆分成两层:前置机(负责维持连接、会话)和转发机(负责协议解析、数据转发);
    - 前置机与转发机、转发机与中心管理服务器之间可用简单的一致性哈希做负载均衡(如果机器配置不同,可以加上权重);
    - 上 Zookeeper 做配置管理、服务监听、服务发现、故障转移等;

    上面这一套下来,应该满足你描述中的需求了,并具有了一定的高可靠和可扩展能力。

    然后,你可能就会又有了下面的需求:

    - 高性能:提高性能除了优化底层服务之外(比如自己轮个简化版的 nginx,提高 20% 左右的性能),『缓存』可谓一招鲜(然后你就有了数据一致性的问题,这又是一大块);
    - 异地灾备:可以用多级主从做,不要死磕主数据库。更多的我也不知道了。
    - 多活:这是个复杂的活儿。
    - 自动化:尽量降低人为操作,把各种任务都自动化,自动部署、自动配置、自动升级 /回滚、自动巡检。。。



    以上都是脸滚键盘打出的字。
    hxndg
        17
    hxndg  
       2018-01-24 15:16:02 +08:00 via Android
    @soli 你这是一般方案么?太复杂了,在我看来楼主只要把数据分离出来,服务器可用性据我所知 F5 是能做健康检查的。
    zhouwei520
        18
    zhouwei520  
       2018-01-24 16:21:41 +08:00
    @soli 不是很懂,感觉很厉害的样子
    yingfengi
        19
    yingfengi  
       2018-01-24 16:38:05 +08:00 via Android
    sangfor AD 应用交付
    就是有点贵
    mumonitor
        20
    mumonitor  
       2018-01-24 17:43:52 +08:00
    开源自建:
    keepalived/LVS + Nginx
    keepalived/LVS + Haproxy
    maxmin
        21
    maxmin  
    OP
       2018-01-24 17:47:46 +08:00
    @hxndg F5 之前有使用,现在这个场景用不了。
    @soli 这个方案略复杂,我需要消化一下。


    @mumonitor 谢谢,正在看 nginx 的东西,看看合不合适。
    julyclyde
        22
    julyclyde  
       2018-01-25 12:42:43 +08:00
    什么叫“避免因为某一台对接服务器挂机,导致接入的设备,用户得到有效的实时数据。”
    maxmin
        23
    maxmin  
    OP
       2018-01-25 14:19:29 +08:00
    @julyclyde sorry,写漏了。
    避免因为某一台对接服务器挂机,导致接入的设备,用户得不到有效的实时数据。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     897 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 22:05 PVG 06:05 LAX 15:05 JFK 18:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86