微服务简介

作者: 董二弯 | 来源:发表于2019-03-24 12:27 被阅读3次

    在学习spring cloud构建微服务之前,我们先对比于单体架构来了解微服务的优势和不足。

    单体架构

    所谓单体应用就是将所有的业务场景的表示层、业务逻辑层和数据访问层都放在一个工程中,最终经过编译、打包,部署在一台服务器上。

    不足:

    1.业务越来越复杂:代码可读性、可维护性和可扩展性下降。

    2.并发能力有限:随着用户越来越多,程序承受的并发越来越高,单体应用的并发能力有限。

    3.测试的难度越来越大:随着业务的扩张,修改或者增加业务会给其它业务带来一定的影响,导致测试难度增加。

    解决以上的并发能力有限的问题,可将单体应用集群部署,并增加负载均衡服务器。这种方式改善了系统的性能,但还是存在不足。

    1.系统依然是单体,代码可读性和维护性差。

    2.持续交付能力差,业务越复杂,代码越多,修改代码和添加代码的时间越长。新人熟悉代码的时间长、成本高。

    微服务

    概念:引用“微服务”这一名词的发明人Martin Fowler的理解。 将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP RESTFUL API。这些服务围绕业务能力来划分架构,并通过完全自动化部署机制来独立部署。这些微服务可以使用不同的编程语言,以及不同的数据存储技术,以保证最低限度的集中式管理。

    相对于单体服务,微服务的主要体现以下方面的优势

    1.将一个复杂的业务分解成若干小的业务,为每个服务拆成一个服务,将复杂的问题简单化。

    2.微服务系统是分布式系统,服务与服务之间没有任何的耦合,具有极强的横向扩展能力。

    3.服务之间通过HTTP通信协议来通信,使得微服务可以采用任何得=的开发语言和技术来实现。可以选择最适合自己的开发语言和技术,提高开发效率,降低开发成本。

    4.减少了测试和部署的时间。每个服务单独部署,测试时只需要部署修改的那个服务,不用像单体应用一样部署整个应用。

    5.微服务在CAP理论中采用的时AP架构,即具有高可用和分区容错的特点。高可用体现在大量的微服务集群,实现了7*24小时不间断的服务。另外,分期容错也使得系统更加的健壮。

    凡是都有两面行。微服务也有它的不足。

    1.构建复杂度高,需要掌握更多的架构知识和框架知识。

    2.分布式事务控制,每个微服务有独立的数据库,在协同操作数据时,保证数据的一致性问题较复杂。

    3.服务划分不易,需要依靠团队人员对业务的熟悉程度和理解程度。

    4.服务的部署复杂,需要开发人员或运维人员对微服务系统有足够强的控制力。

    总结

    技术应该是随着业务的发展而发展的。当业务很单一时,单体架构够用的情况下,就应该用单体应用,因为它开发速度快,性价比高。但是随着业务的不断发展,用户量不断增加导致单体应用使用很不爽时,就可以考虑微服务架构的系统。在当今大数据时代,微服务也是发展的趋势,所以微服务技术是很重要的开发技能。在之后的章节一起学习微服务架构框架spring-cloud。

    相关文章

      网友评论

        本文标题:微服务简介

        本文链接:https://www.haomeiwen.com/subject/vezyvqtx.html