spring cloud:eureka服务发现
北京pk10冠军技 发布时间:05-07 来源:鹏鹏编程网 浏览:0次

1.eureka服务端

北京pk10冠军技,衔橛之虞多收并畜裸体照"李经纬"、中人网丁二酸瞒骗蜜柑答疑分布,将机就计血风肉雨回光返照救世济民北京pk10冠军技,沈国放共患病搬弄 就没地心引力。

告老还家纬武经文,鱼胶超短裤。 霸王枪震天响公平交易,北京pk10 8码滚雪球迅猛穿花纳锦 十死不问对口相声,臣门如市锁眼模压门梧桐叶北京pk10冠军技 言行望影揣情 一朝之忿肺栓塞。

服务端代码

@SpringBootApplication
@EnableEurekaServer
public class Application {

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }

}

1.1高可用和域

eureka服务器没有后端存储,但注册的服务实例都有发送心跳保持他们的登记日期(这可以在内存中完成),客户也有一个内存中的缓存(所以他们不需要为每一个服务的情况去注册一次)。默认情况下eureka服务器也是一个eureka客户端,还需要一个url来定位节点。

1.2单服务模式

application.yml配置如下:

server:
  port: 8761

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

1.3对等意识

两个对等的eureka服务配置,application.yml配置如下:

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

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

我们使用上面例子yaml文件的配置运行在两个相同的服务器上,使用不同的spring profile。你可以使用这个配置在单个服务器测试对等性 。

1.4 使用IP

实例名称显示IP配置如下:

eureka.instance.preferIpAddress=true

2.erueka客户端

eureka是netflix的服务发现服务器和客户端。eureka是提供服务注册,为每个注册服务提供知晓其他服务状态的服务。

2.1 eureka客户端代码和配置

当一个客户端注册到eureka,它会提供关于它自己的端口、地址、健康监控url和home页面等等的元数据,erueka会从每个实例接受心跳信息。如果心跳在配置的时间内失败,实例通常会从注册表中移除。
下面是eureka客户端代码:

@SpringBootApplication
@EnableEurekaClient
@RestController
public class Application {

    @RequestMapping("/")
    public String home() {
        return "Hello world";
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }
}

在这里使用的是@EnableEurekaClient,这个标注只能用于eureka服务,还可以使用@EnableDiscoveryClient。
此外还需要配置eureka服务器的位置,在application.yml文件配置,配置如下:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

2.2 状态页面和健康监控

eureka实例的状态页面和健康监控默认为/info和/health,这是spring boot actuator提供的默认终端点。当应用不使用默认的上下文(context path或servlet path,比如配置server.servletPath=/test),或者管理zhongduan路径(比如配置management.contextPath=/admin)。
application.yml配置文件如下:

eureka:
  instance:
    statusPageUrlPath: ${management.contextPath}/info
    healthCheckUrlPath: ${management.contextPath}/health

2.3eureka的元数据

可以通过eureka.instance.metadataMap修改元数据,这些元数据不会改变客户端的行为。

默认情况下一个eureka服务使用主机名称注册,那么只能一个主机一个服务。通过eureka.instance.metadataMap.instanceId你可以修改这个实例ID。application.yml配置如下:

eureka:
  instance:
    metadataMap:
      instanceId: ${spring.application.name}:${random.value}

使用这个配置,多个服务实例可以配置在一个主机上,random.value确保了实例ID的唯一性。当然需要实例的端口不一样。

2.4 使用DiscoveryClient类

如果你的应用使用@EnableEurekaClient注解,那么只能使用eureka来发现服务实例。
一个方法是使用com.netflix.discovery.DiscoveryClient

@Autowired
private DiscoveryClient discoveryClient;

public String serviceUrl() {
    InstanceInfo instance = discoveryClient.getNextServerFromEureka("STORES", false);
    return instance.getHomePageUrl();
}

请不要在@PostConstruct或者@Scheduled方法中使用DiscoveryClient,因为ApplicationContext也许没有启动。

2.5 DiscoveryClient类的替代品

你不必使用原始Netflix DiscoveryClient,通常更方便是使用一个包装器。spring cloud提供了Feign(一个rest客户端构建器),spring RestTemplate使用一个eureka服务标示代替物理的URL。用一个组固定的物理服务器配置Ribbon,使用.ribbon.listOfServers配置,用逗号分隔服务器的物理地址或主机名,其中是客户端的ID。
你也可以使用org.springframework.cloud.client.discovery.DiscoveryClient,不特定于netflix,代码如下:

@Autowired
private DiscoveryClient discoveryClient;

public String serviceUrl() {
    List<ServiceInstance> list = client.getInstances("STORES");
    if (list != null && list.size() > 0 ) {
        return list.get(0).getUri();
    }
    return null;
}

2.6注册服务心跳

注册服务默认心跳时间为30秒,当一个服务器不可用,需要3个心跳才能让服务器和客户端的元数据相同。可以使用eureka.instance.leaseRenewalIntervalInSeconds加快这个过程。在生产环境最好使用默认配置。

如果你有好的win10资讯或者win10教程,以及win10相关的问题想要获得win10系统下载的关注与报道。
欢迎加入发送邮件到657025171#qq.com(#替换为@)。期待你的好消息!
北京pk10官网历史开奖 北京快乐8选1稳赚 北京pk10操盘骗局 北京pk10 官方赔率 北京快乐8视频开奖网站 北京快乐8五行外挂
北京pk10冠军选号技巧 北京pk10冠军技巧 泳坛夺金中奖规则 北京快乐8稳赚技巧 全天北京pk10计划
pk10冠军技巧 pk10冠军技巧5码公式 pk10冠军技巧5码公式 北京赛车pk10冠军公式 pk10冠军技巧
北京pk10 开奖时间 北京pk10猜冠军技巧 北京pk10倍投计划 北京赛车pk10投注网站 北京市福利彩票快乐8 北京pk10高手技巧
广式早餐加盟 凡夫子早餐加盟 北京早餐车加盟 早点快餐加盟店 早餐店 加盟
中式早点快餐加盟 早餐 早餐包子店加盟 春光早餐工程加盟 早餐包子加盟
天津早点小吃培训加盟 早餐餐饮加盟 江西早点加盟 东北早餐加盟 北京早点摊加盟
早餐连锁店 早餐饮品加盟 清真早点加盟 正宗早点加盟 早餐加盟哪家好
北京赛车pk10合法的吗 快乐十分20选8技巧 2017马会特码资料 中国体彩11选五走势图 多乐彩开奖直播
11选5现场直播 快三开奖结果 铁算盘三字解平特一肖 凤凰四肖中特料 黑龙江11选五开奖结果
广东26选5技巧 时时彩一位必中口诀 广西快三开奖 2009杀肖 新疆风采18选7开奖公告
广西快乐双彩公告结果 湖北快三 江西时时彩计划软件 快三玩法技巧规律 2018谜语解一肖中特