1.AlibabaCloud集成Ribbon实现负载均衡
订单服务增加@LoadBalanced 注解:
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
调用:
2.AlibabaCloud负载均衡策略调整实战
订单服务增加配置:
video-service:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
3.Feign实现远程方法调用
添加依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
启动类添加注解:
@EnableFeignClients
添加fegin接口:
package hecr.controller.service.feign;
import hecr.domain.Video;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient("video-service")
public interface VideoFeign {
/**
* get请求
*/
@GetMapping("/api/v1/video/getById/{videoId}")
Video getById(@PathVariable("videoId") int videoId);
/**
* post请求
*/
@PostMapping("/api/v1/video/save")
Video save(@RequestBody Video video);
}
controller测试代码:
@Autowired
private VideoFeign videoFeign;
@GetMapping("save4/{videoId}")
public Object save4(@PathVariable("videoId") int videoId) {
Video video = videoFeign.getById(videoId);
return video;
}
@PostMapping("save")
public Object save4(@RequestBody Video video) {
Video video1 = videoFeign.save(video);
return video1;
}
测试结果:
4.文章参考链接
a. https://xdclass.net/#/index
b. https://songzixian.com/springcloud/449.html