我最初接触到分布式是菜鸟网络的一个高级技术管理人员的....
抱歉,最烦这类废话,直接跳过。(who cares? 直接上重点)
困惑
不知道从哪里下口?!
看了好些知乎学院派对于 "分布式" 领域(注意是笼统的分布式)的介绍与"抛砖引玉",然后我发现自己更不理解了,不是论文就是研究,其实我只是关心工程方面的技术实践,说白了我想要的是落地的方案,实践,是真金白银相关的,商业项目相关的,而不是还停留在理论研究上的。
当然也有大佬,小姥们讲解了工程技术相关的,比如分布式怎么来的,包含哪些方面等等。
但问题是,落实到实际工作,包含哪些知识技能啊?
(你去看招聘,岗位要求也可能是一头雾水;说到底 HR 写的内东西吧,不予置评)
兼听
太多人说,七嘴八舌的,仔细看看,仔细想想,我们工业,商业上所以应用的不过是理论研究的分布式的子集,直白说,就是和一些开源产品相关的分布式技术。
下面的参考文章大多都值得一看,不过在我看来,分布式、大数据,微服务不要统统划分到 "分布式" 中,因为上面我自己的讲过,取 理论分布式的子集 即可。
(其实我们大多都知道,互联网企业就是主要为了省钱才水平扩展,由此引发了一系列多机问题)
他们有的这样总结:
有的这样总结:
参考链接:
- 分布式领域架构师要掌握的技术 --- 阿里云社区名下的文章
- 用大白话聊聊分布式系统 --- 《分布式系统常用技术及案例分析》图书作者
- 学习分布式系统需要怎样的知识 --- 知乎社区
解决之道
数据库存储快还是索引快?
那要看什么样的数据库,什么样的数据规模了。先避开不论。
人呢?人记忆东西耗费代价大还是组件神经元索引代价大?我想肯定是后者了。
在海量存储的知识里,找到当下问题的解决方案,即建立关联,建立索引这个过程非常耗时。
意思是说,其实具体去学习&实践某项技术并不困难;真正困难的是全局纵览,然后逐步分解。换言之,站在一定高度,认识一些关键词技术背后的意义,主要是商业意义(工程思维就是解决了什么问题),价值所在。
而矛盾的是,一般只有经验丰富的领域内人员才有可能具备这样的 大局观
。
所以本文就给看官解决这个问题,直接贴在这里。(并非我总结的,而是工程内人士的总结)
(评论里说 符合中国国情
,真香; 技术或许本来就是很 Low 的东西,没必要表达的那么阳春白雪,您说呢?)
重点总结:
- 注册中心,调度中心 (比如 zookeeper)
- 机器/进程通信RPC (各类框架,消息队列)
- 分发请求,负载均衡 (nginx, tengine)
- 支持高并发,高性能
- cache: redis
- mq: 各类消息队列,尤其 kafka
- job: 各类调度框架,比如 elasticjob, tbschedule, quartz
- db: nosql/newsql (这里一般涉及传统的数据库应该不多,毕竟传统数据库停留在 100K 数量级范畴,百万之后就靠 nosql 打天下) --- 以及 db 老生常谈的各种各样的问题,什么分表分库啊,什么分片啊,读写分离啊,主从啊...
这些内容是不是全部?不知道,但知道的是,大概如此。
(至于某一块选择哪些技术,见仁见智)
(至于怎么学,当然官方文档,以及项目背景十足的大佬啦; 官方文档为主)
(至于后面怎么发展?不要太贪,学完降龙十八掌前十七掌,再说)
内容不少,好在难度不大(相比资本运筹,企业经营管理而言)。
补一句: 通常看业内有专业背景的人的著作(书籍)是一个捷径。(至少对我而言看书,看它的总结要比看官方文档快的多,不然你干嘛花钱买别人的经验?不就是图省事儿嘛;但后期遇到问题还是要翻文档,此时书已经没有营养了)
此时逐个攻破即可,没有必要在多关注他人写的什么 浅析分布式
,分布式概览
等等。
参考书目
这里我手上已经有的相关的书籍: (可能分布式相关的)
以及大量 kindle 电子书。 (推荐购买电子版!)
另外,和本文有类似作用,或者是本文论述的超集(父集)的一本书,入门时推荐:
(可能后续这本书不再有营养,相比于《UNP》系列不经看,但足够了,别要求太高)
(后续有一篇专门来写写,我看过的,我鄙视的,我推荐的 分布式
相关的书评)
BTW: 做分布式,不管含不含架构,含不含微服务等,Java语言,Go语言肯定跑不了。
(说完了,容我打个广告,CH-YK 分布式细分领域专家 --- 咳、咳、准专家...)
分布式领域攻与伐(0/9)(切开分布式)
原文地址:https://www.cnblogs.com/bluechip/p/pro-distributed-start.html