(2-2)SpringCloud-服务注册到Eureka Server集群并消费

服务注册到Eureka Server集群 

 在(2-1)SpringCloue-Eureka实现高可用注册中心中我们搭建好了高可用的Eureka注册中心,下面我们要把服务注册到Eureka Server 的集群中。

步骤一、修改(1-1)SpringCloud-Eureka:服务的注册与发现中 “服务注册与服务发现---注册服务提供者” 中的配置文件

eureka.client.serviceUrl.defaultZone=http://peer2:8752/eureka,http://peer2:8751/eureka
server.port=8877
spring.application.name=service-ha-hello

步骤二、启动集群注册中心

java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer1
java -jar eureka-server-1.0.0.jar --spring.profiles.active=peer2

步骤三、启动服务提供者

java -jar eureka-server-ha-service-1.0.0.jar --server.port=8877
java -jar eureka-server-ha-service-1.0.0.jar --server.port=8878

然后我们看到注册中心控制台已经有两个服务提供者了。说明注册成功了

https://gitee.com/huayicompany/springcloud-learn/tree/master/lesson2/eureka-server-ha-service


 Ribbon负载均衡服务消费者实现:

根据  (1-2)SpringCloud:服务的消费者rest+ribbon 中的例子修改。

步骤一、修改ServiceRibbonApplication中的restTemplate()

package org.hope;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@EnableDiscoveryClient
public class ServiceRibbonApplication {

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

    @Bean
    @LoadBalanced//添加了这个注解
    RestTemplate restTemplate() {
        return new RestTemplate();
    }

}

步骤二、修改HelloService中的restTemplate

package org.hope.service;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

@Service
public class HelloService {

    @Autowired
    RestTemplate restTemplate;

    public String hiService(String name) {
        //这里不能用这个localhost,否则调用不成功
//        return restTemplate.getForEntity("http://localhost:8877/hello?name=" + name, String.class).getBody();
        return restTemplate.getForEntity("http://service-ha-hello/hello?name=" + name, String.class).getBody();
    }

}

步骤三、浏览器中输入http://localhost:8764/hello?name=zhangsan

尝试多请求几次,看两个eureka-server-ha-service的控制台,可以看到两个控制台交替的打印日志。

 https://gitee.com/huayicompany/springcloud-learn/tree/master/lesson2/service-ha-ribbon

参考:

[1] 《SpringCloud微服务实战》,电子工业出版社,翟永超

原文地址:https://www.cnblogs.com/happyflyingpig/p/8000770.html