什么是微服务和Spring Cloud

本文介绍了微服务架构的基本概念,对比了单体架构的优缺点,强调了SpringCloud在微服务实现中的作用,以及SpringCloudAlibaba如何通过集成阿里巴巴开源组件简化微服务开发。
摘要由CSDN通过智能技术生成

1.什么是微服务

        微服务(Microservices)由Martin Fowler在2014年提出(原文链接:Microservices),是一种架构风格。与传统的单体应用架构相比,微服务是一种分布式架构的实现,采用了分而治之的思想,微服务架构提倡将各个模块进行拆分(如用户模块、支付模块等)。每个模块有其自己的服务,时整个应用更加的轻量级,同时降低了代码之间的耦合度,各个服务之间采用HTTP进行通信。

        除此之外,在微服务中,各个服务可以使用不同的发开语言进行开发,也可以使用不同的存储技术进行数据存储。比如,用户服务随着我们的业务逐渐复杂,发现用户服务的请求也越来越慢,就可以使用golang重构用户服务或采用性能更优的数据库进行数据存储。

2.从单体架构到微服务

        在我们学习的过程中,将所有的业务模块都打包到一个jar包中,然后将其部署运行就是单体应用,在简单的业务中,单体架构能够满足我们的需求。但随着业务的逐渐复杂,一个服务器可能无法承受如此大的访问量,响应越来越慢,这时候能够想到的最简单的方法就是购买多个服务器,将应用在服务器上一个个部署,再结合负载均衡,这样就将我们的单体应用变成了一个简单分布式应用。

         思考一个问题,是不是我们应用中的所有模块都有如此大的业务需求和访问量呢?比如12306抢票软件的主要访问量在车票、机票的购买,而用户的管理模块访问量并不大。如果采用上述的方式,将造成服务器资源的浪费。但是如果我们将单体应用中的各个服务进行拆分,而后根据实际的需求,将实际需求对服务进行集群部署,就可以解决服务器资源浪费的情况了,如下图所示:

        但在实际的开发过程中,选择单体架构还是微服务架构需要从多个方面进行考量,如成本、项目规模、技术难度等。下面列出微服务架构和单体架构各自的优缺点:

        单体架构:

                优点:部署成本低, 架构简单便于实现,技术实现难度低

                缺点:代码耦合度高,不利于性能扩展

        微服务:

                优点:服务间耦合度低,各个服务便于各自升级维护,开发更加灵活,不同服务可以用                                          不同的技术实现,只要能保证服务之间能够正常通信

                缺点:部署成本高、运维和监控难度大,技术难度高。

3.Spring Cloud与微服务的关系

        很多人一提到Spring Cloud和微服务会将两者认为是同一个东西,其实这是不对的。

        微服务是一种架构风格和方案,微服务不仅仅是将应用进行拆分而已,还包括服务的管理、监控、通信等。

        Spring Cloud其实也并不是一种新的框架,而是基于Spring Boot将各种微服务框架进行了整合,能够实现微服务的落地框架。如Spring Cloud中集成了服务的管理(Nacos、Eureka),服务的远程调用(Fegin、Dubbo)等。

4.Spring Cloud Alibaba

        Spring Cloud是由阿里巴巴开源提供,符合Spring的设计规范,已被Spring官方纳入Spring体系中的一个微服务框架。Spring Cloud Alibaba是目前最火的微服务框架。

Spring Cloud Alibaba中集成了大量阿里的开源组件:

        Nacos:用户注册和管理服务

        Gateway:API网关

        Sentinel:用于控制服务流量管理

        RocketMQ:用于解决服务之间消息的推送

        Dubbo:高性能RPC(远程调用) 框架。

        Seata:用于解决分布式事务

        依靠SpringCloud Alibaba,引入少量依赖,就可以与实现阿里巴巴微服务的解决方案。同时由于这些开源框架的官方文档都是中文的,学习也更加容易。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Andrew-ZhangJinyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值