springcloud

一、前言

微服务 包含的东西 不只是 springcloud,springcloud只是解决了微服务的服务治理问题,对于微服务的其他问题并没有给出解决方案。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、认识微服务

1.)单体架构和分布式架构的区别?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.)什么是微服务?

微服务是分布式架构的最佳实践。
在这里插入图片描述

3.)三种微服务技术的对比?

在这里插入图片描述

在这里插入图片描述

4.)为什么springcloud能成为国内最广泛的微服务框架?

在这里插入图片描述

5.)springcloud与springboot的版本关系?

在这里插入图片描述

三、服务的拆分及远程调用

1.)服务拆分注意事项

在这里插入图片描述

2.)利用RestTemplate进行远程调用

1.)没有远程调用的情况
在这里插入图片描述

2.)向spring容器 中注入 RestTemplate
在这里插入图片描述
3.)利用RestTemplate 发送 HTTP请求,实现远程调用
在这里插入图片描述
4.)结果
在这里插入图片描述

四、Eureka的作用以及具体实现

1.)直接在代码中 使用 IP和端口的 问题

在这里插入图片描述

2.)Eureka的作用

在这里插入图片描述
在这里插入图片描述

3.)Eureka中,两种微服务角色 :

在这里插入图片描述

4.)Eureka注册中心 动手实践

在这里插入图片描述

1.)搭建注册中心
新建模块 引入服务端依赖:

在这里插入图片描述
编写启动类并注意加上相关注解
在这里插入图片描述
启动 查看

在这里插入图片描述
在这里插入图片描述

2.)服务注册
引入 客户端 依赖
在这里插入图片描述
添加 配置信息
在这里插入图片描述

模拟多实例部署
在这里插入图片描述

3.)服务发现
使用服务名称 代替 ip和端口
在这里插入图片描述
添加负载均衡注解

在这里插入图片描述
4.)启动,查看
在这里插入图片描述

5.)todo (Ribbon负载均衡)

1.负载均衡源码解读

使用@LoadBalanced注解进行负载均衡时,实际上是通过Ribbon实现负载均衡
在这里插入图片描述

2.改变负载均衡策略

3.饥饿加载

五、Nacos注册中心

1.)安装和认识Nacos

安装包和安装指南在百度网盘。

注意:

以非集群的形式启动Nacos时,应该以如下方式启动:

进入bin目录,执行以下命令:

startup.cmd -m standalone

访问:
http://127.0.0.1:8848/nacos
密码:nacos 账号:nacos

2.)Nacos的快速入门

①引入依赖
在这里插入图片描述

在这里插入图片描述
②在yml文件中配置Nacos地址
在这里插入图片描述
③浏览器访问控制台可见服务已经被注册
在这里插入图片描述

3.)Nacos分级存储模型

当本集群中的服务不可访问时,再访问其他集群。
在这里插入图片描述

配置服务所属集群

在这里插入图片描述

4.)服务负载均衡

1.根据服务负载均衡

在这里插入图片描述

2.根据权重负载均衡

在Nacos控制台,编辑实例的权重
在这里插入图片描述

3.Nacos环境隔离

Nacos通过namespace进行环境隔离

①在Nacos控制台新建namespace
在这里插入图片描述

②每一个namespace都有一个唯一的namespaceid,在yml文件中配置每个服务所属的namespace。
在这里插入图片描述

六、Eureka和Nacos的区别

1.服务健康监测不同

Nacos的实例可以分为:临时实例 和 非临时实例
临时实例宕机时,会从naocs的服务列表中剔出,非临时实例不会。

心跳模式:在每一个Eureka Client启动的时候,都会有一个HeartbeatThread的心跳线程,这个就是一个后跳线程,保证默认30秒的时候向Eureka Server发送一个信息的请求,告诉Eureka Server当前的Eureka Client还存活着。eureka.instance.lease-renewal-interval-in-seconds,这个参数可以来配置对应的心跳间隔时间。

Eureka的健康检测为心跳模式
Nacos的临时实例的健康监测为心跳模式
Nacos的非临时实例的建康监测为naocs主动询问

在这里插入图片描述

在这里插入图片描述

2.消费者的服务列表更新方式不同

Eureka:定时拉取
Nacos:定时拉取+主动推送变更消息

3.Nacos集群采用的模式不同

Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式

Eureka采用AP方式

七、Nacos配置管理

Naocs不仅可以作为注册中心,还可以进行统一配置管理

1.)实操

①在Nacos控制台中增加配置

在这里插入图片描述
在这里插入图片描述

②项目启动时,读取配置文件的顺序

在这里插入图片描述

③引入Nacos配置管理的相关依赖

在这里插入图片描述

④创建bootstrap.yml文件

注意将application.yml文件中的重复配置删除掉
在这里插入图片描述

⑤编写接口

在这里插入图片描述
在这里插入图片描述

2.)配置自动刷新

直接在Nacos控制台上编辑配置文件即可,不用重启服务。

①在@value注入的变量所在类上加@RefreshScope

在这里插入图片描述

②使用@ConfigurationProperties注解

在这里插入图片描述
在这里插入图片描述

3.)多环境配置共享

在这里插入图片描述

在这里插入图片描述

4.)多服务配置共享

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.)Nacos集群搭建(按文档搭建即可)

我们计划的集群结构:
在这里插入图片描述

1.初始化数据库

Nacos默认数据存储在内嵌数据库Derby中,不属于生产可用的数据库。
官方推荐的最佳实践是使用带有主从的高可用数据库集群,主从模式的高可用数据库可以参考传智教育的后续高手课程。
这里我们以单点的数据库为例来讲解

在这里插入图片描述

2.下载nacos

nacos在GitHub上有下载地址:https://github.com/alibaba/nacos/tags,可以选择任意版本下载

3.配置nacos

注意,Nacos的安装目录一定不能有中文,如果有中文的话,就会报错。
在这里插入图片描述

4.启动

5.nginx反向代理

八、使用Fegin远程调用

1.)使用RestTemplate的缺点

真实企业开发时,请求的路径的参数会比较复杂且多变,如果使用RestTemplate,代码可读性差、修改不方便。

2.)Fegin入门

1.引入依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

2.在springboot启动类上开启Fegin
在这里插入图片描述
3.创建Fegin接口
在这里插入图片描述
在这里插入图片描述

3.)Fegin的自定义配置

在这里插入图片描述

1.配置文件方式

在这里插入图片描述

2.java代码方式

在这里插入图片描述

在这里插入图片描述

4.)性能优化

在这里插入图片描述

1.修改Fegin底层的默认客户端:使其支持连接池

①引入httpclient依赖

        <!--httpclient-->
        <dependency>
            <groupId>io.github.openfeign</groupId>
            <artifactId>feign-httpclient</artifactId>
        </dependency>

②修改配置文件
在这里插入图片描述

2.修改日志级别为BASIC

5.)Fegin的最佳实践

1.让原来服务提供者(userservice)的controller和服务消费者(orderservice)的Feginclient继承同一接口

2.将FeginClient、POJO、Fegin的默认配置都定义到一个项目中,供所有消费者使用

1.创建一个module,引入依赖
在这里插入图片描述

2.将orderservice中的部分文件转移到feign-api
在这里插入图片描述
3.在orederservice中引入fegin-api的依赖,并在代码中引入
在这里插入图片描述
这里可能会出现,order-service中不能用feign-api的问题
点击这里解决

4.在启动类上加上如下属性,将UserClient加入到Bean容器中
在这里插入图片描述

九、统一网关Gateway

1.)为什么需要网关?

在这里插入图片描述
在这里插入图片描述

2.)快速入门

1.创建新的module,并引入以下依赖:

        <!--网关依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

        <!--naocs服务发现依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

2.编写启动类
在这里插入图片描述
3.编写配置文件
在这里插入图片描述
在这里插入图片描述

3.)路由断言工厂

在这里插入图片描述
在这里插入图片描述

4.)路由过滤器

1. 路由过滤器的作用?

对进入网关的请求和微服务发回的响应做处理。
在这里插入图片描述

在这里插入图片描述

2.实操

单一路由生效

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

全路由生效

在这里插入图片描述

5.)全局过滤器

炸一听,全局过滤器和上面的默认过滤器相似,他们的不同点就是:
全局过滤器可以自定义一些复杂的逻辑,而默认过滤器已经被spring写死。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.)过滤器的执行顺序

1.order值越小,越先执行
2.order值一样,defaultfilter>局部路由过滤器>全局过滤器

在这里插入图片描述
在这里插入图片描述

7.)跨域问题处理

在这里插入图片描述
在这里插入图片描述

十、Docker

1.)Docker的一些概念:

镜像和容器?
镜像:将应用程序及其依赖、环境、配置打包在一起。
容器:镜像运行起来就是容器,一个镜像可以运行多个容器。
各个容器之间是隔离的,防止污染容器。

镜像的结构?
服务端:接受命令或远程请求,操作镜像或容器
客户端: 发送命令或者请求到Docker服务端

2.)常用镜像命令

在这里插入图片描述

1.查看帮助:docker --help

在这里插入图片描述

2.拉取镜像 : docker pull xxxxx

在这里插入图片描述

3.将镜像save到磁盘,然后load回来:

在这里插入图片描述
在这里插入图片描述

3.)常用的容器命令

在这里插入图片描述

1.创建一个容器

应该去docker hub查看某个容器的启动命令:
Docker Hub
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.进入容器 修改一些东西

在这里插入图片描述
在这里插入图片描述

3.删除容器

在这里插入图片描述

4.)数据卷

1.容器和数据耦合所带来的一些问题:

容器与数据的耦合所带来的一些问题:
在这里插入图片描述

2.用数据卷来解决容器和数据耦合的问题

数据卷是一个虚拟目录,指向宿主机文件系统的某个目录。
在这里插入图片描述

3.关于数据卷的基本操作:

在这里插入图片描述

在这里插入图片描述

4.将数据卷挂载到容器当中

在这里插入图片描述

5.将宿主机目录直接挂载到容器当中

在这里插入图片描述

6.数据卷挂载和目录挂载的区别?

数据卷挂载 :数据存放在docker给我们准备的目录下
目录挂载:数据存放在我们想要存放的目录 ,
在这里插入图片描述

5.)自定义镜像

1.进入目录,通过Xftp将所需要的文件传输过来

在这里插入图片描述
2.执行命令:
在这里插入图片描述
在这里插入图片描述

6.)DockerCompose

Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而不用手动的一个一个创建。

在这里插入图片描述

7.)Docker镜像仓库(搭建私有镜像仓库)

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Spring Cloud是一个用于构建分布式系统的开发工具集合。它提供了一些常用的组件和框架,包括服务注册和发现、负载均衡、断路器、分布式配置等等。在使用Spring Cloud时,有一些常见的错误和注意事项需要注意。 首先,关于Spring Boot和Spring Cloud版本对应错误。在使用Spring Cloud时,需要确保Spring Boot和Spring Cloud的版本兼容。不同版本之间可能存在依赖冲突或不兼容的情况,因此需要根据官方文档或者相关文档来选择合适的版本。 另外,Spring Cloud Config是一个用于集中管理和动态获取配置的工具。它支持从Git、SVN或本地文件系统中获取配置文件,并提供了服务器和客户端支持。你可以通过官方使用说明文档了解更多关于Spring Cloud Config的详细信息。 此外,关于选择使用Nacos还是Eureka作为服务注册和发现组件的问题。Nacos是一个功能更强大的服务注册和发现组件,它整合了Spring Cloud Eureka、Spring Cloud Config和Spring Cloud Bus的功能。使用Nacos可以实现配置的中心动态刷新,而不需要为配置中心新增集群或使用消息队列。另一方面,Eureka是Spring Cloud原生全家桶的一部分,相对来说更加稳定一些。选择使用哪个组件需要根据具体的需求和项目特点来决定。 综上所述,Spring Cloud是一个用于构建分布式系统的开发工具集合,它提供了一些常用的组件和框架。在使用Spring Cloud时,需要注意Spring Boot和Spring Cloud版本的兼容性,并可以使用Spring Cloud Config来动态获取配置。同时,可以选择使用Nacos或Eureka作为服务注册和发现组件,具体选择需要根据项目需求来决定。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值