一、高并发实时后台服务技术架构杂谈
1)流控(流量控制):后台服务可以支撑的最大并发量,虽然理论上可以通过添加节点(机器)的方法横向扩展,
(你有一台API服务器,每天几百万次请求,吃不消了。现在要提升性能
横向扩展:多增加几台API服务器,一起服务。
纵向扩展:把API服务器换成性能更好的机器。)
即扩容,但考虑到成本通常后台服务都会存在一个预估的能力上限。后台服务的最大支撑能力低于了实际用户的请求量,那么
对
后台系统造成的影响可能就如同DDOS攻击,严重的话整个后台服务都会出现不可用
,
根据业务场景定制合理的流控策略
。
2)负载均衡:网关层除了流控功能外,还有一个重要的Balance Load的作用。将大量用户的请求通过负载均衡策略合理地分发给后端节点(服务器)。每个节点分配不同的权重。
3)接入层(web层):通过网关层执行一些基础的流控策略,然后再由网关层将请求转发给后端的接入层。接入层主要实现一些业务层面的基本校验功能,比如登录态校验。可过滤大部分非法请求,为合法的用户请求留出有限的后台资源。通常接入层都是无状态的,可横向扩展。
4)逻辑层(service层):根据“前轻后重”的原则,接入层一般只执行一些轻量的业务逻辑,真正核心的业务逻辑放在逻辑层来实现。逻辑层是真正核心处理的模块,它的处理能力决定了整个服务的质量,因此逻辑层的设计非常重要。设计原则:缩短关键业务流程、降低单个接口处理时耗、同步变异步、隔离。
5)存储层(Dao层):存储层主要解决的是数据快速访问,大数据量如何存储,以及数据一致性安全问题。对应的解决方案分别是缓存,分库分表,数据如何同步备份。