目前使用 ngxin->frontend->zuul->backend 的架构,目前需要对外提供服务,想问以下两种方案哪种更好,感谢各位大佬指正。
![]() | 1 JsonTu 2021-01-13 22:42:16 +08:00 via iPhone 那为什么不担心网关压力过大呢 |
![]() | 2 XiaoxiaoPu 2021-01-13 23:07:38 +08:00 方案 2 。 nginx 是无状态的,单纯转发请求很高效。即使单台 nginx 扛不住,前面还可以接 keepalived 做横向扩展。 |
![]() | 3 akira 2021-01-13 23:32:15 +08:00 2 的弊端 是 2 个方案都存在的,所以选 2 |
![]() | 4 MarvinF 2021-01-14 00:01:50 +08:00 之前在公司要求: 负载均衡器-> 静态资源 / spring cloud gateway 对应的应该是 nginx->zuul 目前 nginx 还是比各种号称 "超越 nginx"/"堪比 nginx"的, 都要稳一些(爬过坑) |
5 srx1982 2021-01-14 00:04:19 +08:00 先说说有多少压力 |
![]() | 6 fuis 2021-01-14 00:55:48 +08:00 2 |
![]() | 7 LokiSharp 2021-01-14 02:41:57 +08:00 via iPhone 估计一下需求,做一下压力测试就好了吧 |
![]() | 8 DreamSpace 2021-01-14 07:13:23 +08:00 via Android 一般 nginx 不会自己搭,而是买云服务商的负载均衡服务,就算挂了也有人背锅 |
![]() | 9 des 2021-01-14 08:08:10 +08:00 via iPhone f5->nginx->backend |
10 iphoneXr 2021-01-14 08:29:31 +08:00 via iPhone cdn web 防火墙 slb nginx bakend 我有个项目是这样的 |
![]() | 11 xuanbg 2021-01-14 09:04:09 +08:00 我司是 ngxin->frontend->spring cloud gateway->backend 。需要对外暴露 API,就是 ngxin 加一个 server,转发到 gateway 的事 |
![]() | 13 misaka19000 2021-01-14 09:17:47 +08:00 按照经验来说,担心 Nginx 压力过大都是多余,你的 qps 能到 1000 吗?我怀疑可能 100 都没有 |
![]() | 14 lvzhiqiang 2021-01-14 09:19:34 +08:00 选 2,nginx 纯粹做转发,效率和性能 都是杠杠的 |
16 jorneyr 2021-01-14 09:24:50 +08:00 ![]() 1. 单个 Nginx 扛不住,单个 Zuul 一定抗不住。 2. 单个 Zuul 扛不住,可以通过 Nginx 做负载均衡。 3. 单个 Nginx 扛不住,可以在更前面搭建 LVS + Keepalived (LVS 没有流量瓶颈,只做请求转发,Nginx 会有流量瓶颈),然后 LVS 给 Nginx 做负载均衡,Nginx 再给 Zuul 做负载均衡。 4. 如果单个 LVS 还扛不住,用 DNS 服务给 LVS 做负载,如果这个再扛不住,你们需要更资深的人了。 |
17 jorneyr 2021-01-14 09:25:55 +08:00 但是,你们的数据库扛得住吗? |
18 jzmws 2021-01-14 09:30:59 +08:00 nginx 转到 zuul 或 spring cloud gateway ; 在 zuul 或 gateway 要做鉴权之类的 |
19 warcraft1236 2021-01-14 09:34:33 +08:00 @des f5 是啥 |
![]() | 20 bleepbloop 2021-01-14 09:45:54 +08:00 MVVM 架构的话,前端放到对象存储上,经 cdn 加速。网关用 nginx 或 zuul,然后接到后端。这样做的话前后端使用不同的 dns 地址。 要做成一样的 dnss 地址的话,都经过 nginx,不用 zuul,但是 nginx 前加上 cdn,前端回源请求会减少很多,不必担心前端带来的压力。 |
21 dorothyREN 2021-01-14 10:21:08 +08:00 @warcraft1236 #19 硬件负载均衡器 |
22 iphoneXr 2021-01-14 11:47:40 +08:00 via iPhone @ilaipi slb 做的四层转发,后面接多个 nginx 。 nginx 可以做监控和代理转发,方便。 |
23 |
24 jifengg 2021-01-14 14:37:14 +08:00 方案 2,优点简直一堆。 加一个上面没有提到的,当你要使用 https 的时候,在 nginx 层加就好了。 |
25 fengpan567 2021-01-14 14:40:00 +08:00 当然是 2 |
26 zhoulouzi 2021-01-14 15:01:34 +08:00 单个 Nginx 扛不住,单个 Zuul 一定抗不住 |
![]() | 27 black11black 2021-01-14 15:38:52 +08:00 @jorneyr 单纯 echo 的话,你这套负载能力,淘宝双 11 秒杀的并发量应该也能搞定 |
![]() | 28 Dogtler 2021-01-14 18:33:00 +08:00 via Android 果断 nginx 代理走起 |
![]() | 29 xiang0818 2021-01-14 18:47:27 +08:00 外部统一做 nginx 转发,然后看情况要不要分前后端 Nginx,后端 nginx 打到对应的网关层 |
![]() | 30 firebroo 2021-01-14 23:59:15 +08:00 via Android Nginx 扛不住,前面加 4 层负载 |