spring-cloud

这是一篇关于Spring Cloud的实战笔记,涵盖了从基础概念到高级特性的全面介绍。内容包括Eureka服务注册与发现、Ribbon的负载均衡和重试机制、Hystrix的降级、熔断和监控、Feign的声明式客户端接口以及Zuul的API网关等功能。此外,还涉及到虚拟机配置、Docker和Kubernetes的基础知识,以及链路跟踪和配置中心的使用。
摘要由CSDN通过智能技术生成

随堂笔记

这是随堂笔记, 详细内容请参考在线笔记:
https://blog.csdn.net/weixin_38305440

笔记乱码问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nczlVKT6-1611627651529)(note.assets/image-20200613174552258.png)]

课程安排(17到18天)

  1. Spring Cloud(6)
  2. RabbitMQ(2)
  3. Lucene Solr(1)
  4. Docker(2)
  5. Kubernetes(3)
  6. 分布式事务(3)
  7. RocketMQ(1)

王海涛

Spring Cloud

环境

  • IDEA 或 Eclipse(STS插件)

  • Lombok

  • Maven

    • 如果下载依赖有问题,更换阿里仓库和中央仓库
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                              https://maven.apache.org/xsd/settings-1.0.0.xsd">
    	<localRepository>D:\home\java\maven_repository</localRepository>
    
    	<mirrors>
    		<!--  打开阿里仓库,使用阿里仓库更新依赖
                  注释调用阿里仓库,使用中央仓库更新依赖
            -->
    		<mirror>
    			<id>alimaven</id>
    			<name>aliyun maven</name>
    			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    			<mirrorOf>central</mirrorOf>
    		</mirror>
    
    	</mirrors>
    </settings>
    
  • 微信:wanght6666666

  • 笔记:code.tarena.com.cn

  • csdn 笔记:https://blog.csdn.net/weixin_38305440/article/details/108609574

  • 代码仓库:https://gitee.com/benwang6/cgb2007

spring cloud是什么

  • spring cloud 是一个工具集

    • 集成多个工具,来解决微服务中的各种问题
    • 微服务全家桶
  • spring cloud 不是什么?

    • spring cloud 不是一个解决单一问题的工具
  • 远程调用 - RestTemplate

  • 负载均衡 - Ribbon

  • 重试 - Ribbon

  • 降级、熔断、限流 - Hystrix

  • 监控 - Hystrix Dashboard、Turbine、Sleuth、Zipkin

  • 配置中心 - Config server

  • 课程要求

    必须严格按照笔记做

    笔记中都是完整代码

    做的过程中不能直接 cv ,要自己手敲!!!

    如果遇到问题解决不了时,把前面做的一步代码cv一遍!!!

    业务模块

    02-item

    03-user

    04-order

    1. 工具类 - 不用自己写,在gitee或github搜索

      CookieUtil、JsonUtil、JsonResult

    2. TypeReference

      指定转换的类型: new TypeReference<List>() {}

    3. @RequestBody

      用来接收参数,从请求的协议体,完整接收协议体数据

    注册和发现

    注册中心产品:

    ​ zookeeper、eureka、nacos、consul、etcd…

    eureka

    1. 注册

    服务提供者启动时,向eureka一次次反复注册,直到注册成功为止

    1. 拉取注册表

    服务发现者每30秒拉取一次注册表(刷新注册表)

    1. 心跳

    服务提供者每30秒发送一次心跳数据

    eureka连续3次收不到一个服务的心跳,会删除这个服务

    1. 自我保护模式

    特殊情况

    如果由于网络不稳定或中断,15分钟内,85%以上服务器出现心跳异常,就会自动进入保护模式。

    在保护模式下,所有服务都不删除

    网络恢复后,可以自动退出保护模式,恢复正常

    开发期间很容易达到保护模式的条件,会影响测试,在开发期间可以关闭保护模式

    eureka 和 zookeeper 区别:

    • eureka:
      • 强调AP(可用性)
      • 集群结构:对等结构
    • zookeeper:
      • 强调CP(一致性)
      • 集群结构:主从结构

    搭建eureka服务器

    1. 新建 springboot 项目
    2. 添加 eureka server 依赖
    3. yml配置
      1. 主机名
      2. 禁用保护模式
      3. 针对单台服务器,配置不向自己注册,也不从自己拉取注册表
    4. 启动类注解 @EnableEurenaServer,通过注解触发自动配置

    单台 eureka 服务器启动后报错: Connect to localhost:8761 timed out

这是自动配置的一个默认集群服务器,但是这个默认服务器不存在,所以出错

后面自己搭建了集群服务,默认服务器就不会再自动配置

作业

  1. 提前下载最新依赖

课前资料\pom.xml

新建一个 maven 项目,把 pom.xml 代码粘进去,修改版本

  • springboot:2.4.0

  • springcloud: 2020.0.0-M5

    • pom.xml末尾添加
      <repositories>
            <repository>
              <id>spring-milestones</id>
                <name>Spring Milestones</name>
              <url>https://repo.spring.io/milestone</url>
            </repository>
      </repositories>
    

    然后更新依赖

    1. 安装新版 VMware

先卸载旧版本(江哥虚拟机镜像不会受影响)

再安装新版本

尽量用最新VMware,新版本对资源使用、运行效率都会有优化。

课前资料中提供了两个版本

  • 15.5.2
  • 12.x - 旧电脑cpu不支持虚拟化技术,可以使用12.x

官网还有有最新的 16 版本

Springboot 和 Springcloud 版本

  • springboot: 2.3.5.RELEASE
  • springcloud: Hoxton.SR9

02、03、04、05,都改

服务提供者

修改hosts文件,添加 eureka1 和 eureka2 的映射配置

C:\Windows\System32\drivers\etc\hosts

127.0.0.1  eureka1
127.0.0.1  eureka2

修改 02、03、04 这三个项目

  1. 添加 eureka client 依赖
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>
				spring-cloud-starter-netflix-eureka-client
			</artifactId>
		</dependency>
	
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值