你好,我是小小哭包,在一线互联网公司从事分布式开发工作多年,一直关注分布式理论和新技术的发展。
互联网发展到今天,用户数量越来越多,产生的数据规模也越来越大,应用系统必须支持高并发访问和海量数据处理的需求。
对比集中式架构,分布式系统由于具有可扩展性,可以动态扩展服务和存储节点,使用廉价的机器构建高性能的服务,更适合如今的互联网业务。分布式系统技术已经成为微服务架构、大数据、云计算等技术领域的基石,在电商、互联网金融、支付等众多业务中,都离不开分布式技术的有效运用。
掌握分布式技能的后端工程师越来越抢手,不止业务部门、中间件和基础架构等部门也在大规模抢人。分布式技术的应用越来越广泛,各大公司的相关岗位要求也越来越高,然而在面试和工作中,我们却看到各种各样的问题:
面试时,可以回答概念性的问题,但问到实质性问题时就懵了,由于缺少相关经验而卡住;
工作中对常用分布式技术的原理一知半解,在典型场景下可以应付,但稍微变更业务场景或业务目标后,就开始毫无头绪;
系统设计中,没有全面平衡各个设计点,关注了收益,却没考虑到风险,比如增加了缓存,却带来了数据不一致,增加了消息队列,却因为不合理的重试导致服务异常。
总结来说,这往往是从业者没有在实际的分布式业务场景中实践过,或者对分步式技术缺乏体系化的认知,或者对一些原理和底层的内容未曾深入研究,导致可以解决常见问题,而没有系统化的解决思路。
因此,我梳理了一套分布式技术的方法论?