最近L站扩容了,很想了解横向扩容是怎么扩的,有运维大佬来讲讲吗?

横向扩容应该是负载均衡和主从复制这种逻辑吧?或者增加多个服务器?那纵向是啥逻辑?加中间件吗?还是给一台服务器加配置?

前端服务器应该如何扩容?可能是CDN,但大部分实时数据最终还是会到源站获取,应该如何减少流量压力?前端只需增加带宽和流量即可吗?

后端服务器主要扩哪些?CPU和内存吗?

一个前端是如何对接多个后端的?多个后端如何保持逻辑和功能处理一致?多个数据库和redis之间数据如何同步?集群后整个架构是怎样运行的?

集群部署或者多个后端,是否需要服务端兼容才行?

我好懵。

负载均衡(nginx)+前端调用nginx提供的后端接口+多个后端服务地址交给nginx(使用nginx 做轮训策略)+数据库读写分离(数据库中间件可做)

后面可以做多地区CDN+可部署多个nginx服务 针对三大运营商做优化

一般扩容也就这几个方面吧
1、网络带宽扩容
2、服务器扩容,一般是增加lvs或者nginx后边的real server
3、数据库扩容,可以增加mysql或者redis的从库,分担主实例的压力
4、k8s节点扩容,增加worker节点后,可以把pod弹性改大些
5、程序改造,这个就得考虑修改网站架构了,比如说增加队列服务缓冲瞬间压力等等吧

L 站不是前后端分离的架构,所以这里不用区分前后端

扩容主要是扩 CPU、内存、带宽,扩容之后,通过 LB 进行负载均衡,常见的有云厂商的 LB 或者通过 Nginx 自建负载均衡

这样用户在请求时,请求会被随机到后端的一台服务器上,从而实现降低单台服务器的负载

多台服务器需要共享 Redis、MySQL;对于一些大型网站来说,如果是多地容灾的方式,则会通过内网专线做多地的数据同步,当地的服务器只连接当地的数据库

L站是前后端分离的

L 不是前后端分离架构

你指的分离可能是部分静态文件分离,但这并不是前后端分离

前后端分离最大的特点是 HTML 固定内容,然后通过调用 API 逐步加载数据,但是这里明显不是,每个页面都是 PHP 渲染好的 HTML,这个不算前后端分离

前后端分离后,前端只需要使用 Nginx 即可提供服务,可以将前端直接托管到 CDN 边缘节点,因为无需后端参与渲染

L站不是PHP吧


类似 PHP,这么理解就行了

SSR服务端渲染吗?

看着我就头皮发麻 :tieba_087:

@neo 喊始皇来去魅一下

有没有用 SSR 不好说,没看过源码,但是是服务端渲染

如果真做了前后端分离,还能承接更大的流量,但是不利于 SEO

好吧,我问了AI,有一部分是服务端渲染,确实不好分离

用的discourse,Rails 应用支持多副本

这个什么工具啊

横向扩容一般指增加应用实例数量。然后通过负载均衡技术进行流量分离。

当应用数量上来之后如果瓶颈到数据库层考虑做数据库集群以及缓存。

直接问始皇怎么弄的更好一点,每个人的配置习惯不一样

垂直扩容一般就是扩设备硬件能力。
比如我原本有一台 265c 1t 的服务器, 现在不够用了 直接扩到512c2t 然后里面的所有应用 分配的资源翻倍。

没做过前端吧……
右键查看源代码就能确定的事情……