springcloud篇】十. springcloud

1. springcloud是什么

  1. 提供了一系列微服务开发的一站式解决方案,也是一系列主流框架的集合。
  2. 在微服务架构中,需要几个基础的服务治理组件。包括服务注册与发现,服务消费,负载均衡,断路器,智能路由,配置管理等。由这几个基础组件项目协助,共同组建一个简单的微服务系统。

1.1 eureka

  1. 使用eureka做注册中心
    1.1 eureka保证可用性(CP)
  2. http协议
  3. 用户自己开发
  4. 保护机制

1.2 dubbo

  1. 使用zookeeper做注册中心
    1.1 zookeeper保证一致性(AP)
  2. netty(socket)
  3. 部署到linux上

2. 微服务是什么

  1. 将一个单一应用程序开发为一组小型服务的方法。
  2. 每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常是http)。
  3. 服务围绕业务能力构建并且可通过全自动部署机制独立部署。
  4. 服务共用一个最小型的集中式管理,服务可用不同语言开发,使用不同的数据存储技术。

2.1 微服务特点

  1. 围绕业务进行服务拆分
  2. 每个服务都是独立进程
  3. 轻量级通信协议
  4. 中心化管理

2.2 微服务缺点

  1. 项目颗粒度太低,增加了项目管理难度
  2. 远程调用带来的性能损耗
  3. 跨服务的测试更为复杂
  4. 运维成本更好
  5. 需要强大的整体规划与设计能力

3 分布式中CAP原则

  1. 在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
  2. 一致性(Consistency): 对于每一次读操作,要么都能读到最新写入的数据,要么失败。
  3. 可用性(Availability):对于每一次请求,都能得到一个及时,正确的响应。但是不保证请求的结果是基于最新写入的数据,不出现用户操作失败或者访问超时等用户体验不好的情况。
  4. 分区容错性(Partition tolerance):由于节点之间的网络问题,即使一些消息对包或者延迟,整个系统能继续提供服务。

4. Eureka – 注册中心服务

  1. 创建springboot项目,选择eureka-server
  2. 添加@EnableEurekaServer
  3. 配置注册中心地址
  4. 启动访问

4.1 Eureka自我保护机制

  1. Renews threshold:期望每分钟收到客户端心跳数
  2. Renews (last min): 最后一分钟收到客户端心跳数
  3. 当 Renews < Renews threshold * 0.85 就会触发自我保护机制
  4. eureka.server.enable-self-preservation=false # 关闭自我保护机制,默认开启

5. Ribbon – 消费服务

  1. 创建springboot项目,选择eureka-client
  2. 定义Controller,开启包扫描
  3. 配置端口,注册中心地址
  4. 启动访问Controller
  5. 创建springboot项目,选择eureka-client和ribbon
  6. 定义Controller,调用RestTemplate,开启包扫描
  7. 配置端口,注册中心地址
  8. 启动调用

6. Feign – 消费服务

  1. 创建springboot项目,选择eureka-client和openFeign
  2. 定义接口调用提供者
  3. 定义Controller,开启包扫描和添加Feign注解扫描接口
  4. 配置端口,注册中心地址

6.1 区别

  1. Ribbon基于Http的负载均衡
  2. Feign在Ribbon的基础上进行了封装,以面向对象的方法调用服务

7. Hystrix – 断路器

  1. 线程池隔离:再开个线程
  2. 信号量隔离

7.1 降级

  1. 方法上添加HystrixCommand注解和定义方法
  2. 添加@EnableHystrix注解

7.2 熔断

  1. 创建springboot项目,选择eureka-client和openFeign(feign包含hystrix)
  2. 给api接口定义一个实现类,FeignClient添加fallback
  3. 配置开启断路器 feign.hystrix.enabled: true

8. gateway – 路由网关

  1. 创建springboot项目,选择eureka-client和gateway
  2. 配置端口,注册中心地址,路由网关
    在这里插入图片描述

9. 限流

  1. 令牌桶算法
  2. 令牌桶:redis
  3. 配置到路由中,导入redis依赖
  4. 定义限流方法
  5. 配置redis和限流过滤器
    在这里插入图片描述

10. config – 配置中心

  1. 创建springboot项目,选择config server
  2. 新建config目录存放所有配置文件
  3. 配置端口和config配置
  4. 开启EnableConfigServer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值