18

Spring Cloud系列教程三 :声明式服务调用Spring Cloud Fegin(F版)

 4 years ago
source link: https://blog.csdn.net/zzti_erlie/article/details/104093198
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Feign集成了Ribbon,让客户端具有负载均衡的能力,同时简化了开发

github地址:https://github.com/erlieStar/spring-cloud-learning

1.项目配置如下

pom.xml

<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>

application.yaml

server:
  port: 9001

spring:
  application:
    name: consumer-feign

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka

2.启动类加上@EnableFeignClients注解开启Feign的功能

3.定义接口,通过@FeignClient(服务名)来指定调用哪个服务

@RestController
@EnableEurekaClient
@EnableFeignClients
@SpringBootApplication
public class ConsumerFeign {

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

    @Autowired
    private SimpleClient simpleClient;

    @FeignClient(value = "producer-simple")
    public interface SimpleClient {
        @RequestMapping("hello")
        String hello(@RequestParam String name);
    }

    @RequestMapping("hello")
    public String hello(@RequestParam String name) {
        return simpleClient.hello(name);
    }
}

启动eureka-service(spring-cloud-eureka)

接着启动2个producer-simple(spring-cloud-ribbon)

初始端口为8001,启动一个实例后,修改端口为8002,再启动一个实例

访问http://localhost:9001/hello?name=xiaoshi

交替显示

hello xiaoshi, I am from port: 8001
hello xiaoshi, I am from port: 8002

欢迎关注

Z7n2umF.jpg!web

参考博客

[1]https://www.fangzhipeng.com/springcloud/2018/08/03/sc-f3-feign.html


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK