最近一两年吧,微服务和分布式这两个词突然火了。两个技术人员之间的交流非得往上扯两句才显得高大上。
本人因为公司性质以及过往的经验,一直未将精力集中在这两个词上面。不过听到多了,不免有些个人看法。既然是个人看法,难免偏颇,博君一笑。
前言
IT行业发展至今,在满足人类需求的过程中基本都是在解决两个问题:
- 系统扛不住时怎么办?
- 人脑扛不住时怎么办?
其实一开始我只想写第二个的,也就是说本人最开始的想法是IT行业的发展都是为了解决第二个问题。但细思考之下发现有失公允。于是才有了上面两个。 非常欢迎找茬!
个人观点
首先我的观点是 针对第一个问题,我们碰到的其实并不多;这也是我之所以会忽略它的主要原因。 Nginx的负载均衡功能算是其中的典型,针对海量的请求,单台服务确实无法完全处理掉,所以我们需要堆数量的方式来分摊这些请求。
到此为止,第一条就说完了;所以本文的关注点其实是第二点,也是我想表达的:其实软件领域的发展绝大部分都是为了解决人脑扛不住的问题。
现在火热名词“微服务” 和“分布式”很不幸也属于此列。所以让各位调用着API的”弄潮儿“失望了,这两门”新技术“并不新奇。
人类的欲望推动人类成为万物之灵,让人们享受到了现代社会的种种便利。因此而带来各种新的问题,这些新问题相比较之前已解决的问题在复杂度方面必然是大幅度暴涨。而为了应对这种暴涨的复杂度,人们需要求助于人类最宝贵的财富——大脑。
人类从事智力活动已经有几十万年的时间了,但解决问题使用的技巧依然只有那么几样。而抽象作为解决复杂问题的技巧在其中占据着极其重要的地位。而且相比较将其包裹起来的各种各样的新式名词而言,抽象这门技巧一直在那里,从未改变。
联想
行文至此,脑海中出现这样一个列表:
- 方法 - 单个逻辑的黑盒
- 类 - 一组逻辑和数据的黑盒
- package / namespace - 某个功能的黑盒
- jar / dll - 多个功能的黑盒
- war /exe - 一个解决方案的黑盒
- 微服务-分布式 - ??
是不是发现 以上 :
- 彼此紧挨着的,后者是前者的集合
- 不断提升的抽象层次
- 软件的发展史
总结
- 再次向各位真正热爱着这个行业的人们推荐SICP。祝愿你们不再被光怪陆离的景色迷住双眼,早日找到心中的那片净土。
2.我去学习分布式和微服务了,各位再见!