RestTemplate+Ribbon和Feign结合Hystrix调用Eureka注册中心的服务

该博客详细介绍了如何通过RestTemplate+Ribbon和Feign两种方式调用Eureka注册中心的服务。首先,搭建了Eureka注册中心和服务提供方集群,接着在服务消费方,利用@LoadBalanced的RestTemplate实现轮询调用,并通过Hystrix进行断路器管理。然后,通过Feign结合响应时间权重策略调用服务。最后,利用Hystrix Turbine实现断路器的聚合监控。源码可在GitHub找到。
摘要由CSDN通过智能技术生成

   Eureka注册中心的服务,有2中调用方式,RestTemplate+Ribbon和Feign。

   首先,我们有一个Eureka注册中心集群(2台机器),这2台机器相互注册,机器上的服务相互同步,保证服务的高可用。

然后有一个服务提供方集群(2台机器),将服务注册到Eureka注册中心集群。

   1.eurekaServer模块,是注册中心集群,分8771,8772端口,分別启动。

#客户端默认连接8761这个端口,如果不指定,则默认启动是8080端口,则客户端也得改为8080端口。
server:
  port: 8771

spring:
    application:
      name: eurekaserver
    profiles: node1
eureka:
  instance:
    hostname: node1
#    preferIpAddress: true //集群是,不要加这个。
  server:
      enableSelfPreservation: false  #关闭自我保护机制,将停掉的服务移除
      eviction-interval-timer-in-ms: 1000 #每1秒清除一次
  client:
    #自身是否注册到eureka服务器
#    registerWithEureka: true
#    是否从eureka服务器获取注册信息
#    fetchRegistry: true
    #8771这个机器上的服务同步到8772,注册中心上的服务信息是相互同步的
    serviceUrl:
      defaultZone: http://node2:8772/eureka/

---
server:
  port: 8772

spring:
    application:
      name: eurekaserver
    profiles: node2
eureka:
  instance:
    hostname: node2
#    preferIpAddress: true
  server:
        enableSelfPreservation: false  #关闭自我保护机制,将停掉的服务移除
        eviction-interval-timer-in-ms: 1000 #每5秒清除一次
  client:
    #自身是否注册到eureka服务器serviceUrl
#    registerWithEureka: true
#    是否从eureka服务器获取注册信息
#    fetchRegistry: true
    #8772这个机器上的服务同步到8771,注册中心上的服务信息是相互同步的
    serviceUrl:
      defaultZone: http://node1:8771/eureka/

   添加依赖:

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

   启动类加注解:

   @EnableEurekaServer

   在模块根目录,运行mvn clean package,进入target目录,分别启动不同配置项的项目。

  2.serviceProvider模块,服务提供方,是服务提供者集群,分8762,8763端口,分別启动。


#默认注册地址
#eureka:
#  client:
#    serviceUrl:
#      defaultZone: http://localhost:8761/eureka/

#management:
#  contextPath: /eurekaclient1

#传给注册中心的实例信息
eureka:
  instance:
    hostname: localhost
#    preferIpAddress: true
    #心跳时间,客户端注册服务元数据注册中心
    leaseRenewalIntervalInSeconds: 1
    leaseExpirationDurationInSeconds: 1
    homePageUrlPath: ${server.servletPath}
    statusPageUrlPath: ${server.servletPath}/info
    healthCheckUrlPath: ${server.servletPath}/health
    #对应"metadata":{"instanceId":"eurekaclient:56929cfd113d3fe33d3d3df34715d780"
    metadataMap:
          instanceId: ${spring.application.name}:${random.value}
  client:
#      fetchRegistry: true #从注册中心获取最新服务,更新本地缓存
#      healthcheck:
# 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值