SpringCloud Eureka

SpringCloud Eureka

什么是服务治理:

在传统的rpc远程调用框架中,管理每个服务与服务之间的依赖比较复杂,所以需要使用服务治理,管理服务与服务之间的依赖关系。可以实现远程调用,负载均衡,容错等,实现服务发现与注册

Eureka的工作原理在这里插入图片描述
Eureka包含两个组件:eureka服务端,eureka客户端

eureka客户端提供服务注册服务

1)各个微服务节点通过配置启动后,向eureka服务点进行注册,这时eureka服务点的注册列表中会存储已注册成功的微服务节点信息,可以通过eureka控制页面直观查看

2) eureka客户端通过配置将自身注册到eureka服务端,通过心跳机制定期向eureka服务端发送请求(默认30秒)以保证eureka客户端的可用性,如在规定的时间内,服务端未收到客户端发送的心跳请求,则eureka服务端会认为,eureka客户端以成为不可用的服务阶段,将自动清除该eureka客户端节点信息(移除节点信息时间默认90秒后)

3)eureka客户端可作为两种角色存在:提供者/消费者(单个阶段可同时即使提供者也是消费者)
eureka客户端(提供者):将自身注册到eureka服务端
eureka客户端(消费者):通过ribbon调度指定的eureka提供者以实现微服务节点之间的服务调用

Eureka+Security

禁止安全框架的验证:
链接: Securing The Eureka Server.

Eureka服务配置
#显示ip
eureka.instance.preferIpAddress 
Eureka客户端区域配置

eureka可注册在不同区域,例如A区域拥有eureka节点 1 2,B区域拥有节点1.1 2.1,1节点与1.1节点为相同程序,只是部署在不同区域,这种情况下,如果部署在A区域的eureka微服务节点Q想要调用相同区域(A区域)的eureka微服务节点,而非是部署在B区域的eureka微服务节点可通过一下配置来实现:

eureka.instance.metadataMap.zone = zone1
eureka.client.preferSameZoneEureka = true
Eureka客户端刷新功能

默认情况下,eureka客户端开启刷新功能,这意味着客户端可修改配置,当eureka客户端进行刷新时,
将取消注册到eureka服务端,这时该eureka客户端节点不可用。可使用该属性禁止刷新功能:

eureka.client.refresh.enable=false
Eureka配置
1.服务端配置

1)单节点
在这里插入图片描述
配置信息:

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

2)多节点
在这里插入图片描述
配置信息:

---
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: https://peer2/eureka/

---
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: https://peer1/eureka/
2.客户端配置

application.yml

server:
  port: ${PORT:8771}
eureka:
  client:
    #注入的服务地址
    #service-url:
     #defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-server-01.com:8761/eureka/
     #defaultZone: http://${spring.security.user.password}:${spring.security.user.password}@eureka-server-01.com:8761/eureka/,http://${spring.security.user.password}:${spring.security.user.password}@eureka-server-02.com:8762/eureka/
    #发现服务
    fetch-registry: true
    #将自己注入到服务
    register-with-eureka: true
    enabled: true
    healthcheck:
    #是否启用健康检查
      enabled: true
    region: bj
    availability-zones:
      bj: n1,n2
    service-url:
      n1: http://${spring.security.user.password}:${spring.security.user.password}@eureka-server-01.com:8761/eureka/
      n2: http://${spring.security.user.password}:${spring.security.user.password}@eureka-server-02.com:8762/eureka/
  instance:
    #修改实例名称
    instance-id: ${PROVIDER-SERVER:provider-server-01}
    #鼠标放到实例名称上左下角显示ip以及端口
    prefer-ip-address: true
    #心跳间隔时间,默认是30秒
    lease-renewal-interval-in-seconds: 2
    #最后一次心跳时间lease-expiration-duration-in-seconds秒就认为是下线了,默认是90秒
    lease-expiration-duration-in-seconds: 3
spring:
  application:
    name: eureka-client-provider
  security:
    user:
      name: admin
      password: admin

更多的配置信息和参考:EurekaServerConfigBean,EurekaInstanceConfigBean ,EurekaClientConfigBean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值