网站如何高可用

1.前后端分离:可以使用更加轻量级的web容器如nginx部署静态资源,实现真正的前后端解耦;且可以同时水平扩展前后端服务器;减少后端服务器的并发/负载压力,即使后端服务暂时超时或者宕机了,前端页面也会正常访问,只不过数据刷不出来而已。

2.拆分微服务,拆分后的服务支持分布式多实例(集群)部署,从而达到按需扩展的目的,在应对突发的流量暴增时,如营销活动等,可以迅速按需扩展,提高站点的可用性。

3.负载均衡:拆分后的服务使用集群部署,通过负载均衡的方式进一步提升网站可用性。集群部署模式下,多台实例分担流量,并能灵活地增减成员实例;负载均衡机制可以确保某些成员实例失效时,能迅速将流量切换到其他正常成员实例上,从而提高站点的可用性。

4.使用缓存,在查多写少的场景,非常适用使用缓存来提升查询服务的性能,减轻对数据库的压力。通常使用redis cluster作为缓存服务器,redis cluseter机制能很大程度上保证缓存服务的高可用性,及时缓存服务故障,还能从数据库获取信息。

5.分库分表,读写分离:业务迅猛到后面,当用户在千万级别时,数据库会成为最后的瓶颈,首先可以根据业务场景分析,考虑做读写分离。写到master库,读salve库。如果读写分离也无法满足高并发要求,需要考虑使用分表分库的思路进行横向扩展。

6.异步处理非关键性业务:非关键业务是指用户不关心的业务环节,比如注册完成后,发送营销短信通知给用户,用户并不关心这个营销短信是否能及时送达。对于此类非关键业务环节,可以在设计上进行异步化处理,例如使用消息中间件kafka等。

7.服务降级,服务熔断:网站架构发展到后面,服务之间的调用变得错综复杂,故障发生之后能够清晰知道是那条服务链路出现了问题,并能及时处理变得很重要。当发现某个服务异常时,可以对该服务或者某个调用渠道进行服务降级,或者针对下游某个异常服务进行熔断处理,确保网站其他非异常服务的可用性。如当电商网站中大促销,大量订单消息,当达到一定限度时,可以将下单业务降级,随机将一些用户的请求跳转到某静态页面,如提示当前用户过多,请重试等。熔断是微服务间相互调用,发现某一服务出现故障不可用时,将其返回某一特定页面或说明,避免影响其他正常服务的使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值