栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

eureka

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

eureka

文章目录
    • 搭建Eureka注册中心服务
    • Eureka的四条运行机制
      • 1.注册
      • 2.拉取
      • 3.心跳
      • 4.自我保护
    • Eureka客户端
      • 1.修改hosts文件
      • 2.修改2.3.4.三个模块,添加eureka client依赖
      • 3.修改2.3.4.的yml配置,添加eureka的连续地址
    • 商品和eureka的高可用
      • Eureka高可用
  • 订单远程调用商品和用户
    • Feiggn继承Ribbn
      • 负载均衡--默认启用负载均衡
      • Ribbn重试
  • ZuulAPI网关
    • 统一的调用入口
      • 1.新建spring模块: sp06-zuul
      • 2.pom.xml添加依赖:zuul、 eureka、 client
      • 3.yml配置路由规则
      • 4.启动类添加注解:@EnableZuulproxy
    • 统一的权限校验
      • 1. 继承Zuul的过滤器,在过滤器中判断用户权限
      • 2.添加商品访问的权限判断:
    • 集成Ribbon
      • 默认已经启动可ribbon的负载均衡
      • 默认不启用ribbon的充实
      • 启用重试
    • 集成Hystrix
      • 容错和限流工具
    • Hystrix数据监控
      • 搭建 Hystrix Dashboard
      • Turbine
      • Actuator
      • 添加actuator

搭建Eureka注册中心服务

1.新建spring模块: sp05-eureka
2.修改pom.xml,添加eureka server
3.yml
禁用自我保护模式
主机名: eureka1
针对单台服务器,不向自己注册,不从自己拉取注册表
4.启动类注解:@EnableEurekaServer 触发eureka server 的自动配置

Eureka的四条运行机制 1.注册

客户端一次次的反复连接注册中心进行注册,知道注册成功为止。

2.拉取

客户端没30秒拉取一个注册表,刷新注册表。

3.心跳

客户端每30秒向服务器发送一次心跳数据,如果服务器端连续三次收不到一个服务的心跳,会删除他的注册信息。

4.自我保护
  • 15分钟内,85%服务器出现心跳异常,会自动进入自我保护模式,
  • 保护所有注册信息不删除,等待网络恢复以后,可以退出保护模式,恢复正常。
  • 开发调试期间应该关闭保护模式,
Eureka客户端 1.修改hosts文件

win+r,输入drivers,进入etc目录找到hosts文件
127.0.0.1 eureka1
127.0.0.1 eureka2

2.修改2.3.4.三个模块,添加eureka client依赖
		
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
3.修改2.3.4.的yml配置,添加eureka的连续地址
eureka:
  client:
    service-url:
      #默认地点   可以从云服务商购买不同地点的注册中心服务器
      # 自己搭建的注册中心只能使用defaultZone
      defaultZone: http://eureka1:2001/eureka
商品和eureka的高可用

通过spring boot的自动参数 --server.port设置商品的启动端口
02商品高可用 启动两台服务器 8001 8002
命令行 : java -jar a.jar --server.port 8001
命令行 : java -jar a.jar --server.port 8002
idea
1.运行的下拉菜单中,选择edit configuration
2.找到商品的启动配置
3.修改两个位置
启动配置名称
配置启动参数

--server.port=8001
--server.port=8001
Eureka高可用

配置05 server 增加yml文件
Application-eureka1.yml

eureka:
  instance:
    hostname: eureka1
  client:
    #针对单台服务器,不想自己注册,不从自己拉去注册表
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka2:2002/eureka

Application-eureka2.yml

eureka:
  instance:
    hostname: eureka2
  client:
    #针对单台服务器,不想自己注册,不从自己拉去注册表
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://eureka1:2002/eureka

修改2.3.4连接两台eureka配置

订单远程调用商品和用户

1.04项目添加feign依赖
2.启动类添加注解:#EnableFeginVlients
3.添加两个远程调用接口
ItemClient
UserClient
4.OrderServiceImpl中实现远程调用

Feiggn继承Ribbn 负载均衡–默认启用负载均衡 Ribbn重试

调用后台服务失败(异常,服务器崩溃,超时),可以自动发起重试调用
重试参数:ribbon.MaxAutoRetries-单台服务器的重试次数
ribbon.MaxAutoRetriesNextServer-更换服务器次数
ribbon.ReadRimeout–接收响应超时时间,默认一秒1000
ribbon.ConnectTimeout–与后台服务器简历连接等待超时时间,默认1000
ribbon.OkToRetryOnAllOperations–是否对所有请求都进行重试,默认只对GET请求重试
总共请求次数(x+1)*(y+1)

ZuulAPI网关 统一的调用入口 1.新建spring模块: sp06-zuul 2.pom.xml添加依赖:zuul、 eureka、 client 3.yml配置路由规则 4.启动类添加注解:@EnableZuulproxy 统一的权限校验 1. 继承Zuul的过滤器,在过滤器中判断用户权限 2.添加商品访问的权限判断:
  • http://localhost:3001/item-service/ytflkaa没有登录不允许访问

  • http://localhost:3001/item-service/ytflkaa?token已经登录可以访问
    1.新建过滤器类:AccessFilter,继承ZullFilter
    2.按照规则实现过滤器
    3.提篮家注解:@component

  • zuul的自动配置,会从speing容器自动发现过滤器实例,完成自动配置

集成Ribbon 默认已经启动可ribbon的负载均衡 默认不启用ribbon的充实
  • 在网关重试,可能造成后台服务大面积出现压力翻倍
  • 重试功能应该尽量往后放
启用重试
  • 1.添加spring-retry依赖
  • 2.yml配置启用重试:zuul.retryable=true
集成Hystrix
  • zuul默认启用Hystrix
  • 添加降级
  • 1.添加降级类,实现FallBackProvider接口
  • 2.添加@component
  • zuul的制动配置会从spring容器自动发现降级类的实例,完成自动配置
容错和限流工具
  • 1.容错–通过降级来容错
  • 调用后台服务失败,执行当前模块的一段降级代码,返回降级结果
  • 错误提示
  • 缓存数据
  • 根据具体业务逻辑,返回任何结果都可以
  • 2.限流–通过熔断来限制后台服务的流量
  • 流量过大时,后台服务出现大量错误,会自动触发熔断
  • 10秒,20次请求
  • 50%出错,执行了降级(必须首先满足)
  • 半开状态
  •  断路器打开后一段时间,会进入半开状态
    
  •  会尝试发送一次客户端调用
    
  •  调用成功,关闭断路器恢复正常链路
    
  •  调用失败,继续保持打开状态
    
Hystrix数据监控

Hystrix利用springboot的Actuator工具暴露自己的监控数据

搭建 Hystrix Dashboard
  • 1.新建spring模块:sp07-hystrix-dashboard
  • 2.配置pom.xml,添加hystrix dashboard
  • 3.yml配置允许抓取服务器列表
  • 4.启动类添加注解:@EnableHystrixDashbload
  • 访问路径:http://localhost:4001hystrix
Turbine

从多台服务器抓取Hystrix日志,进行聚合
Hystrix dashboard 从Turbine住区聚合后的日志数据

  • 1.新建spring模块: sp08-turbine
  • 2.pom.xml,添加turbine,eureka client
  • 3.yml
  •   聚合的服务列表:zuul.a,b,,c,d,
    
  •   对聚合的日志数据命名:new String ("default").
    
  • 4.启动类注解:@EnableTurbine
  • 5.http://localhost:5001/turbine.stream
Actuator

springboot提供的项目监控指标工具,提供了多种监控数据

  • 健康状态
  • 环境变量,配置参数
  • spring mvc的映射路径
  • JVM虚拟机堆内存镜像
  • spring容器中所有的对象
添加actuator

1.添加actuator依赖
2.yml配置暴露的监控数据

  • m.e.w.e.i="*" – 暴露所有监控数据
  • m.e.w.e.i=health, env ,beans , mappings
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/672276.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号