020-74523666

网站建设 APP开发 小程序

KNOWLEDGE/知识

分享你我感悟

您当前位置>主页 > 知识 > 软件开发 >

如何当软件架构师

发表时间:2021-05-23 13:28

文章来源:ahao11

浏览次数:

你好,我是阿秀。

我觉得大部分程序员的终极梦想都是做一个架构师,就像我一样,虽然我现在是咸鱼,但是离架构师还有十万八千里。。。。

但是你还是要做梦...如果你将来成为一名建筑师会怎么样

微服务架构是从单一架构发展而来的。所谓单一架构,就是将整个互联网系统的所有代码打包在一个程序中,部署在一个集群上,单一的应用构成整个系统。

微服务架构在这个大应用中拆分一些模块,独立部署在一些相对较小的服务器集群上,应用依靠这些独立部署的模块通过远程调用完成业务处理。这些独立部署的模块称为微服务,这样的应用架构也称为微服务架构。

应该说模块化和低耦合一直是软件设计的目标。独立部署微服务,使得模块之间的依赖关系更加清晰,隔离性更好,系统更容易开发和维护,代表了正确的技术方向。但是在实践中,有时微服务系统的开发和维护变得更加困难,技术团队感到痛苦,是微服务的“锅”,因此主张放弃微服务,回归单一架构。那么,我们应该使用微服务吗?微服务是灵丹妙药还是毒药?

单片体系结构的困难和挑战

阿里巴巴大概是中国最早尝试微服务的企业之一。让我们回顾一下这段历史,看看当年阿里巴巴为什么会使用微服务架构。微服务架构能解决什么问题?利用好微服务需要做哪些准备?
阿里巴巴大约在2008年开始尝试微服务架构。在此之前,一个网站就是一个大应用,用Java开发的战包包含了整个应用。系统更新的时候,哪怕只更新一小部分,也要把整个战包重新打包,整个系统发布。

随着业务的不断发展,这样单一的巨无霸系统遇到了越来越多的困难。

1.很难编译和部署。一个应用系统有一个war包,这个war包的大小可能有几个GB。对于开发工程师来说,开发、编译和部署这个战争包是非常困难的。我用自己的电脑编译了大概半个小时。在开发过程中,即使一个庞大的系统中只有一行代码被更改,工程师也必须在做开发测试之前重新打包整个系统。开发、部署和测试这样一个单一的系统是非常困难的,有时甚至几行代码也不能在一天之内写完。

2.代码分支管理比较困难。因为单个应用非常大,所以代码模块也是由多个团队维护的,但是最后必须编译成单个应用统一发布。这就需要合并不同团队的代码,容易出现代码冲突。合并的时候也是要发布应用的时候。出版是一个复杂的过程。再加上代码合并带来的风险,各种情况交织在一起,很容易出错。所以单应用时代,每个应用发布都需要到深夜。

3.数据库连接耗尽对于一个庞大的应用程序,因为有大量用户访问,所以必须部署到大规模的服务器集群中,每个应用程序都需要与数据库建立连接。大量的应用服务器连接到数据库,会对数据库的连接造成很大的压力,有些情况下甚至会耗尽数据库的连接。

相关案例查看更多