目前使用 ngxin->frontend->zuul->backend 的架构,目前需要对外提供服务,想问以下两种方案哪种更好,感谢各位大佬指正。
- 方案 1:暴露 zuul 网关地址,弊端是网关的地址可能会变。
- 方案 2:暴露 nginx 地址,弊端是担心前后端请求都经过 nginx,担心压力过大。
目前使用 ngxin->frontend->zuul->backend 的架构,目前需要对外提供服务,想问以下两种方案哪种更好,感谢各位大佬指正。
|
JsonTuJan 13, 2021 via iPhone
1
那为什么不担心网关压力过大呢
|
|
XiaoxiaoPuJan 13, 2021
2
方案 2 。
nginx 是无状态的,单纯转发请求很高效。即使单台 nginx 扛不住,前面还可以接 keepalived 做横向扩展。 |
|
akiraJan 13, 2021
3
2 的弊端 是 2 个方案都存在的,所以选 2
|
|
MarvinFJan 14, 2021
4
之前在公司要求: 负载均衡器-> 静态资源 / spring cloud gateway
对应的应该是 nginx->zuul 目前 nginx 还是比各种号称 "超越 nginx"/"堪比 nginx"的, 都要稳一些(爬过坑) |
|
srx1982Jan 14, 2021
5
先说说有多少压力
|
|
fuisJan 14, 2021
6
2
|
|
LokiSharpJan 14, 2021 via iPhone
7
估计一下需求,做一下压力测试就好了吧
|
|
DreamSpaceJan 14, 2021 via Android
8
一般 nginx 不会自己搭,而是买云服务商的负载均衡服务,就算挂了也有人背锅
|
|
desJan 14, 2021 via iPhone
9
f5->nginx->backend
|
|
iphoneXrJan 14, 2021 via iPhone
10
cdn web 防火墙 slb nginx bakend
我有个项目是这样的😀 |
|
xuanbgJan 14, 2021
11
我司是 ngxin->frontend->spring cloud gateway->backend 。需要对外暴露 API,就是 ngxin 加一个 server,转发到 gateway 的事
|
|
misaka19000Jan 14, 2021
13
按照经验来说,担心 Nginx 压力过大都是多余,你的 qps 能到 1000 吗?我怀疑可能 100 都没有
|
|
lvzhiqiangJan 14, 2021
14
选 2,nginx 纯粹做转发,效率和性能 都是杠杠的
|
|
16
1. 单个 Nginx 扛不住,单个 Zuul 一定抗不住。
2. 单个 Zuul 扛不住,可以通过 Nginx 做负载均衡。 3. 单个 Nginx 扛不住,可以在更前面搭建 LVS + Keepalived (LVS 没有流量瓶颈,只做请求转发,Nginx 会有流量瓶颈),然后 LVS 给 Nginx 做负载均衡,Nginx 再给 Zuul 做负载均衡。 4. 如果单个 LVS 还扛不住,用 DNS 服务给 LVS 做负载,如果这个再扛不住,你们需要更资深的人了。 |
|
jorneyrJan 14, 2021
17
但是,你们的数据库扛得住吗?
|
|
jzmwsJan 14, 2021
18
nginx 转到 zuul 或 spring cloud gateway ; 在 zuul 或 gateway 要做鉴权之类的
|
|
daiqiangbudainiuJan 14, 2021
19
@des f5 是啥
|
|
bleepbloopJan 14, 2021
20
MVVM 架构的话,前端放到对象存储上,经 cdn 加速。网关用 nginx 或 zuul,然后接到后端。这样做的话前后端使用不同的 dns 地址。
要做成一样的 dnss 地址的话,都经过 nginx,不用 zuul,但是 nginx 前加上 cdn,前端回源请求会减少很多,不必担心前端带来的压力。 |
|
dorothyRENJan 14, 2021
21
@warcraft1236 #19 硬件负载均衡器
|
|
iphoneXrJan 14, 2021 via iPhone
23
@iphoneXr 其实 slb 也就可以理解为所谓的 keepalive 这些,slb 跑四层转发,nginx 做 7 层代理转发和前端代码。
|
|
jifenggJan 14, 2021
24
方案 2,优点简直一堆。
加一个上面没有提到的,当你要使用 https 的时候,在 nginx 层加就好了。 |
|
fengpan567Jan 14, 2021
25
当然是 2
|
|
zhoulouziJan 14, 2021
26
单个 Nginx 扛不住,单个 Zuul 一定抗不住
|
|
black11blackJan 14, 2021
27
@jorneyr 单纯 echo 的话,你这套负载能力,淘宝双 11 秒杀的并发量应该也能搞定
|
|
DogtlerJan 14, 2021 via Android
28
果断 nginx 代理走起
|
|
xiang0818Jan 14, 2021
29
外部统一做 nginx 转发,然后看情况要不要分前后端 Nginx,后端 nginx 打到对应的网关层
|
|
firebrooJan 14, 2021 via Android
30
Nginx 扛不住,前面加 4 层负载
|