SpringCloud 教程 之三 服务消费(Feign)

1、启动服务注册应用

可参考 SpringCloud 教程 之一 服务注册与服务发现(Eureka) 创建 springcloud-eureka-server 服务注册工程,并启动

2、启动服务提供者应用

可参考 SpringCloud 教程 之二 服务消费(Ribbon) 创建 springcloud-eureka-provider 服务提供者工程,并启动

3、创建服务消费工程

3.1、新建 Spring Boot 工程 springcloud-eureka-feign

3.2、工程pom.xml文件添加如下依赖:

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

3.3、在工程启动类中,添加注解 @EnableDiscoveryClient @EnableFeignClients

package com.miniooc.eurekafeign;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * EurekaFeignApplication
 * 应用程序启动类,程序入口
 *
 * @author 宋陆
 * @version 1.0.0
 */
@EnableDiscoveryClient // 激活 Eureka 服务发现配置
@EnableFeignClients // 激活 Feign 配置
@SpringBootApplication
public class EurekaFeignApplication {

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

}

3.4、创建服务消费服务类 EurekaFeignService

package com.miniooc.eurekafeign.service;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * EurekaFeignService
 * 服务消费服务类,调用服务提供者提供的服务,实现业务
 *
 * @author 宋陆
 * @version 1.0.0
 */
@FeignClient(value = "eureka-provider") // 调用的微服务的名称
public interface EurekaFeignService {

    @RequestMapping(value = "/hello")
    String feignTest();

}

3.5、创建服务消费控制器类 EurekaFeignController

package com.miniooc.eurekafeign.controller;

import com.miniooc.eurekafeign.service.EurekaFeignService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * EurekaFeignController
 * 服务消费控制器类,对用户提供服务
 *
 * @author 宋陆
 * @version 1.0.0
 */
@RestController
public class EurekaFeignController {

    @Resource
    private EurekaFeignService eurekaFeignService;

    @RequestMapping("/hello")
    public String hello() {
        String message = eurekaFeignService.feignTest();
        System.out.println(message);
        return "获取到的信息:" + message;
    }

}

3.6、创建工程配置文件application.yml,添加如下配置:

server:
  port: 9529
spring:
  application:
    name: eureka-feign

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:9527/eureka/

3.7、启动服务消费端工程

3.8、打开浏览器,访问服务注册中心界面 http://localhost:9527

红框处,可以看到服务消费实例已经注册到了服务注册中心,服务名 EUREKA-FEIGN

3.9、新开浏览器窗口,访问 http://localhost:9529/hello,多次刷新该地址

查看服务消费端控制台信息,红框处,可以看到服务消费实例成功调用了服务提供者的服务,并实现了负载均衡,轮询请求不同的服务提供者。


====课程目录====

SpringCloud 教程 之 SpringCloud概述

SpringCloud 教程 之一 服务注册与服务发现(Eureka)

SpringCloud 教程 之二 服务消费(Ribbon)

SpringCloud 教程 之三 服务消费(Feign)

微信号:songlu2011

原文地址:https://www.cnblogs.com/songlu/p/9934447.html

时间: 2024-10-09 15:51:59

SpringCloud 教程 之三 服务消费(Feign)的相关文章

微服务SpringCloud无法进行服务消费

最近用SpringCloud做微服务,一直无法成功进行服务消费. 我使用的服务消费者是Feign,声明式调用服务提供者. 排查过程 1.检查服务提供者: (1)对提供的方法进行测试,确保提供的服务没有问题. (2)是否在控制层上方添加了@Controller. (3)方法的method是否正确.是GET还是POST. 2.仔细检查服务消费者: (1)服务名value是否正确.服务名不一定是项目名,要检查服务提供者的application配置文件,对应的spring.application.nam

SpringCloud系列研究---Eureka服务消费Feign

一.Feign简介 Feign是一种声明式.模板化的HTTP客户端.这使得Web服务客户端的写入更加方便 要使用Feign创建一个界面并对其进行注释.它具有可插入注释支持,包括Feign注释和JAX-RS注释.Feign还支持可插拔编码器和解码器.Spring Cloud增加了对Spring MVC注释的支持,并使用Spring Web中默认使用的HttpMessageConverters.Spring Cloud集成Ribbon和Eureka以在使用Feign时提供负载均衡的http客户端.这

SpringCloud 教程 之二 服务发现(Eureka Discovery Client + Ribbon)

1.启动服务注册中心 可参考 SpringCloud 教程 之一 服务注册中心及服务注册(Eureka Server + Eureka Client) 第1节 创建[服务注册中心]工程,即 Eureka Server.创建并运行工程. 2.创建服务提供者工程 2.1.新建Spring Boot 工程 springcloud-eureka-provider 2.2.工程pom.xml文件添加如下依赖: <dependency> <groupId>org.springframework

SpringCloud 基础教程(二) 服务注册(Eureka Client)

1.创建[服务提供者],即 Eureka Client 1.1.新建 Spring Boot 工程,工程名称:springcloud-eureka-client 2.2.工程 pom.xml 文件添加如下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependen

史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)

最新Finchley版本请访问:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f3-feign/或者http://blog.csdn.net/forezp/article/details/81040965 上一篇文章,讲述了如何通过RestTemplate+Ribbon去消费服务,这篇文章主要讲述如何通过Feign去消费服务. Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单.使用Feign,只需要创建一个接

Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)

通过<Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现>一文的学习,我们已经学会如何使用Nacos来实现服务的注册与发现,同时也介绍如何通过LoadBalancerClient接口来获取某个服务的具体实例,并根据实例信息来发起服务接口消费请求.但是这样的做法需要我们手工的去编写服务选取.链接拼接等繁琐的工作,对于开发人员来说非常的不友好.所以接下来,我们再来看看除此之外,还支持哪些其他的服务消费方式. 使用RestTemplate 在之前的例子中,已经使用过R

SpringCloud 基础教程(五) 服务熔断机制(Eureka + Ribbon + Hystrix)

1.启动[服务中心]集群,即 Eureka Server 参考 SpringCloud 基础教程(一) 服务中心及集群(Eureka Server) 2.启动[服务提供者]集群,即 Eureka Client 参考 SpringCloud 基础教程(二) 服务注册及集群(Eureka Client) 3.启动[服务消费者],即 Eureka Discovery Client 参考 SpringCloud 基础教程(三) 服务发现及负载均衡(Eureka Discovery Client + Ri

史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)

最新Finchley版本请访问:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f1-eureka/或者http://blog.csdn.net/forezp/article/details/81040925 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发人员的电脑上跑.另外说明spring cl

史上最简单的SpringCloud教程 | 第十篇: 高可用的服务注册中心

最新Finchley版本请访问:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f10-eureka/或者http://blog.csdn.net/forezp/article/details/81041101 文章 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka) 介绍了服务注册与发现,其中服务注册中心Eureka Server,是一个实例,当成千上万个服务向它注册的时候,它的负载是非常高的,