Eureka总结

1.搭建Eureka:

与nacos区别在于需要自己创建一个服务

  1. 新建spring模块: sp05-eureka
  2. 添加依赖
  3. yml
    1. 禁用自我保护模式
    2. 主机名:eureka1
    3. 单台服务器(集群的话是要互相注册互相拉的)
      1. 不向自己注册
      2. 不从自己拉取

​​​​​​​

        4. 启动类注解: @EnableEurekaServer​​​​​​​ 通过注解触发自动配置

pom文件里记得绑定到父类的springboot版本与springcloud的版本

注意:yml的文件编译语言UTF8否则注释的话会报错

四条运行机制:

  1.  注册  客户端主动连接服务器进行注册,会一次一次反复注册,直到注册成功为止
  2. 拉取  客户端每30秒拉取服务列表,会刷新更新本地缓存的注册表
  3. 心跳 30秒一发 客户端连续三次收不到心跳,就会删除其注册信息
  4. 自我保护模式  由于网络不稳定,网络中断,大量服务器出现心跳异常   15分钟内85%的服务出现心跳异常会自动进入自我保护模式(就是心跳3次也没返回,也不删除)等待网络恢复,开发调试期间可以禁用保护模式,避免影响测试

客户端咋注册(客户端就是要注册到eureka的服务)

1.添加eureka-client

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

2.yml配置

  • eureka.client.service-url.defaultZone(这个默认地址写的时候没有提示注意拼写):http://eureka1:2001/eureka(浏览器访问不到的,host文件进行了指定)也可以配置为云端服务器  

3.先启动eureka的服务,再启动其他的服务,启动eureka会自动生成一个8761端口的默认的集群服务器,咱们也没设置所以就是个虚的,不存在,所以会eureka服务会报错,当自己搭了个集群服务器,就不会再创建这个默认的集群服务器

2.高可用

商品高可用:

一旦服务器宕机了咋整,要有一个备用机顶上

editConfiguration → 克隆itemservice → 修改端口号 

这样就做到了同一个服务有两台服务器,从而实现该服务的高可用   

java -jar a.jar --eureka.instace.hostname --eureka.client.register

eureka高可用:

1.创建对应的profile配置文件

        1.application-erueka1.yml          profile文件写法固定的:  application-profile文件名.yml

        2.application-erueka2.yml

2.启动配置:

        1.Sp05Eureka-2001

        添加EditConfigration :--spring.profiles.active=eureka1激活:开启profile文件就会和主配置一同加载,相同的用主配置,不同的用profile配置的

3.若服务A指向服务B,而B没有启动,则还是会默认为localhost:8761这个虚无的集群服务器

4.让服务去连接多台eureka服务器  就在yml文件中去添加对应地址,eureka.client.service-url.defaultZone 后继续加,用“,”隔开

#140.82.112.4 github.com#host文件可以试试

3.服务远程调用

1.对应要调用的服务添加spring.cloud.starter.openfeign依赖

2.启动类添加@EnableFeignClients

3.写远程调用的接口  

        1.配置要调用那个服务  

        在对应接口的上方添加@FeignClient注解(服务名称是在对应的yml中的名字与项目名无关)

        2.调用那个方法

        根据对应的服务使用的请求类型与本接口中的用的都是一样的注解,之后写方法,与调用的            服务的返回值要相同,参数列表也要相同

        3.提交什么参数

          方法的参数列表与调用服务的参数列表也要相同

注意:原来的controller/restController注解下的XxxMapper注解是接收参数

           fegin中的XxxMapper是上传参数

Fegin集成Ribbon

  • Ribbon提供负载均衡(根据服务实例数与负载均衡规则实现负载均衡)和重试功能(重试调用,失败重新调用,容错方式)
  • 当你用了Fegin,就默认启用Ribbon的负载均衡与重试功能
  • Ribbon重试
    • 向后台服务调用时出错(异常,500,超时:调用1s不返回结果也算失败),会自动重试调用
    • 重试参数:(一般只配置前两个)
      • MaxAutoRetries:单台服务器重试次数                   默认:0   
      • MaxAutoRetriesNextServer:更换服务器的次数     默认:1
      • 我们的服务一般都是高可用,也就是一个服务后面有多个服务器,例如我单台服务器重试次数设置为1,而更换服务的次数为2,首先会去调用第一台服务器,若出错,会再对第一台服务器发起请求重试,出错,更换第1次服务器,发起请求去第2台服务器,出错,重试1次,出错,更换第2次服务器,发起请求去第3台服务器,出错,重试1次,出错,返回报错
      • ReadTimeOut - 等待接收响应的超时时间 1000ms
      • OKToRetryOnAllOperations - 是否对所有类型请求都重试,Ribbon默认只对Get请求重试
      • ConnectTimeout  - 与服务器建立连接的等待时间 默认1000ms 超1000ms 就会发起重试

                

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值