博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4.Spring Cloud初相识--------Feign负载均衡
阅读量:5894 次
发布时间:2019-06-19

本文共 4477 字,大约阅读时间需要 14 分钟。

前言:

在上一节里,我们学习了ribbon的使用。

我们了解到ribbon是一个客户端负载均衡机制。

而我们今天要讲的Feign呢,也是一款客户端负载均衡机制。

或者这样说,Feign封装了ribbon的负载均衡,实现了面向接口调用服务编程取缔面向服务编程。

ribbon面向服务编程:

@GetMapping("/hello")public List
sayHello() { List
list = new ArrayList<>(); for(int i=0;i<30;i++) { list.add(restTemplate.getForObject("http://CL-HELLO-PRODUCER/hello", String.class)); } return list;}

feign面向接口编程:

@FeignClient(value="CL-HELLO-PRODUCER")public interface HelloService {        @GetMapping("/hello")    public String sayHello();}

新建一个服务消费者(cl_hello_consumer_feign):

1.添加依赖

4.0.0
com.xm.cloud
cl_hello_consumer_feign
0.0.1-SNAPSHOT
jar
cl_hello_consumer_feign
This is a Web about springcloud
org.springframework.boot
spring-boot-starter-parent
2.0.6.RELEASE
UTF-8
UTF-8
1.8
Finchley.SR2
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-openfeign
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin

2.修改配置

eureka.client.service-url.defaultZone=http://127.0.0.1:7001/eureka/eureka.client.register-with-eureka=false

3.开启注解

package com.xm.cloud;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.cloud.openfeign.EnableFeignClients;import org.springframework.context.annotation.ComponentScan;@EnableFeignClients@EnableDiscoveryClient@SpringBootApplicationpublic class ClHelloConsumerFeignApplication {    public static void main(String[] args) {        SpringApplication.run(ClHelloConsumerFeignApplication.class, args);    }}

4.添加Service

package com.xm.cloud.service;import org.springframework.cloud.openfeign.FeignClient;import org.springframework.web.bind.annotation.GetMapping;@FeignClient(value="CL-HELLO-PRODUCER")public interface HelloService {        @GetMapping("/hello")    public String sayHello();}

5.添加Controller

package com.xm.cloud.controller;import java.util.ArrayList;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import com.xm.cloud.service.HelloService;@RestControllerpublic class HelloController {    @Autowired    private HelloService helloService;        @GetMapping("/hello")    public List
sayHello() { List
list = new ArrayList
(); for(int i=0;i<10;i++) { list.add(helloService.sayHello()); } return list; }}

6.测试

访问:

0 "Hello Spring Cloud! 001号机器"
1 "Hello Spring Cloud! 003号机器"
2 "Hello Spring Cloud! 002号机器"
3 "Hello Spring Cloud! 001号机器"
4 "Hello Spring Cloud! 003号机器"
5 "Hello Spring Cloud! 002号机器"
6 "Hello Spring Cloud! 001号机器"
7 "Hello Spring Cloud! 003号机器"
8 "Hello Spring Cloud! 002号机器"
9 "Hello Spring Cloud! 001号机器"

转载于:https://www.cnblogs.com/TimerHotel/p/springcloud_04.html

你可能感兴趣的文章
MFC中利用CString和Format成员函数将数字格式化输出
查看>>
微信跳一跳第二天
查看>>
UVA 11176 Winning Streak
查看>>
为什么说DOM操作很慢
查看>>
VIM高级进阶(替换/正则)!
查看>>
js中cookie的使用详细分析
查看>>
QT生成的exe在其他电脑打开
查看>>
CentOS 7安装Tomcat8
查看>>
ivar_getTypeEncoding(随手记)
查看>>
3、先行发生原则
查看>>
Best Time to Buy and Sell Stock II [LEETCODE]
查看>>
Ext-json
查看>>
C# 传统的ToString
查看>>
霜降配1种水果, 冬天不会流鼻涕, 嘴唇不会裂, 还能解酒、预防大脖子病
查看>>
sqlserver存储过程中SELECT 与 SET 对变量赋值的区别[转]
查看>>
echarts合并地图,把中国各个省份分成华北,东北,华东,华中,华南,西南,西北七个大区...
查看>>
包含到cocos2d-x里的tcpsocket源码
查看>>
[转]天龙八部的BillingServer
查看>>
NoSQL与其常见的产品
查看>>
iOS开发UITouch触摸API简介
查看>>