架构、分布式、微服务
架构、分布式、微服务
架构
架构,是一个可大可小的概念,架构可以说无处不在,一辆汽车有它的架构,一座桥梁有它的架构,一滴水也有它的架构,在程序界,通常认为一个复杂且庞大的后台才具有架构,设计这种架构的人员称为架构师,但是,实际上还存在前端架构师,测试架构师,业务架构师等等,他们共同的特点是:在目标明确的前提下,设计出一套可实现、可执行、以达到目标为目的的一套方法或框架。
后端架构师根据业务需求,比如让系统运行的更快,让系统的吞吐量更高等等,以这些业务需求为目标来设计出一套架构。
前端架构师和后端架构师类似,怎么让页面加载更快,怎么让页面跳转更流畅,怎么减少APP的体积或者耗电量等等,以这些业务需求为目的,设计出一套架构。
业务架构师也类似,产品或项目内所涉及到的业务,业务与业务之间的关系能不能更加清晰一点,现在的业务模型的扩展性怎么样,这也需要好好的设计出来一套架构。
总的来说:不是为了架构而去架构,而应该以解决实际问题去架构。
分布式
分布式是后端架构的一种,比如单体架构和分布式架构,单体架构是指整个系统部署在一个进程里,而分布式是指整个系统是部署在不同的进程里的。
《分布式系统原理和范型》一书中是这样定义分布式系统的:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统”
比如一个SSM的应用+Mysql的普通项目也属于一个分布式系统。
微服务
分布式是一种物理架构,是物理上的,微服务是一种服务架构,是服务层面的,微服务的重点是“微”,一个服务“微”到什么程度是一门艺术,微服务的设计可以按接口,可以按业务,可以按系统等等,具体根据实际情况来进行拆分。
将一个业务系统按照一定的逻辑进行拆分之后,然后各个服务分别部署到单个的机器上,这是整个系统即是一个微服务架构,也是一个分布式架构。