网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

详解SpringCloudeureka服务状态监听-创新互联

一.前言

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了井研免费建站欢迎大家使用!

近期由于公司不同平台项目之间的业务整合,需要做到相互访问! 每个平台均有自己的注册中心和服务,且注册中心相互之间并没有相互注册!


借助spring的事件监听,在eureka-server端监听服务注册,将所有服务的ip和port存放至redis库,然后让其他平台服务通过redis库获取ip和端口号,进而进行http调用.结构图如下:


二.事件解析

事件列表

org.springframework.cloud.netflix.eureka.server.event包下会发现如下类:


  • EurekaInstanceCanceledEvent: 服务下线事件
  • EurekaInstanceRegisteredEvent: 服务注册事件
  • EurekaInstanceRenewedEvent: 服务续约事件
  • EurekaRegistryAvailableEvent: eureka注册中心启动事件
  • EurekaServerStartedEvent: eureka server启动时间

源码分析

打开org.springframework.cloud.netflix.eureka.server.InstanceRegistry类,会发现当eureka服务续约、注册、取消等时,spring会publish不同的事件,对应的事件类就是上面的列表.

续约事件

 @Override
 public boolean renew(final String appName, final String serverId,
   boolean isReplication) {
  log("renew " + appName + " serverId " + serverId + ", isReplication {}"
    + isReplication);
  List applications = getSortedApplications();
  for (Application input : applications) {
   if (input.getName().equals(appName)) {
    InstanceInfo instance = null;
    for (InstanceInfo info : input.getInstances()) {
     if (info.getId().equals(serverId)) {
      instance = info;
      break;
     }
    }
    // 发布续约事件
    publishEvent(new EurekaInstanceRenewedEvent(this, appName, serverId,
      instance, isReplication));
    break;
   }
  }
  return super.renew(appName, serverId, isReplication);
 }

当前名称:详解SpringCloudeureka服务状态监听-创新互联
标题链接:http://bjjierui.cn/article/deppoj.html

其他资讯