首页
学习
活动
专区
圈层
工具
发布

SpringCloud教程(Finchley版本)-05:负载均衡(Feign)

本文介绍使用Feign实现负载均衡,主要分为以下几个步骤:
  • 1.创建项目
  • 2.引入依赖
  • 3.修改配置文件
  • 4.添加启动注解
  • 5.跨服务调用
  • 6.启动项目,测试

1.创建项目

新建一个Springboot项目feign_server1。

2.引入依赖

代码语言:javascript
复制
		<!--eureka-client-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>

		<!--feign-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-openfeign</artifactId>
		</dependency>
代码语言:javascript
复制
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
代码语言:javascript
复制
	<spring-cloud.version>Finchley.SR2</spring-cloud.version>

3.修改配置文件

代码语言:javascript
复制
server:
  port: 8015
spring:
  application:
    name: feign-server1
eureka:
  client:
    service-url:
      default: http://localhost:8761/eureka/
feign:
  hystrix:
    enabled: true

4.添加启动注解

启动类添加@EnableFeignClients,开启Feign的负载均衡功能

代码语言:javascript
复制
//开启Feign的负载均衡功能
@EnableFeignClients
@EnableEurekaClient
@SpringBootApplication
public class FeignServer1Application {

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

5.跨服务调用

写个简单的接口方法来调用。

5.1controller

代码语言:javascript
复制
@RestController
//@RequestMapping(value = "feign")
public class FeignController {

  //编译报错,可以不用管,程序启动时才会注入此bean
  @Autowired
  FeignService feignService;

  @GetMapping("getCompany")
  public String getCompany(String id){
    String company = feignService.getCompany(id);
    System.out.println(company);
    return company;
  }
}

5.2service

通过@FeignClient来指定我们调用哪个服务,前面启动了两个服务,都为company-server,feign会通过服务名来调用服务。

代码语言:javascript
复制
//通过此注解,来指定调用哪个服务
@FeignClient(value = "company-server")
public interface FeignService {

  /**调用company-server服务中的company/get接口*/
  @GetMapping(value = "/company/get")
  String getCompany(@RequestParam(value = "id")String id);
}

6.启动项目,测试

启动项目,然后访问接口http://localhost:8015/getCompany?id=36,可以看到服务会自动负载到两台服务上。

下一篇:SpringCloud教程(Finchley版本)-06:断路器(Hystrix-Feign)

完整源码参考:https://github.com/myJava4all/springcloudfinchley

下一篇
举报
领券