最近准备把我们的后台对接服务器加上负载均衡功能,避免因为某一台对接服务器挂机,导致接入的设备,用户得到有效的实时数据。
大家有什么好的解决方案,或者开源比较成熟的方案吗?
求帮忙推荐一下
ps: 大致流程: 对接服务器负责管理接入的设备,然后再上报信息给中心管理服务器,中心管理服务器再推送给用户。 用户控制的话则先到中心管理服务器->对接服务器->设备。
1
zlfzy 2018-01-24 09:53:46 +08:00
上阿里云的负载均衡就行了
|
2
mewushuang 2018-01-24 10:05:56 +08:00 via Android
keepalived
|
3
maxmin OP |
4
hxndg 2018-01-24 10:13:05 +08:00
我忽然觉得不如直接买台负载均衡设备。。。
比方说绿盟,华耀中国,启明星辰。。 |
6
xenme 2018-01-24 10:16:58 +08:00
开源 HAProxy 这种,商业 NetScaler/F5
|
7
greenskinmonster 2018-01-24 10:17:12 +08:00
搜索 keepalived、haproxy,如果可以用 nginx 反代,那么也可以。
|
8
shooyaaa 2018-01-24 10:23:05 +08:00
量不是巨大的话用 nginx
|
11
maxmin OP |
12
kkk330 2018-01-24 10:31:42 +08:00
lvs
|
13
hxndg 2018-01-24 11:04:51 +08:00
@maxmin 我又想了一下,感觉你这个不是负载均衡。
因为负载均衡是不涉及服务器上的数据的,你可能需要看一下灾备备份的东西,多机热启等等。 |
14
imherer 2018-01-24 11:07:39 +08:00
nginx 吧
|
15
maxmin OP @hxndg 数据的话,只是交互就可以,切换服务器后,同步就可以,灾备也会在其中之一的。
做这个主要是担心某个时刻服务器挂机了,其他服务器能接管工作。 |
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% 左右的性能),『缓存』可谓一招鲜(然后你就有了数据一致性的问题,这又是一大块); - 异地灾备:可以用多级主从做,不要死磕主数据库。更多的我也不知道了。 - 多活:这是个复杂的活儿。 - 自动化:尽量降低人为操作,把各种任务都自动化,自动部署、自动配置、自动升级 /回滚、自动巡检。。。 以上都是脸滚键盘打出的字。 |
17
hxndg 2018-01-24 15:16:02 +08:00 via Android
@soli 你这是一般方案么?太复杂了,在我看来楼主只要把数据分离出来,服务器可用性据我所知 F5 是能做健康检查的。
|
18
zhouwei520 2018-01-24 16:21:41 +08:00
@soli 不是很懂,感觉很厉害的样子
|
19
yingfengi 2018-01-24 16:38:05 +08:00 via Android
sangfor AD 应用交付
就是有点贵 |
20
mumonitor 2018-01-24 17:43:52 +08:00
开源自建:
keepalived/LVS + Nginx keepalived/LVS + Haproxy |
21
maxmin OP |
22
julyclyde 2018-01-25 12:42:43 +08:00
什么叫“避免因为某一台对接服务器挂机,导致接入的设备,用户得到有效的实时数据。”
|