微服务
微服务是一种架构风格,它要求我们在开发一个应用的时候,这个应用必须构建成一系列小服务的组合。可以通过http的方式进行互通。
1. 单体应用架构
单体应用架构(all in one)是指,我们将一个应用中的所有应用服务都封装都一个应用上。
无论是ERP、CRM或者是其他系统,都把数据访问、web访问等各个功能都放到一个war包内。
1.1. 好处
易于开发测试,十分方便部署。需要扩展时,只需要将war包复制多份到多个服务器上,做负载均衡即可。
1.2. 弊端
只要需要修改,都需要停止整个服务,重新打包和部署应用war包。
2. 微服务架构
打破之前的all in one的机构方式,把每个功能元素独立出来。把独立出来的功能元素的动态组合,需要的功能元素才进行组合,需要多一些时间可以整合多个功能元素。所以微服务是对功能元素进行复制,而没有对整个应用进行复制。
Martin Flower 于2014年3月25日写的《Microservices》,详细的阐述了什么是微服务。