分布式系统的重要性

时间:2022年12月05日

作者:小蒋聊技术

【温故而知新】分布式系统(一)·分布式系统的重要性_小蒋聊技术_免费在线阅读收听下载 - 喜马拉雅手机版欢迎收听小蒋聊技术的其他类最新章节声音“【温故而知新】分布式系统(一)·分布式系统的重要性”。大家好,欢迎来到小蒋聊技术。小蒋准备和大家一起聊聊技术的那些事。文字版材料在CSDN博客,“小蒋聊技术”的同名文章里。文字版地...https://m.ximalaya.com/sound/595525942?from=pc

前言

大家好,欢迎来到小蒋聊技术。小蒋准备和大家一起聊聊技术的那些事。

今天小蒋继续坚持“温故而知新”的落地实践,准备和大家聊一聊“分布式系统”。小蒋一直在一线互联网公司从事分布式系统开发很多年,也一直在关注分布式系统的架构和新技术的发展。

互联网业务发展到今天,用户量是越来越多,系统生产的数据规模也是越来越大,支持高并发和海量数据的处理,已经是应用系统的硬性需求。

对比集中式系统架构,分布式系统具有可扩展性。可以动态扩展“服务”和“存储节点”,使用廉价的服务器构建高性能的“服务”,比较适合现在的互联网业务。

另外随着电子商务、互联网金融、支付等业务的不断发展,让“微服务架构”、“大数据”、“云计算”这些技术使用的越来越广,各大公司的相关岗位要求也越来越高,掌握分布式技能的后端工程师变得越来越抢手。

小蒋在最近的面试和工作中,看到一些问题:

  1. 面试时,可以回答概念性问题。但是问到落地方案的实质性问题就懵了,由于缺少相关经验而卡住;
  2. 研发工程师在工作中,对常用的分布式技术原理一知半解,在典型场景下可以处理,但是业务稍有调整后,就开始毫无头绪;
  3. 在系统设计中,只关注了新技术带来的收益,却没有考虑同时引入的风险,没有全面平衡各个设计点。比如,增加了缓存,带来了查询的速度提升,但是却没有注意到增加了缓存,同时会带来数据不一致问题。能量是守恒的,有得必有失。

这通常是技术工程师缺乏体系化对分布式技术的认知,或者没有在实际的分布式场景中实践过。最常见的现象就是,可以解决常见问题,但是没有系统化的解决思路。

分布式架构

小蒋我将尝试整理,我这一路在分布式系统设计中踩过的坑和开发实践中经历过的经典问题,并将这些都分享给你,小蒋希望能够帮到更多开发者,让咱们一起成长。

小蒋常碰到到身边的一些开发人员对自己的职业发展规划焦虑与困惑的问题,开发人员总是抱怨自己每天只写CRUD这些业务代码,迷茫自己该如何提升自己的技术能力,怎么才能加入BAT这样的大公司?

小蒋个人认为,所有的机会都是在自己充分准备后才能获得的,个人职业规划的困惑,其实就是自己在技术上持续精进的目标。心中有目标,才有成功机会,有了目标,才会一步步走向成功。

如果想在技术线上深耕和谋求发展,成为高级工程师、资深工程师或者是架构师,掌握分布式系统知识和架构已经成为了必要的一环。

不管是目前流行的 SOA 架构,还是蓬勃发展的微服务和 Serverless 架构,都是在分布式的基础上构建的,业务开发中的框架选型、注册中心,以及服务拆分之后面临的分布式事务问题、分布式锁,也都是分布式系统所关注的。

针对高级岗位,除了掌握在分布式环境下进行开发的能力,你还需要了解其中的原理、机制,以便能够快速定位线上问题;而对于架构师来说,你还需要具备独立设计分布式系统的能力,这就需要了解高并发、高可用的相关知识了。

想要进入大型互联网公司,分布式技术是一个面试过程中重点考察的点。很多岗位都要求掌握缓存、分布式服务、消息队列等分布式组件应用,部分岗位还要求在高并发等分布式设计方向有一定的积累。

分布式技能点

小蒋个人认为,后端开发者需要掌握的分布式技能点有:

  1. 分布式系统理论和设计;
  2. 分布式事务和一致性;
  3. 分布式服务及微服务架构;
  4. 分布式缓存和常见 NoSQL 应用;
  5. 分布式下数据库的拆分,比如读写分离、分库分表;
  6. 消息中间件的应用,常见组件的选型;
  7. 合理应用分布式技术,实现系统的高可用。

这些分布式技能点在工作和面试中都非常重要,但是小蒋个人认为掌握起来其实并不容易。

  1.理论众多、难以入手。

分布式系统不仅涉及一致性、事务等众多的理论知识,还包括非常多的复杂算法,比如 Paxos 和 Zab 算法,如果没有一个明确的抓手,学习起来会很吃力。

        2.领域庞杂、关联技术栈多。

分布式系统涉及很多领域,比如 RPC 服务调用、分库分表,这些不同的领域需要了解和掌握不同的技术栈。

因此小蒋我个人的建议是,要想快速提升分布式技术能力,那么需要明确哪些才是你日常工作中最迫切需要的,从实践中开始体验和学习,积累经验。要知道,分布式不是一堆理论的堆砌,而是和日常开发息息相关。

        3.工作特点,接触不到分布式。

现在一些软件开发公司,或者传统公司的 IT 部门,还在使用集中式系统架构,所以部分开发者平时在工作中很少接触分布式系统。

总结

小蒋我工作很多年,从一个刚毕业的新人,一步步晋升到一线互联网公司的架构师,我深知分布式知识的重要性和学习痛点。

我将继续坚持“温故而知新”的落地实践,将会从理论开始总结,一步一步分享落地到实践中的案例。

我希望能帮助我亲爱的伙伴建立一个知识框架,让你对分布式技术有一个总体的认知。

技术是为业务服务的,再高深的技术都要落地,咱们在实际的场景中理解并应用,达到事半功倍的效果。

以上,就是今天小蒋要跟大家分享的全部内容。

年龄的增长不可怕,可怕的是从未成长!

感谢大家支持小蒋,小蒋希望和大家共同成长,谢谢。

【温故而知新】分布式系统(一)相关推荐

  1. 【温故而知新】分布式系统(二)

    分布式系统的 CAP 理论 时间:2022年12月12日 作者:小蒋聊技术 [温故而知新]分布式系统(二)·分布式系统的 CAP 理论_小蒋聊技术_免费在线阅读收听下载 - 喜马拉雅手机版欢迎收听小蒋 ...

  2. 分布式系统 一致性模型的介绍 以及 zookeeper的 “线性一致性“ 讨论

    文章目录 1. 一致性 概览 1.1 分布式系统的 "正确性" 1.2 线性一致性(Linearizability) 1.3 顺序一致性(Sequential consistenc ...

  3. 《异步处理在分布式系统中的优化作用》学习笔记

    原文地址:http://www.infoq.com/cn/presentations/optimization-of-asynchronous-processing-in-distributed-sy ...

  4. Travis CI : 最小的分布式系统(三)

    日志的作用有两个:当构建日志的数据块通过消息队列进来时,更新数据库对应行,然后推送它到Pusher用于实时的用户界面更新. 日志块以流的形式在同一个时间从不同的进程中进来,然后被一个进程处理.这个进程 ...

  5. Travis CI : 最小的分布式系统(一)

    (本文翻译自http://www.paperplanes.de/2013/10/18/the-smallest-distributed-system.html,由@金斌_jinbin 翻译) Trav ...

  6. 整理下.net分布式系统架构的思路

    最近看到有部分招聘信息,要求应聘者说一下分布式系统架构的思路.今天早晨正好有些时间,我也把我们实际在.net方面网站架构的演化路线整理一下,只是我自己的一些想法,欢迎大家批评指正. 首先说明的是.ne ...

  7. 如何选择分布式系统(区块链)协议?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 如何选择分布式系统(区块链)协议? 在构建包分布式系统功能的应用程序时,<财富>500强企业和创始人经常问我 ...

  8. 分布式系统的时间顺序

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 分布式系统的时间顺序 区块链被认为是分布式的系统,分布式系统中由于多节点,通讯.物理位置等的问题,各节点间时间一致的问题 ...

  9. 分布式系统中节点之间的同步形成区块链

    链客,专为开发者而生,有问必答! 此文章来自链客区块链技术问答社区,未经允许拒绝转载. 分布式系统中节点之间的同步形成区块链 分布式系统由Tanenbaum定义,"分布式系统是一组独立的计算 ...

最新文章

  1. python从入门到实践和从入门到精通-Python从入门到实践之列表|第1天
  2. Jumping Jack
  3. python硬盘api-使用python获取电脑的磁盘信息方法
  4. boost::make_iterator_range用法的测试程序
  5. 激光光凝手术的副作用和必要性
  6. 数据科学 IPython 笔记本 7.3 Pandas 数据操作
  7. 计算机应用与软件修审,国中课室素养导向标准本位评量的设计与应用:以英语科阅读为例...
  8. web前端三大主流框架_web前端三大主流框架
  9. python 增量备份mysql_Python 生产环境MySQL数据库增量备份脚本
  10. 机器学习中对不均衡数据的处理方法
  11. 猿取向的规划设计模式 ——GoF《设计模式》阅读摘要(零)
  12. MySQL分表实现上百万上千万记录分布存储的批量查询设计模式
  13. bzoj1814: Ural 1519 Formula 1 动态规划 插头dp
  14. 迅雷手机版苹果版_IOS手机迅雷下载(支持苹果手机和ipad)
  15. Linux MTD子系统学习(二)
  16. 家电企业如何利用APS生产排产应对市场变化调整生产?
  17. fabs () 函数
  18. 幕维动画——港珠澳大桥岛隧三维动画
  19. windows下python运行的方法
  20. Java - char型变量中能不能存贮一个中文汉字,为什么?

热门文章

  1. 自动化测试与自动化测试生命周期
  2. 微软张宏江:创新流程是打造创新能力的突破口
  3. Oracle查询CLOB类型字段的内容:
  4. 编写查询条件不区分大小写的SQL语句!
  5. 吞食天地2西瓜魅影 萌新版自通攻略
  6. 三创赛优秀作品_全国-电子商务-三创赛省赛优秀作品.doc
  7. 杰理之LINEIN 左右声道与 DACLR 输入出的注意【篇】
  8. 双向数据绑定原理(三种实现方式)
  9. 望夫山[阳江民俗文化]
  10. java基础数据类型和运算符