Spring-Boot服务注册与发现

  关于Eureka服务注册与发现的示例可以参见:http://blog.didispace.com/springcloud1/

  服务注册管理器原理如下图所示:

 

1、建立eureka服务器

@EnableEurekaServer注解就可以让应用变为Eureka服务器,为其它微服务提供一个服务注册中心; 

@SpringBootApplication
@EnableEurekaServer

   public class EurekaServer {

    public static void main(String[] args) {
  
    SpringApplication.run(EurekaServer.class, args);

      }

  }

  在application.properties配置文件中使用如下配置:

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

  其中server.port配置eureka服务器端口号;

  Eureka的配置属性都在开源项目spring-cloud-netflix-master中定义,在这个项目中有两个类EurekaInstanceConfigBean 和EurekaClientConfigBean,分别含有eureka.instance和eureka.client相关属性的解释和定义。从中可以看到,registerWithEureka表示是否注册自身到eureka服务器,因为当前这个应用就是eureka服务器,没必要注册自身,所以这里是false。fetchRegistry表示是否从eureka服务器获取注册信息,同上,这里不需要。defaultZone就比较重要了,是设置eureka服务器所在的地址,查询服务和注册服务都需要依赖这个地址。

2、建立eureka服务器

   让服务使用eureka服务器,只需添加@EnableDiscoveryClient注解就可以了。在main方法所在的Application类中,添加@EnableDiscoveryClient注解.

eureka.client.serviceUrl.defaultZone=http\://localhost\:8761/eureka/
spring.application.name=simple-service

 其中defaultZone是指定eureka服务器的地址,无论是注册还是发现服务都需要这个地址。application.name是指定进行服务注册时该服务的名称。这个名称就是后面调用服务时的服务标识符。

   Eureka服务器间的心跳可以参见:http://www.dongcoder.com/detail-15233.htmlhttp://www.jianshu.com/p/1eaa7b16a82d

posted @ 2017-02-28 22:44  moonandstar08  阅读(3541)  评论(0编辑  收藏  举报