美文网首页springcloud编程语言爱好者Java
OpenFeign实现负载均衡代码演示

OpenFeign实现负载均衡代码演示

作者: 迦叶_金色的人生_荣耀而又辉煌 | 来源:发表于2021-11-13 07:03 被阅读0次

    上一篇 <<<RestTemplate+loadBalancer实现负载均衡代码演示及源码分析
    下一篇 >>>Feign超时配置


    SpringCloudAlibaba中使用OpenFeign时,默认的负载均衡策略是轮询调用。项目启动的时候,会用LoadBalancerFeignClient注册一个feign.Client到ioc容器中,FeignClientFactoryBean会生成一个@FeignClient注解的对应的service实例。

    生产者配置

    server:
      port: 8089
    spring:
      cloud:
        nacos:
          discovery:
            server-addr: 10.211.55.16:8848
            #feign客户端的命名必须使用中划线,不能使用下划线
      application:
        name: openfeign-user-service
    

    生产者代码

    生产者接口:
    public interface UserService {
    
        /**
         * feign默认是post请求,所以这个地方必须使用RequestParam注解
         * @param userId
         * @return
         */
        @RequestMapping("/getUser")
        String getUser(@RequestParam("userId") Long userId);
    }
    
    生产者实现:
    @RestController
    public class UserServiceImpl implements UserService {
        @Value("${server.port}")
        private String serverPort;
    
        @Override
        public String getUser(Long userId) {
            return "会员服务端口:"+serverPort+" 请求参数:"+userId;
        }
    }
    

    消费者配置

    @FeignClient("openfeign-user-service")
    public interface UserServiceFeign extends UserService {
    
    }
    
    @RestController
    public class OrderService {
    
        @Autowired
        private UserServiceFeign userServiceFeign;
    
        @GetMapping("/orderToMember")
        public String orderToMember() {
            String result = userServiceFeign.getUser(10L);
            return "我是订单服务,调用会员服务接口返回结果:" + result;
        }
    }
    
    启动类:
    @SpringBootApplication
    @EnableFeignClients
    public class OpenfeignOrderApp {
        public static void main(String[] args) {
            SpringApplication.run(OpenfeignOrderApp.class);
        }
    }
    

    openfeign底层用的也是ribbon负载均衡组件


    推荐阅读:
    <<<本地负载均衡和nginx负载均衡
    <<<SpringCloud中负载均衡客户端的使用
    <<<如何选择ribbon还是loadbalancer
    <<<feign和openfeign的区别
    <<<RestTemplate+loadBalancer实现负载均衡代码演示及源码分析
    <<<Feign超时配置

    相关文章

      网友评论

        本文标题:OpenFeign实现负载均衡代码演示

        本文链接:https://www.haomeiwen.com/subject/fyheoltx.html