天天看点

eureka 服务消费实现

一、搭建eureka服务注册中心

参考https://editor.csdn.net/md/?articleId=113972198搭建。

二、搭建一个项目作为服务提供者

1、pom集成eureka-client(若要实现负载均衡,莫再加入ribbon,Eureka内部已经集成了ribbon,因此我们直接使用就可以,否则通过服务名调用将失败)

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
           

2、application类加注解@EnableDiscoveryClient(ps:该注解已经不需要)

eureka 服务消费实现

3、application.properties配置

eureka 服务消费实现

服务提供者启动后,服务注册中心将识别到提供者的IP

eureka 服务消费实现

4、对外提供接口

eureka 服务消费实现

三、搭建一个项目作为服务消费者,去调用服务提供者接口

1、pom集成eureka-client

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
           

2、application类加注解@EnableDiscoveryClient(ps:该注解已经不需要),并配置具备负载均衡调用的RestTemplate(负载均衡使用Spring Cloud LoadBalance,不要去集成ribbon,Netflix相关插件已进入维护,不再开发新特性)。

eureka 服务消费实现

3、服务提供者和消费者eureka.client.service-url.defaultZone必须保持一致。

eureka 服务消费实现

4、在controller中通过服务名调用服务提供者的接口

eureka 服务消费实现

ps:

从Spring Cloud 3.0.1开始,@EnableDiscoveryClient 或@EnableEurekaClient 可省略(@EnableCircuitBreaker断路器注解也可以不需要)。只需加上相关依赖,并进行相应配置,即可将微服务注册到服务发现组件上。

由于在实际项目中,我们可能希望实现“不同环境不同配置”的效果——例如:在开发环境中,不注册到Eureka Server上,而是服务提供者、服务消费者直连,便于调测;在生产环境中,我们又希望能够享受服务发现的优势——服务消费者无需知道服务提供者的绝对地址。为适应该需求,Spring Cloud Commons进行了改进。

如不想将服务注册到Eureka Server,只需设置spring.cloud.service-registry.auto-registration.enabled=false ,或@EnableDiscoveryClient(autoRegister = false) 即可。

继续阅读