1.创立Discovery Server服务

//导入包,理论是通过Spring Initializr导入的,Eureka Server,DevTools,Actuactorspring-boot-devtoolsspring-cloud-starter-netflix-eureka-serverspring-boot-starter-actuator//配置启动类注解EnableEurekaServer@EnableEurekaServer@SpringBootApplicationpublic class DiscoveryServerApplication {    public static void main(String[] args) {        SpringApplication.run(DiscoveryServerApplication.class, args);    }}//此时启动会报错,须要配置spring.application.name=discovery-servereureka.client.register-with-eureka=falseeureka.client.fetch-registry=falseserver.port=8761

2.创立Service服务

//导入包,理论是通过Spring Initializr导入的,Eureka Discovery,DevTools,Actuactorspring-cloud-starter-netflix-eureka-clientspring-boot-starter-actuatorspring-boot-devtools//配置启动类注解EnableDiscoveryClient@EnableDiscoveryClient@SpringBootApplication@RestControllerpublic class ServiceApplication {    @Value("${service.instance.name}")    private String instance;    public static void main(String[] args) {        SpringApplication.run(ServiceApplication.class, args);    }    @RequestMapping("/")    public String message(){        return "Hello from " + instance;    }}//配置文件spring.application.name=serviceeureka.client.service-url.defaultZone=http://localhost:8761/eureka

3.别离配置两个启动服务,每个配置端口以及节点名称,第一个为instance1 8081,第二个为instance2 8082

//第一个节点配置service.instance.name= instance 1server.port=8081//第二个节点配置service.instance.name= instance 2server.port=8082

4.启动后,两个servic日志中会显示204,示意注册胜利

2020-04-11 21:51:03.000  INFO 964 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_SERVICE/localhost:service:8081: registering service...2020-04-11 21:51:03.072  INFO 964 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient    : DiscoveryClient_SERVICE/localhost:service:8081 - registration status: 204

5.server端会显示两个节点注册胜利

2020-04-11 21:51:03.070  INFO 899 --- [nio-8761-exec-5] c.n.e.registry.AbstractInstanceRegistry  : Registered instance SERVICE/localhost:service:8081 with status UP (replication=false)2020-04-11 21:51:03.595  INFO 899 --- [nio-8761-exec-6] c.n.e.registry.AbstractInstanceRegistry  : Registered instance SERVICE/localhost:service:8081 with status UP (replication=true)2020-04-11 21:52:11.887  INFO 899 --- [nio-8761-exec-3] c.n.e.registry.AbstractInstanceRegistry  : Registered instance SERVICE/192.168.31.76:service:8082 with status UP (replication=false)2020-04-11 21:52:12.408  INFO 899 --- [nio-8761-exec-5] c.n.e.registry.AbstractInstanceRegistry  : Registered instance SERVICE/192.168.31.76:service:8082 with status UP (replication=true)

6.创立Client服务

//导入包,理论是通过Spring Initializr导入的,Eureka Discovery,DevTools,Actuactorspring-cloud-starter-netflix-eureka-clientspring-boot-starter-actuatorspring-boot-devtools//配置启动类注解EnableDiscoveryClient,以及后去eureka服务中注册的servic地址@EnableDiscoveryClient@SpringBootApplication@RestControllerpublic class ClientApplication {    @Autowired    private EurekaClient eurekaClient;    @Autowired    private RestTemplateBuilder restTemplateBuilder;    public static void main(String[] args) {        SpringApplication.run(ClientApplication.class, args);    }    @RequestMapping("/")    public String callService(){        RestTemplate restTemplate = restTemplateBuilder.build();        InstanceInfo instanceInfo = eurekaClient.getNextServerFromEureka("service",false);        String baseUrl = instanceInfo.getHomePageUrl();        ResponseEntity<String> reponse =                restTemplate.exchange(baseUrl,HttpMethod.GET,null,String.class);        return reponse.getBody();    }}//配置文件,其中设置不被发现所以设置为falsespring.application.name=clienteureka.client.service-url.defaultZone=http://localhost:8761/eurekaeureka.client.register-with-eureka=false//启动服务调用http://localhost:8080/能够每次拜访到不同的两个service节点