双11购物节,会带来十倍级别流量提升,在技术上有很大挑战,应对挑战过程中能给我们带来更多技术提升,这种提升需要基于对问题不断深入理解,以及通过技术架构设计落地实现来完成。
这次备战花费了团队小伙伴们很多时间精力,每个人都应该详细总结下,总结过程能让我们有更多收获,不然更多是付出了很多辛苦,而没有收获,那会是很大浪费,也对机会是一种浪费。再有就是哪些将那些做的不好的,需要技术手段来提升完善的地方梳理出来。一个重要事情是怎样减少这种花费很多人力方式,能不能搞成自动化,或者通过架构优化来解决性能以及错误等问题。用技术手段而不是堆人力方式。
复盘存储读取,读取本身有比较多监控,遇到问题有几类:
1、通用数据读取热点,数据热点会导致 redis 集群性能下降,这种需要定时去读取来解决。
2、这次备战时遇到新问题,刷子带来热点问题,可以采取缓存来解决。就是服务内存缓存来挡住刷子用户,避免redis产生热点。
3、连接数问题,连接过多会导致连接取不到,a、采取机房分离策略,廊房服务读廊房集群,马驹桥读马驹桥机房,减少连接。b、集群规模减小,数据存的少了,读它的就少了,读的少了,redis客户端客户端减少从而减少连接。c、连接问题通过业务拆分方式解决,单个业务单个集群,集群规模变小,业务之间影响变小,共享集群一个业务导致集群不稳定,其他集群也不稳定。c、小集群业务集群问题不大,还有偏好这种通用数据,读的业务很多,就需要一主多从来解决。
复盘遇到问题,对于存储读取前边做了很多工作,读取方面遇到问题减少了。最近又遇到存储增长问题,有同学设计了一套监控体系,对存储每个任务进行监控,监控后可以设置监控指标,达到指标后进行报警。挺好一种设计,根读取类似都是采取定量方式,清晰定位存储量问题,后续扩容还是构建新的集群就是水到渠成的事。
电商系统稳定关系着核心用户体验,保证稳定方式需要减少外部依赖,所有外部资源都可能会导致问题,减少依赖就能减少出问题的风险。另一条重要原则是后续备案,很重要一件事是要有备选方案出了问题能够有备选供选择。
降级、限流、限速、熔断等都是一种备案。
1、降级是通过降掉非核心流程,保证核心流程稳定高效。或者解决0点流量来临时,存储不稳定,网络不稳定后的处理方式,直接将逻辑降级,不使用。
2、限流,单个服务单个容器能够处理的量是有限的,单机压出上限后,增加限流google guava包有相应方法,直接用即可。
3、熔断,服务直接返回状态给客户端,客户端不再请求服务,从而保护服务,此时服务不是全的,但是不影响用户体验。
再有就是服务出现问题时,要第一时间降级操作,不要想着去解决问题,因为解决问题会耽误时间,影响用户体验,需要后续去定位问题,这是很重要一点,教过学费的。
架构设计,监控是一种重要架构哲学,对于系统优化一个前提,监控本身也能对整个系统所处状态进行呈现,作为我们的决策依据。
花费人力去盯的地方,都应该想一下怎样通过架构以及设计来解决,更多自动化去做,减少人力,用技术方式解决问题,这应该是我们应当追求的。
备案也是一种重要设计哲学,做到有备无患,不能只能看着系统崩溃而束手无策。事情一定要进行总结,才能在这件事中获得更多信息,不然更多是经过,事情要想办法去把它做好,是将来做任何事情一种很重要方式、方法。
解决技术问题,应该通过好的策略好的架构来实现。解决问题过程中我们获得技术提升。
以上所述就是小编给大家介绍的《双 11 架构设计》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 架构设计(7)——如何设计一个架构
- 架构设计(8)—高可用架构设计
- 【架构设计的艺术】Kafka如何通过精妙的架构设计优化JVM GC问题?【石杉的架构笔记】
- 架构设计笔记(八):详细方案设计
- 微服务架构设计之领域驱动设计
- 架构设计模式—6大设计原则
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。