一、Eureka基础知识

客户端:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
eureka:
  instance:
    app-group-name: "cms系统"
    appname: "cms系统"
    prefer-ip-address: true
    #    ip-address: 172.16.17.200
    #    hostname: 172.16.17.200
    #健康心跳时间
    lease-renewal-interval-in-seconds: 10
    #最长剔除时间
    lease-expiration-duration-in-seconds: 20
  client:
    registerWithEureka: true #是否向服务注册中心注册自己
    fetchRegistry: true #是否检索服务
    serviceUrl: #服务注册中心的配置内容,指定服务注册中心的位置
      defaultZone: http://127.0.0.1:8081/eureka/
    healthcheck:
      enabled: false
    registry-fetch-interval-seconds: 5

eureka服务端:

 <!--eureka-client-->
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
      </dependency>
server:
  port: 7001
eureka:
  instance:
    hostname: localhost #eureka服务端的实例名称
    prefer-ip-address: true
  client:
    register-with-eureka: false #false标识不向注册中心注册自己
    fetch-registry: false #false表示自己就是注册中心我的职责就是维护服务实例,并不需要检索服务
    serviceUrl: #服务注册中心的配置内容,指定服务注册中心的位置
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

spring:
  freemarker:
    prefer-file-system-access: false

  cloud:
    loadbalancer:
      ribbon:
        enabled: false

eureka集群配置

1,基础知识
什么是服务治理?
传统的rpc调用,管理每一个服务与服务之间的依赖的关系比较复杂,管理比较复杂,所以需要服务治理,管理服务与服务的依赖关系,可实现服务调用,负载均衡,容错等,实现服务的注册与注册

什么是服务的注册于发现?
eureka采用cs的设计架构,eureka作为服务的注册功能的服务器,他是服务注册的中心,而系统中的其他的微服务使用eureka的client连接到eureka server并维持心跳检测,在服务的注册与发现中,有一个注册中心,当服务器启动的时候会把当前的自己的服务器的信息,比如服务器地址,通讯地址等以别名注册的方式注册到注册中心(key (别名)value(host:port))。另一方(消费者|服务提供者)以该别名的方式去注册中心获取到实际的通讯地址,然后在体现本地rpc调用rpc远程调用框架的核心设计思想:在于注册中心,因为使用注册中心管理每个服务与服务之间的依赖关系(服务治理理念),在人格rpc远程框架中,都会有一个注册中心(存放服务器地址的相关信息)

1,启动eureka注册中心
2,启动服务提供者
3,服务提供者启动后悔将自身信息以别名的方式注册到eureka
4,消费者在需要调用接口的时候,使用服务别名去注册中心获取实际的rpc服务远程调用地址
5,消费者获取调用地址后底层使用利用HttpClient技术实现远程调用
6,消费者获取服务地址后会缓存到jvm内存中,默认每三十秒更新一次服务调用地址

3,eureka包含两个组件 eureka server ,eureka client
eureka server:提供服务的注册服务,

eureka client:通过注册中心访问,是一个java客户端,客户端同时也具备一个内置的使用轮询(round-robin)负载算法的负载均衡器,在应用启动后,将会向eureka server发送心跳,默认周期30s,如果eureka server在多个心跳周期没有接收到某个节点的心跳,eureka将会从服务注册表中把这个服务移除(默认90s)

4,集群原理:互相注册,相互守望(实现负载均衡和容错)

服务端

defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
客户端:
eureka:
  client:
    register-with-eureka: true #表示是否将自己注册到eureka,默认为true
    fetch-registry: true #表示是否从eureka抓取已有的注册信息,默认为true
    service-url:
      #defaultZone: http://127.0.0.1:7001/eureka
      defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/
  instance:
    instance-id: payment8001  #eureka显示主机名修改
    prefer-ip-address: true  #访问路径显示Ip地址

5,eureka的微服务
保护模式
主要用于一组客户端和Eureka Server之间网络存在网络分区场景下的保护,一旦进入保护的模式,Eureka Server 将会尝试保护其服务表的信息,不再删除服务注册表的数据,也就是不会注销任何微服务
导致原因: 某时刻某一个微服务不可用了,Eureka不会立刻清理,依旧会对该服务的信息进行保存,属于CAP里面的AP的分支

为什么会产生Eureka自我保护机制?
为了防止Eureka Client可以正常运行,但是与Eureka网络不通,Eureka不会立刻将Eureka服务剔除

什么是自我保护?
如果Eureka Server 在一定的时间没有接受到某个微服务实例的心跳,Eureka Server立刻将会注销该实例,默认90s,但是当网路分区发生故障的时候(卡顿,延时,拥挤),微服务无法与Eureka之间通信,其实微服务是健康的,此时不应该注销客户。

怎么禁止自我保护?
客户端添加
在这里插入图片描述
Eureka服务端添加
在这里插入图片描述
6,Eureka停更了,不过不影响使用,但是以后的技术选型要注意

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值