一、簡介
本組件提供消費者端的負載均衡。
二、pom文件
<dependencies>
<dependency>
<groupId>com.sustly</groupId>
<artifactId>blog_api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.1.0</version>
</dependency>
<!-- actuator監控信息完善 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 將微服務provider註冊進eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<!--負載均衡-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
三、主配置類
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"com.sustly"})
public class BlogConsumerFeign {
public static void main(String[] args) {
SpringApplication.run(BlogConsumerFeign.class, args);
}
}
四、application.properties
server.port=9001
spring.application.name=blog-consumer-feign
eureka.client.register-with-eureka=true
eureka.client.service-url.defaultZone=http://localhost:7001/eureka/
feign.hystrix.enabled=true
eureka.instance.instance-id=blog-consumer-feign
eureka.instance.prefer-ip-address=true
info.app.name=blog-consumer-feign
info.company.name=www.sustly.xyz
info.build.artifactId=${project.artifactId}
info.build.version=${project.version}
五、FeignConfig
@Configuration
public class FeignConfig {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
@Bean
public IRule myRule(){
//循環算法 默認
return new RoundRobinRule();
}
}
注意:該配置類必須配置,負載均衡才能起效果。
五、controller
@RestController
public class ConsumerAdminController {
private final UserClientService userService;
@Autowired
public ConsumerAdminController(UserClientService userService) {
this.userService = userService;
}
@PostMapping("/register")
public ResponseMsg register(@RequestBody User user){
return userService.register(user);
}
@PostMapping("/login")
public ResponseMsg login(@RequestBody User user){
return userService.login(user);
}
}
本controller中注入的service是上一篇文章中的。
六、我的GitHub地址
https://github.com/sustly/blog_vue_server
注意:master分支纔是springcloud版本