Ⅲ.spring cloud

一、从面试题开始

常见面试题

二、微服务概述

2.1 简介

微服务概念

all in one ——>one in one
模块独立(拆分),进程独立(独立),降低耦合(解耦)
服务之间通过restful接口调用,通过注册中心管理链接

2.2 微服务与微服务架构

微服务是模块,微服务架构是一种架构模式,多个微服务组成微服务架构。

2.3 微服务优缺点
优点

缺点
2.4 spring cloud概述
spring cloud概述

springboot和springcloud的关系
2.5 spring cloud 与 dubbo
  1. 社区
    spring cloud的社区活跃度优于dubbo
  2. 技术




    dubbo-RPC

    springcloud-RESTful

总结:商用软件稳定性大于一切。

三、微服务项目构建

版本说明

版本对应

创建maven项目

四、Eureka


由server(eureka)与client(module)组成

  1. 服务注册中心,保存各个服务的节点信息;
  2. 维持心跳,超时(默认90秒)断开连接;
  3. 微服务故障,采取保护机制。
保护机制

4.1 建立模块

4.11 server
依赖

配置

启动类

访问配置ip:port可以查看注册的微服务

4.12 服务提供者
依赖

配置

启动类


更改ip:port内的服务名
4.13 服务消费者

依赖和启动类与生产者相同


配置

4.2 搭建集群

1.新建三个eureka模块7001,7002,7003
2.三个模块之间相互关联


server7001

7002关联7001和7003
7003关联7001和7002


client

4.3 eureka 与 zookeeper

ACID与CAP



商用软件稳定性大于一切,因此可用性更重要。

五、Ribbon

5.1 原理

简介

作用

5.2 编写

依赖

注解

代码

消费者消费的地址由指定变为服务集群,由客户端的ribbon来选择,做负载均衡。


实例

5.3 实现

负载均衡三大算法:轮询,随机,权重

六、feign

6.1 原理

6.2 实现

依赖

服务提供者

服务消费者-启动类

服务消费者-调用

七、Hystrix

7.1 熔断原理

服务雪崩

熔断

保护机制

7.2 熔断编码

hystrix针对一个服务消费端模块


依赖

服务调用与熔断机制

启动类

7.3 降级原理

降级

同一时间某一服务端访问非常多,hystrix会暂时熔断访问较少的服务,以保证主服务正常运行。

7.4 降级实现

配置

原始类

熔断类

服务降级即使服务已关闭依然可以运作。

7.5 熔断与降级的区别

熔断发生在服务端,某个服务出现异常,发生熔断。
降级发生在客户端,主动关闭某个服务,客户端接收到已经准备好的缺省值。

7.6 服务监控

监控
监控依赖

监控
被监控

被监控服务添加依赖和servlet bean



被监控依赖

添加启动类servlet

访问监控页面

监控页面配置


八、Zuul

8.1 原理

简介

门户

功能包括:路由,代理,过滤

8.2 实现

依赖

配置

启动类

可以通过 zuul服务的ip:port+指定服务端名+路径 来访问


访问

添加服务端名称映射,屏蔽掉的原服务端路径,公共路径

zuul服务的ip:port+map映射名+公共路径+路径 进行访问


zuul服务的ip:port+map映射名+指定根路径名+路径

九、config

9.1 原理


9.2 实现-服务端

服务端依赖

使用https


服务端配置:远程config

服务端启动类

云端配置文件


配置文件

方式一:config服务端ip:port/配置文件-配置模块.yml
方式二:config服务端ip:port/配置文件/配置模块/分支
获取配置文件内容



路径

通过config 可以连接git 获取云端配置


访问配置文件

9.3 实现-客户端

客户端配置文件上传到云端


客户端云端配置

客户端依赖

客户端本地配置

客户端启动类
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容