基于Eureka搭建基础服务注册与发现的单机环境

Eureka-server

server的pom引入spring-cloud-starter-netflix-eureka-server

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  4. </dependency>

application.yml

server:
  port: 7001
eureka:
  instance:
    hostname: localhost
  client:
      #false表示自己就是注册中心,职责维护实例,不需要检索服务
    fetch-registry: false 
    #false表示不向注册中心注册自己
    register-with-eureka: false 
    service-url:
      # 设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://localhost:7001/eureka

Eureka-client

client的pom引入spring-cloud-starter-netflix-eureka-client

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

application.yml

server:
    port: 8001
spring:
  application:
    name: cloud-payment-service
eureka:
  client:
    register-with-eureka: true
    # 是否从EurekaServer抓取已有的注册信息,默认为true,单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:7001/eureka

配置多个client(修改端口即可),分别为client-1(提供者),client-2(消费者)
client-1(提供者)实现业务service层,client-2(消费者)通过restTemplate(http协议,类似httpclient)调用提供者的controller

基于Eureka搭建基础服务注册与发现的集群环境

Eureka-server

pom文件同单机环境pom
搭建多个Eureka-server服务端,端口分别为7001,7002
7001的application.yml

server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com #hosts映射 127.0.0.1 eureka7001.com
  client:
    fetch-registry: false # false表示自己就是注册中心,职责维护实例,不需要检索服务
    register-with-eureka: false # false表示不向注册中心注册自己
    service-url:
      # 设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7002.com:7002/eureka

7002的application.yml

server:
  port: 7002
eureka:
  instance:
    hostname: eureka7002.com
  client:
    fetch-registry: false # false表示自己就是注册中心
    register-with-eureka: false # false表示不向注册中心注册自己
    service-url:
      # 设置与eureka server交互的地址查询服务和注册服务都需要依赖这个地址
      defaultZone: http://eureka7001.com:7001/eureka

Eureka-client

搭建多个服务提供者集群,与单机集群区别在注册时,需要往多个注册中心注册,在消费者client调用时restTemplate需要开启负载均衡的功能通过@LoadBalanced注解。

8001 application.yml

server:
    port: 8001
eureka:
  client:
    service-url:
      defaultZone: http://eureka7002.com:7002/eureka,http://eureka7001.com:7001/eureka/

8002 application.yml

server:
    port: 8002
eureka:
  client:
    service-url:
      defaultZone: http://eureka7002.com:7002/eureka,http://eureka7001.com:7001/eureka/

配置完成后,启动server和client,调用服务时会轮询访问提供者服务器。