了解微服务

来源:互联网 发布:人工智能实验室网站 编辑:程序博客网 时间:2024/06/06 05:13
微服务:将软件的功能进行拆分,将服务粒度做小,可以独立承担对外服务的职责。

1.软件开发时,将要开发的项目分为不同的功能,负责每个功能的人员在自己的项目上并行开发,即每个微服务都是各自独立的项目,而对应的开发团队也基本上独立对应,保证了微服务的秉性研发,并且各自快速迭代。
2.软件交付时,每个功能的项目都可以独立交付,不受其他功能的影响。这加快了微服务的迭代和交付效率。
3.部署运行时,每个微服务之间运行也是相互独立的。

微服务独立运行带来的好处:
1.可扩展性:传统的Monolith(大一统)模式,为了提升服务能力,很多时候必须强化和扩展单一节点,当单节点服务能力扩展至极限,则需要从软件到硬件进行重构。而微服务则可以快速添加服务集群的实例来提升整个微服务集群的服务能力。
2.隔离性:是可扩展性的基础。每个微服务是一个独立的运行单元,任何一个或多个微服务的失败只会影响自己或少量的其他微服务,不会大面积波及整个服务运行体系。

微服务可以基于不同的计算机语言来构建,但是应该尽量统一微服务的服务接口和协议,因为可以使服务的访问者使用统一接口来访问这些不同语言开发和交互的微服务。

微服务带来的挑战:
服务数量增多,若要实施高效可重复的标准化微服务生产,我们需要有类似传统行业生产线的基础设施。