美文网首页
微服务-springcloud-feign

微服务-springcloud-feign

作者: jianshuqiang | 来源:发表于2019-06-25 13:18 被阅读0次

Spring Cloud Feign是基于Netflix feign实现,整合了spring cloud ribbon 以及spring cloud hystrix,支持注解的方式
使用前提,引入jar包以及在启动类中添加注解@EnableFeignClients,它的作用是能够扫描带有t@FeignClien注解的类。
使用方法

@FeignClient(name = "admin", fallback = IPFeignFallback.class)
public interface IPFeign {
    @GetMapping("/IP/query")
    ResultUtil<String> queryIP();

    @PostMapping("/IP/save")
    ResultUtil<String> save(String id);

    @DeleteMapping("IP/delete")
    ResultUtil<String> delete(String id);
}

name="admin"中admin为ServerId即eureka页面中的application中的名称,
fallback为回调函数,回调函数为当前接口的实现类,入下所示

@Service
public class IMNoticeService implements IIMNoticeService {
    @Override
    public ResultUtil<String> sendMessage(String message) {
        return null;
    }

    @Override
    public ResultUtil<String> receivemessage(String message) {
        return null;
    }

    @Override
    public ResultUtil<String> querymessage(String message) {
        return null;
    }
}

注意:如果出现第三方服务调用没有反应,并且第三方服务正常的情况下,需要注意启动类注解中是否添加了@EnableFeignClients
报错解决方法
Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract com.sgcc.comm.util.ResultUtil com.sgcc.dls.imnotice.feign.NoticeServerFeign.sendToUser(java.lang.String,java.lang.String)

 ResultUtil sendToUser(@RequestParam String userId,@RequestParam String noticeMessag);

加上注解 @RequestParam
注意:在fallback没有起作用的时候用该查看是否开启了hystrix

#开启hystrix(容错机制,使feign的fallback生效)
feign:
  hystrix:
    enabled: true

相关文章

网友评论

      本文标题:微服务-springcloud-feign

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