当前位置: 首页 > article >正文

Spring cloud

ebdf84f21efd45159b06942625bfbce4.png

Consul

Consul by HashiCorp

分布式服务发现与控制管理系统

1. 作为注册中心为微服务提供服务

2. 独立于业务代码之外

Spring Cloud Consul :: Spring Cloud Consul

  • Consul能干什么?

    1. 服务发现:提供HTTP和DNS两种发现方式,互相通信就可以用应用名字代替IP了
    2. 健康检测
    3. KV存储(全局配置,动态刷新)
    4. 多数据中心
    5. 可视化WEB界面
  • 52a57d53fe344a64a09234f2111acb93.png
  • 54d3294acaf742ab93b7ab1f88d32bb5.png

分布式CAP

数据一致性:数据在多个节点的备份需要一致

高可用性:故障不影响访问,速度要在一定范围内

分区容错性:出现网络分区问题,系统仍然运行

配置Consul

1. Pom引用starter依赖

2. 主启动类EnableDiscoveryClient

3. yml里面加入consul配置,服务名,consul地址端口,health check,consul里面存的数据,以及自动刷新,主启动类需要加@RefreshScope注解

4. 数据相关的配置需要放在bootstrap.yml里面因为他比application.yml加载更早

OpenFein

Spring Cloud OpenFeign :: Spring Cloud Openfeign

功能:

1. 在公共模块可以标注声明一个接口,里面的标准和真实调用一致

2. 这样consumer就可以不直接访问真实路径,而是直接调用声明出来的接口方法就可以了

节省调用的代码

3. 自动带有负载均衡

配置方式

openfein Agent:

1. 引入pom依赖(starter和balance)

2. 主启动类里面enableopenfeinclient

openfein节点中

1. pom依赖

2. 注解声明接口@FeignClient("服务名"),写接口

高级特性

1. 超时控制

openfein默认超时时间是1min

Spring Cloud OpenFeign Features :: Spring Cloud Openfeign

openfeign:
  client:
    config:
      default:
        #超时配置
        readTimeout: 5000
        connectTimeout: 5000
      cloud-provider-payment:
        readTimeout: 5000
        connectTimeout: 5000

2. http替换

httpclient:
  hc5:
    enabled: true

3. 请求压缩

openfeign:
  compression:
    request:
      enabled: true
      #达到多大开始压缩
      min-request-size: 2048
      #触发压缩的类型
      mime-types: types=text/xml,application/xml,application/json
    response:
      enabled: true

4. 打印日志

1. 配置Bean

@Bean
public Logger.Level openFeinLoggerLevel() {
    return Logger.Level.FULL;
}

2. 

logging:
  level:
    com:
      yanxiaotong:
        cloud:
          api:
            PayApiFein: debug

断路器

Circuit Breaker Properties Configuration :: Spring Cloud Circuitbreaker

8e414e7bdb95486881922196bcb86722.png

配置

1. POM:

<!--熔断器-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

2. yml:

resilience4j:
  circuitbreaker:
    configs:
      default:
        failureRateThreshold: 50%
        slidingWindowType: TIME_BASED
        slidingWindowSize: 10
        minimumNumberOfCalls: 10
        automaticTransitionFromOpenToHalfOpenEnabled: : true
        waitDurationInOpenState: 5s
        # 半开时候允许的最大请求数量
        permittedNumberOfCallsInHalfOpenState: 2
        recordExceptions:
          - java.lang.Exception
        instances:
          cloud-provider-payment:
            baseConfig: default

3. 请求方法上面需要加@CircruitBreaker

9ceea1e876974fffbf1c224e13d3d9c4.png

隔离板

用来限制对于下游服务的最大并发限制

限流

 


http://www.kler.cn/a/380753.html

相关文章:

  • 解释下什么是面向对象?面向对象和面向过程的区别?
  • C#(委托)
  • GOC编程 第2课 简单命令---直走和转弯命令
  • mysql-主从同步与读写分离
  • dockerfile文档编写(3):构建失败后清理缓存(删除容器和镜像相关命令)
  • 【模型压缩】原理及实例
  • QT下载安装
  • 为什么要使用Docker?
  • c# 值类型
  • 青少年编程与数学 02-003 Go语言网络编程 02课题、网络分层模型
  • RHCE selinux 和 防火墙(fireword|iptable)
  • 【里程计在激光雷达SLAM中的作用】【gmapping算法hector_mapping算法】
  • 基于 LR(1) 和 LALR 的 Parser Generator
  • (九)JavaWeb后端开发——Servlet
  • 关于read/write 网络IO、硬盘IO的区别
  • PHP的线程安全与非线程安全版本的区别
  • 检索增强生成(RAG)
  • 【ArcGIS】绘制各省碳排放分布的中国地图
  • JAVA题目笔记(十三) 爬虫
  • python源码实例之根据出生日期判断你的星座-001
  • 1105--面试代码题
  • 网络安全渗透实际案例
  • 青少年编程与数学 02-003 Go语言网络编程 09课题、Cookie
  • 机器人技术革新:人工智能的强力驱动
  • Android AndroidManifest 文件内标签及属性
  • HTMLCSS:打造酷炫下载安装模拟按钮