Eureka 整合案例

新建一个Module作为 Eureka注册中心

相关依赖 Eureka Server
创建好后填写配置文件


server:
  port: 8761
eureka:
  instance:
    hostname: eureka-server #eureka 实例的主机名
  client:
    register-with-eureka: false #不将自己注册到 eureka上
    fetch-registry: false #不从eureka上获取服务的注册信息
    service-url:
      defaultZone: http://localhost:8761/eureka/

随后在Eureka注册中心的运行类中 开启 @EnableEurekaServer

在新建一个Module作为 Provider

相关依赖 Eureka Client
创建好后填写配置文件

server.port=8002
spring.application.name=provider-hello

# 注册服务的时候使用服务的ip地址
eureka.instance.prefer-ip-address=true
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

再在Provider中进行一个小测试

创建一个服务类 打印helloworld


@Service
public class HelloService {

    public String getHello(){
        System.out.println("8002");
        return "<< Hello World >>";
    }

}

再写好响应的controller通过url调用对应的服务类


@RestController
public class ProviderController {

    @Autowired
    HelloService helloService;


    @GetMapping("/hello")
    public String getHello(){

        return   HelloService.getHello();

    }

}

那么Provider算是已经写好了

再去写响应的Consumer吧

建立一个Module作为Consumer
相关依赖 Eureka Client
创建好后填写配置文件

spring.application.name=consumer-user
server.port=8200
eureka.instance.prefer-ip-address=true

eureka.client.service-url.defaultZone=http://localhost:8761/eureka/

在 Consumer 的运行类中开启 @EnableDiscoveryClient 注释 开启发现服务功能
再在运行类中写下这一段东西


    @LoadBalanced  // 使用负载均衡机制
    @Bean
    public RestTemplate restTemplate(){
            return new RestTemplate();
    }

等下说

再去写controller

@RestController
public class UserController {
    @GetMapping("/buy")
    public String buyTicket(String name){

        return name ;

    }
}

随后问题来了 我们怎么能后接受到provider-hello的中的服务呢
其实就是用到刚才所写的RestTemplate 这样一来就可以继续提供URL 来提取结果了

@RestController
public class UserController {

    @Autowired
    RestTemplate restTemplate;


    @GetMapping("/buy")
    public String buyTicket(String name){
        String halo= restTemplate.getForObject("http://PROVIDER-Hello/hello", String.class);
        return name + halo;

    }


}

原文地址:https://www.cnblogs.com/nineberg/p/12487382.html