SpringCloud

1.Spring Cloud介绍

在这里插入图片描述

在系统架构与设计的实践中,从宏观上可以总结三个阶段:
集中式架构:就是把所有功能、模块都集中到一个项目中,部署在一台服务器上,从而对外提供服务(单体架构、单体服务、单体应用)。
直白一点:就是只有一个项目,只有一个war
分布式架构:就是把所有的功能、模块拆分成不同的子项目,部署在堕胎不同的服务器上,这些子项目相互协作共同对外提供服务。
直白一点:就是有很多项目,有很多war包,这些项目相互协作完成需要的功能,不是一个war能完成的,一个war包完成不了
比如:
Shop项目:单体应用
Shop项目:拆分 -->(user-center,order-center,trade-center)分布式应用
微服务架构:分布式强调系统的拆分,微服务也是强调系统的拆分,微服务架构属于分布式架构的范畴;
并且到目前为止,微服务并没有一个统一的标准定义,那么微服务究竟式什么?
简单的说,微服务式系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各个独立的进程中运行,服务之间通过HTTP的RESTful API进行通信协作(dubbo–>dubbo协议);
被拆分后的每一个小型服务都专注于完成系统中的某一项业务功能职责单一,并且和部署等;
由于各个独立的服务之间使用的是基于HTTP的JSON作为数据通信协作的基础,所以这些微服务也可以使用不同的语言来开发
在这里插入图片描述
比如:项目里面有User模块和Order模块,但是User模块和Order模块并没有直接关系,仅仅只是一些数据需要交互,那么就可以把这2个模块单独分开来,当user需要调用order的时候,order是一个服务方,但是order需要调用user的时候,user又是服务方了。所以,他们并不在乎谁是服务方谁是被调用方,他们都是2个独立的服务,这就是微服务的概念;

经典面试题:分布式和微服务有什么区别? 相同部分: 分布式:就是将巨大的一个系统划分为多个模块,这一点和微服务是一样的,都是要把系统进行拆分,部署到不同机器上。因为一台机器可能承受不了这么大的访问压力,或者说要支撑这么大的访问压力需要采购一台性能超级好的服务器,其财务成本非常高,有这些预算完全可以采购多台普通的服务器了,分布式系统各个模块通过接口进行数据交互,其实分布式也是一种微服务,因为都是把模块拆分变为独立的单元,提供接口来调用,那么他们本质的区别是什么?
它们本质区别体现在“目标”上,何为目标,就是你采用分布式架构或者采用微服务架构,你最终是为了什么?要达到什么目的?
分布式架构的目标是什么?就是访问量很大一台己气承受不了,或者是成本问题,不得不使用多台机器来完成服务部署。
而微服务的目标是什么?只是让各个模块拆分开来,不会被互相影响,比如模块的升级或者出现BUG或者是重构等等都不影响到其他模块,微服务它是可以在一台机器上部署;
但是:分布式也是微服务的一种,微服务也属于分布式;

面试:微服务与spring-cloud的关系或区别?
微服务只是一种项目的架构方式、架构理念、或者说是一种概念,就如我们的MVC架构一样,那么spring cloud便是对这种架构方式的技术落地实现;

面试:微服务一定要使用spring cloud吗
微服务只是一种项目的架构方式、架构理念、所以任何技术都可以实现这种架构理念,只是微服务架构里面有很多问题需要我们去解决,比如:负载均衡,服务的注册与发现,服务调用,服务路由,服务熔断等等一系列问题,如果你自己从0开始实现微服务架构理念,那头发都掉光了,所以spring cloud帮我们做了这些事情,spring cloud将处理这些问题的技术全部打包好了,我们只需要开箱即用;

Spring Cloud为分布式系统开发的典型应用场景提供良好的开箱即用的功能
比如:
分布式/版本化配置
服务注册和发现
路由
服务于服务间的调用
负载均衡
断路器
全局锁
领导选举于集群状态
分布式消息传递

Spring cloud下的主要项目
Spring Cloud Config
Spring Cloud Netflix
Spring Cloud Bus
Spring Cloud Cloudfoundry
Spring Cloud Open Service Broker
Spring Cloud Cluster
Spring Cloud Consul
Spring Cloud Security
Spring Cloud Sleuth
Spring Cloud Data Flow
Spring Cloud Stream
Spring Cloud Stream App Starters
Spring Cloud Zookeeper
Spring Cloud AWS
Spring Cloud Connectors
Spring Cloud Starters
Spring Cloud CLI
Spring Cloud Contract
Spring Cloud Gateway
Spring Cloud OpenFeign
Spring Cloud Piplines
Spring Cloud Function

2.Spring Cloud的整体架构

在这里插入图片描述
Service Provider :暴露服务的服务提供方
Service Consumer :调用远程服务消费方
EureKa Server:服务注册中心和服务发现中心
理解:当user需要调用order的时候,order是一个服务方,但是order需要调用user的时候,user又是服务方了。
在这里插入图片描述

3.Spring Cloud是基于SpringBoot开发的

3.环境搭建
springcloud & springboot
版本
springcloud Hoxton.SR6
springboot 2.2.5.RELEASE
jdk1.8

    maven3.x

a.创建springcloud项目,底层是基于springboot来创建的

b.在父项目中继承
  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starters</artifactId>
        <version>2.2.5.RELEASE</version>
    </parent>
c.维护springcloud的依赖
       <properties>
            <spring.cloud-version>Hoxton.SR6</spring.cloud-version>
        </properties>

        <!--    维护版本-->
            <dependencyManagement>
                <dependencies>

                    <!--springcloud-->
                    <dependency>
                        <groupId>org.springframework.cloud</groupId>
                        <artifactId>spring-cloud-dependencies</artifactId>
                        <version>${spring.cloud-version}</version>
                        <type>pom</type>
                        <scope>runtime</scope>
                    </dependency>

                </dependencies>
            </dependencyManagement>

4.服务注册中心

所谓服务注册中心就是在整个的微服务架构中单独提出一个服务,这个服务不完成系统任何的业务功能。仅仅用来完成对整个微服务系统的服务注册和服务发现,以及对服务健康状态的监控和管理功能

1.服务注册中心

  • 可以对所有的微服务的信息进行存储,如微服务的名称、IP、端口等
  • 可以在进行服务调用时通过服务发现查询可用的微服务列表及网络地址进行服务调用
  • 可以对所有的微服务进行心跳检测,如发现其实例长时间无法访问,就会服务注册表移除该实例

2.服务注册中心组件开发
常用注册中心组件:eureka(netflix)、zookeeper(java)、consul(Go)、nacos(java阿里巴巴)

3.关于eureka注册中心

Eureka是Netflix开发的服务发现架构,本身是一个基于REST的服务。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringClpud的服务注册和发现功能。
Eureka包含两个组件:Eureka Server 和 Eureka Client

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值