#eureka server 配置

eureka:

instance:

hostname: localhost

client:

register-with-eureka: false #是否将自己注册到注册中心

fetch-registry: false #是否从eureka获取注册信息

service-url:           #配置暴露给eureka client的请求地址defaultZone

  defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

  #defaultZone: http://127.0.0.1:9090/eureka/

server:

enable-self-preservation: false #关闭自我保护机制

eviction-interval-timer-in-ms: 4000 #剔除服务间隔
3.  **激活eureka服务**  

    springboot启动类上添加注解

@EnableEurekaServer

[](https://gitee.com/vip204888/java-p7)搭建eureka客户端

-----------------------------------------------------------------------



_**新建一个springboot服务**_



1.  **引入坐标**
<dependency>

        <groupId>org.springframework.cloud</groupId>

        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>

    </dependency>
2.  添加配置文件

eureka 客户端

eureka:

client:

service-url:

  defaultZone: http://localhost:9091/eureka/

instance:

instance-id: ${spring.application.name}:${server.port}:@project.version@

hostname: node1

prefer-ip-address: true #优先使用IP地址方式进行注册服务
3.  激活eureka服务  

    可以不用激活,默认激活状态

@EnableDiscoveryClient

[](https://gitee.com/vip204888/java-p7)服务调用

----------------------------------------------------------------

/**

* eureka客户端

 */

@Autowired

private DiscoveryClient discoveryClient;



/**

 * 基于eureka客户端调用远程服务

 *

 * @return

 */

@Override

public List<OrderEntity> getOrderList() {



    List<OrderEntity> orderList = orderMapper.getOrderList();



    List<Integer> idList = orderList.stream().map(o ->

            o.getProductId()).distinct().collect(Collectors.toList());



     //通过服务名称获取实例

    List<ServiceInstance> instances = discoveryClient.getInstances("service-product");

    ServiceInstance serviceInstance = instances.stream().findFirst().orElse(null);

    log.info("host:{}-----------post:{}",serviceInstance.getHost(),serviceInstance.getPort());

String url = StrUtil.format(“http://{}:{}/product/list?ids={}”,

serviceInstance.getHost(),serviceInstance.getPort(),StrUtil.join(",",idList));



    //调用远程服务

    ResponseEntity<List> entity = restTemplate.getForEntity

            (url, List.class);



    if (Objects.nonNull(entity) && Objects.equals(entity.getStatusCode().value(), 200)) {

        List<ProductEntity> body = entity.getBody();

        log.info("实体对象:{}", StrUtil.toString(body));

    }

    return orderMapper.getOrderList();

}
[](https://gitee.com/vip204888/java-p7)eureka集群

--------------------------------------------------------------------



![在这里插入图片描述]()  

新建两个eureka服务  

端口9090,9091互相注册  

1号server

server:

port: 9091

spring:

application:

name: eureka-server1

#eureka server 配置