SpringCloud

SpringCloud是微服务的一种实现,属于Spring旗下的项目之一,集成了很多其他优秀的流行框架,由于其团队的可靠性以及功能的强大,SpringCloud成为最火的微服务的实现方式

​ 其中SpringCloud又有两种解决方案

​ Spring Cloud Netflix

​ 该项目进入维护期,意味着没有新功能的添加,只进行bug修复

​ Spring Cloud Alibaba: learning.....

maven坐标

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.1.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

微服务的特点

  • 单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责

  • 微:微服务的服务拆分粒度很小,例如一个用户管理就可以作为一个服务。每个服务虽小,但“五脏俱全”。

  • 独立:自治是说服务间互相独立,互不干扰

    • 团队独立:每个服务都是一个独立的开发团队,人数不能过多。
    • 技术独立:因为是面向服务,提供Rest接口,使用什么技术没有别人干涉
    • 前后端分离:采用前后端分离开发,提供统一Rest接口,后端不用再为PC、移动端开发不同接口
    • 数据库分离:每个服务都使用自己的数据源
    • 部署独立,服务间虽然有调用,但要做到服务重启不影响其它服务。有利于持续集成和持续交付。每个服务都是独立的组件,可复用,可替换,降低耦合,易维护 Docker部署服务

简单理解就是之前的每一个单体应用都可以称之为服务,举个例子,一个刚上线的小型商城项目,起初的用户量访问量很少,使用单体架构完全可以应对,但一旦用户访问量增多时,服务器或者数据库承受不了那么多的访问量,服务器会出现宕机,为了解决很多类似的情况,便有了微服务这种思想,将项目改造成微服务架构,针对访问量较多的模块可以让其占用更大的资源

优点

解决了复杂问题,可以将一个庞大的单体应用程序拆解成一套服务,虽然功能数量不变,但应用程序已经被拆解成可管理的块或者服务,每个服务提供相对单一的功能,更容易理解和维护

每个服务可以进行单独部署,并且可以根据该服务的所需来调配资源,避免资源浪费

缺点

使项目整体变得更加复杂,服务间的通信也变得麻烦

由于服务有自己独立的数据库,需要解决数据间的同步

测试会变得相对麻烦,一个服务或者模块会依赖其他的模块,进行相互调用,所以必须还要启动其依赖的服务

Copyright © TaoQZ 2019 all right reserved,powered by Gitbook作者联系方式:taoqingzhou@gmail.com 修订时间: 2024-11-19 17:25:43

results matching ""

    No results matching ""

    results matching ""

      No results matching ""