ITPub博客

首页 > 架构设计 > 软件结构 > SpringCloud Fegin结合Ribbon实现负载均衡

SpringCloud Fegin结合Ribbon实现负载均衡

原创 软件结构 作者:gung123 时间:2020-01-17 14:12:30 0 删除 编辑

Fegin包含了Ribbon,可以直接实现负载均衡功能。这里我们就在Ribbon的项目稍微进行改造下实现该功能。

首先在pom文件添加Fegin的依赖包。

  <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>

然后在springcloud-ribbon-consumer项目的启动类上添加@EnableFeignClients注解,启用feign进行远程调用。

添加完成之后,新建一个类,实现feign远程调用。
代码如下:

  @FeignClient(name= "springcloud-ribbon-consumer2") 
    public interface HelloRemote {
        @RequestMapping(value = "/hello")
        public String hello(@RequestParam(value = "name") String name);
    }

最后在提供一个新的接口供外部调用。这里就直接在之前的代码上新加一个接口了。
代码如下:

    @RestController
    public class ConsumerController {
       
        @Autowired
        RestTemplate restTemplate;
        
        @RequestMapping("/hello")
        public String hello() {
            return restTemplate.getForObject("http://springcloud-ribbon-consumer2/hello/?name=xuwujing", String.class);
        }
        
       
        @Autowired
        HelloRemote helloRemote;
        
        @RequestMapping("/hello/{name}")
        public String index(@PathVariable("name") String name) {
            System.out.println("接受到请求参数:"+name+",进行转发到其他服务!");
            return helloRemote.hello(name);
        }
    }

添加完之后,重启springcloud-ribbon-consumer服务,然后依旧重复访问 http://localhost:9006//hello/pancm 该地址,了解springcloud架构可以加求求:三五三六二四七二五九
访问的结果如下:

pancm,Hello World!
pancm,Hello World! 这是另一个服务!
pancm,Hello World!
pancm,Hello World! 这是另一个服务!
pancm,Hello World!
pancm,Hello World! 这是另一个服务!


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69952307/viewspace-2673764/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-11-01

  • 博文量
    200
  • 访问量
    79623