负载及解耦结构_负载及解耦结构设计
智能路由-gtm-lvs-nginx-haproxy-rs
nginx 装有ssl 硬件加速卡
目前ssl硬件加速卡中支持nginx
GTM负责外网的负载均衡,比如北京的用户访问被分配到北京的数据中心,南京的用户访问被分配到深圳的数据中心。
LTM负责内网的负载均衡,比如一个用户访问进来,由LTM负责具体分配到哪个服务器来处理
LTM就是本地流量管理,也就是通常所说的服务器负载均衡。可以将多个提供相同服务的设备(pool)虚拟成一个逻辑设备,供用户访问。也就是说,对于用户来讲,看到的只有一个设备,而实际上用户是服务请求是在多个设备之间,通过负载均衡算法分担的。通常可以理解为是一种代理的模式。
GTM是广域网流量管理,也可以称为全局负载均衡。这个模块可以满足用户更高的负载均衡要求,提供不同站点间全局资源的调配。比如说,用户在北京和上海分别有一个web服务器群(pool),都是提供同样的页面,那么当上海的web服务器负担过重或者宕机时,就可以将流量重定向到北京
GTM:global-traffic-manager广域网流量管理
高并发
同时并行处理很多请求
标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等
响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间
吞吐量:单位时间内处理的请求数量
QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显
并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数
高可用
解耦神器:MQ
将数据放入MQ,由消费者异步去处理后续的复杂业务逻辑,这样可以大大提高请求响应速度,提升用户体验
库存扣减
使用Redis来做库存扣减
限流
用户体验
当应用达到限流值时,需要给用户更好的提示和引导
nginx做限流设置可以使用Lua+Redis配合来实现;应用内限流可以使用RateLimiter来做
缓存
CDN
前端缓存
缓存穿透
缓存雪崩
无状态
无状态应用,便于水平扩展
有状态配置可通过配置中心实现无状态
2.并发测试工具:
Apache JMeterVisual Studio性能负载测试Microsoft Web Application Stress Tool
设计这块业务的时候就会使用消息队列的,可以将参与用户的信息添加到消息队列中,然后再写个多线程程序去消耗队列,给队列中的用户发放红包