当我想回答这个问题的时候,一时间却发现不知道讲给谁听。
什么是架构师,架构师要做什么事情,为什么Java的领域里,会更注重架构师?
很早很早之前,我对于架构的概念一点都不理解,依稀记得,架构( architecture)这个词,来自于建筑领域。
这对于我这个没写过几行代码的人来说,瞬间就有了一种“不明觉厉”的崇拜感。
架构,感觉好厉害的样子,从名称上来说,好像是设计根骨,设计底层,设计最核心的东西的人。
架构师,一定很NB,我什么时候能成为架构师呢?
后来懂了一点点代码,去写增删改查,更是体会不出来架构的概念,不就是Sql语句吗?明明DBA更厉害啊,做各种的慢Sql优化,所有的Sql都要让DBA审核,DBA对于Mysql,或者是Oracle的各种性能调忧很厉害,而熟悉业务的开发人员又常常能写出几万行的SQL语句。
我看到这些头都要炸了好么?
所以,倒底什么是架构?整个系统只有一个WEB,Spring MVC+Spring+Hibernate搞定一切,开始做需求分析,实际上就是设计表结构而已,剩下的就是查查查,改改改,删删删。
直到某天,我知道一个词,缓存。
缓存这玩意儿,在很早之前学习各种基础课程的时候,了解过一些,一级缓存,二级缓存什么的,LRU我好像也懂一点点,但是,在系统里,缓存算是什么?
在公司里,那个架构师,画了一张图,告诉我们,这台机器上,放了一个Memcache,然而我们都不懂,他只解释了一句,这个Memcache是缓存。
我的第一个困惑就是,所有的请求都要再次转发到另一台机器上,把数据取出来,单个请求可能不算什么,每天有几十万次请求,这中间的损耗不大么,为什么不把Memcache放到本地机器上呢?
他没解释,只告诉我说,不大,Memcache就是要放在另一台机器。
在当时,我不清楚内网和外网的差别,也不清楚访问Memcache的请求倒底是需要多少MS,更不理解,把Memcache放在和业务层一台机器,或者是分开放的差别倒底是什么。
但这个问题一直困惑着我,简单来说,这其实算是一点点架构师要做的事情的萌芽,一个系统中,如果拆解出来了很多模块,倒底应该部署在哪些机器上?架构师会解决这些问题。
后来,到了搜狐之后,我突然间发现了我之前学到的东西,在搜狐的技术大神