1.为什么会出现微服务
整体应用程序(Monolithic applications)相当成功,但是越来越多的人感觉到有点不妥,特别是在云中部署时。变更发布周期被绑定了——只是变更应用程序的一小部分,却要求整个重新构建和部署。随着时间的推移,很难再保持一个好的模块化结构,使得一个模块的变更很难不影响到其它模块。扩展就需要整个应用程序的扩展,而不能进行部分扩展。
2.什么是微服务
微服务是一种架构风格,
就像是把一个单独的应用程序开发为一套小服务,
每个小服务运行在自己的进程中,并使用轻量级机制通信,通常是 HTTP Restful API。
这些服务围绕业务能力来构建,并通过完全自动化部署机制来独立部署。
这些服务使用不同的编程语言书写,以及不同数据存储技术,并保持最低限度的集中式管理。
微服务的应用致力松耦合和高内聚。
3.微服务与分布式的区别
分布式就是多台服务器部署了多个应用程序,这个应用程序可能是同一个。
而微服务则是多台服务器上部署了不同的单个服务。
4. 微服务的优缺点
优点:
1.松耦合和高内聚
2.开发简单,开发效率高,一个服务可能就是专一的只干一件事。
3.能使用不同的语言开发
4.微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面组件混合。
5.每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一的数据库。
缺点:
1.开发人员要处理分布式系统的复杂性
2.多服务运维难度,随着服务的增加,运维的压力也在增加
3.服务间通信成本
4.数据一致性
5.系统集成测试
6.性能监控