2017年02月28日 17:18:48 不要太轻帅 

个人分类: 微服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pangpengshuai/article/details/58606390

在微服务架构中,服务发现(Service    Discovery)是关键原则之一。手动配置每个客户端或某种形式的约定是很难做的,并且很脆弱。SpringCloud提供了多种服务发现的实现方式,例如:Eureka、Consul、Zookeeper。Spring    Cloud支持得最好的是Eureka,其次是Consul,最次是Zookeeper。

 

创建一个Maven工程(microservice-discovery-eureka),并在pom.xml中加入如下内容:

spring cloud eureka服务发现(高可用)

编写SpringBoot启动程序:通过@EnableEurekaServer申明一个注册中心:

spring cloud eureka服务发现(高可用)

配置application.yml 
启动工程后,访问:http://loalhost:8761/,如下图。我们会发现此时还没有服务注册到Eureka上面。

spring cloud eureka服务发现(高可用)

spring cloud eureka服务发现(高可用)

 

按照前文对Eureka的讲解,我们即可构建出一个简单的注册中心。但此时的Eureka是单点的,不适合于生产环境,那么如何实现Eureka的高可用呢?c:/windows/system32/drivers/etc找到hosts文件

spring cloud eureka服务发现(高可用)

配置application.yml
spring:
  application:
    name: EUREKA-HA
---
server:
  port: 7777
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2:8888/eureka/,http://peer3:9999/eureka/
---
server:
  port: 8888
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1:7777/eureka/,http://peer3:9999/eureka/
---
server:
  port: 9999
spring:
  profiles: peer3
eureka:
  instance:
    hostname: peer3
  client:
    serviceUrl:
      defaultZone: http://peer1:7777/eureka/,http://peer2:8888/eureka/

访问http://peer1:7777我们会发现已经有peer2、peer3节点了。

 

如果注册中心是高可用的,那么各个微服务配置只需要将   defaultZone改为如下即可:

  1. eureka:

  2. client:

  3. serviceUrl:

  4. defaultZone: http://peer1:7777/eureka/,http://peer2:8888/eureka,http://peer3:9999/eureka

相关文章: