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

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: 5000connectTimeout: 5000cloud-provider-payment:readTimeout: 5000connectTimeout: 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/jsonresponse: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_BASEDslidingWindowSize: 10minimumNumberOfCalls: 10automaticTransitionFromOpenToHalfOpenEnabled: : truewaitDurationInOpenState: 5s# 半开时候允许的最大请求数量permittedNumberOfCallsInHalfOpenState: 2recordExceptions:- java.lang.Exceptioninstances:cloud-provider-payment:baseConfig: default

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

9ceea1e876974fffbf1c224e13d3d9c4.png

隔离板

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

限流

 


http://www.mrgr.cn/news/66347.html

相关文章:

  • 探索Java与C++中的类成员访问修饰符:从默认设置到封装实践
  • K8S简单部署,以及UI界面配置
  • 2024年Q3企业邮箱安全性研究报告:钓鱼邮件攻击同比上涨102.3%
  • 揭秘rust中默认参数类型不为人知的秘密,你确定不来了解下吗?
  • 华为 HarmonyOS NEXT 原生应用开发: 动画的基础使用(属性、显示、专场)动画
  • 从零开始的LeetCode刷题日记:746. 使用最小花费爬楼梯
  • 十月末
  • Nginx配置文件编写示例
  • Java中查找与排序算法探究
  • 阿里云服务器 篇十(加更):自动定时备份CSDN博客内容:优化内存和解决图片展示等问题
  • 5分钟上手 Kubernetes:精简实用的 Kubectl 命令速查宝典!
  • 【ESP32+MicroPython】热点模式及网页控制
  • 产品增长之付费推广
  • 光伏设计软件如何快速上手?
  • 【万字详文介绍】:迭代扩张卷积神经网络(IDCNN)
  • 模拟实现C库函数~
  • 【OJ题解】在字符串中查找第一个不重复字符的索引
  • 华为HarmonyOS借助AR引擎帮助应用实现虚拟与现实交互的能力5-识别平面语义
  • 【LeetCode】【算法】146. LRU缓存
  • Python学习笔记-生成器的应用与原理