springCloud微服务-EurekaClient的使用

在使用Eureka Client时要保证Server是启动的

Eureka创建概述

1.idea-->spring --->cloud discovery--->Eureka Discovery,删除多余文件,保证和server 的spring cloud 和 spring boot版本一致

2.在全局文件中配置注册中心的地址和别名(根据需要),以及应用的名字

3.在启动类上添加@EnableDiscoveryClient启动

在Server端可以关闭虚拟注册列表,在Server 上添加server:enable-self-preservation:false

启动类:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class SpringCloudClientApplication {

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

pom.xml注意版本号


   org.springframework.boot
   spring-boot-starter-parent
   2.0.0.M3
    



   UTF-8
   UTF-8
   1.8
   Finchley.M2
   0.0.1-SNAPSHOT

application.yml

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
#  instance:
#    hostname: clientName
spring:
  application:
    name: client
logging:
  level: debug

------Eureka实现高可用-----

在idea 中的Eureka Server端右上角的Edit Configurationsh列表中复制一份,分别命名为EurekaApplication1 和

EurekaApplication2 ,这里用端口号作为区分

在VM options:中分别添加-Dserver.port=8761和-Dserver.port=8762

------------Eureka Server相互注册---------

在第一个Server端的defaultZone中填入第二个Server端的地址,在第二个中添加第一个Server端的地址

此时注意,当client注册在第一个Server端时,第二个Server端会被自动注册,简称同步机制


springCloud微服务-EurekaClient的使用_第1张图片

现在如果server1挂掉了,那么怎么保证client依然能访问到server呢?

解决的办法就是client同时注册到俩个server上,只要在client中以逗号隔开配置两个defaltZone地址

那么如果项目更大了,server更多了怎么办,此时server间依然按照俩俩注册,client端配置三个地址

defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/

如下图:



springCloud微服务-EurekaClient的使用_第2张图片

----------Eureka总结------------

1.@EnableEurekaServer @EnableEurekaClient 

2.心跳检测,健康检查,负载均衡等功能 

3.Eureka的高可用,生产上建议至少俩台以上

4.分布式系统中,服务注册中心是最重要的基础部分


你可能感兴趣的:(spring微服务)