关于负载均衡方案

2018-01-24 09:50:54 +08:00
 maxmin

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

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

求帮忙推荐一下

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

3674 次点击
所在节点    问与答
23 条回复
zlfzy
2018-01-24 09:53:46 +08:00
上阿里云的负载均衡就行了
mewushuang
2018-01-24 10:05:56 +08:00
keepalived
maxmin
2018-01-24 10:10:28 +08:00
@zlfzy 局域网。不适合用阿里云。

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


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

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

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

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

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

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

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

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



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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/425449

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX