博客
关于我
gateway调用Fegin失败问题解决
阅读量:470 次
发布时间:2019-03-06

本文共 1003 字,大约阅读时间需要 3 分钟。

起因

新项目用的是springcloud2.0,网关用gateway替换了zuul。

gateway动态路由跟zuul有本质上的区别。这就涉及到webflux这一套大东东了。简单来说,gateway是spring5.0b出来的,最新基于webflux,默认使用netty为底层容器的一套响应式,非阻塞的异步框架,这跟之前的zuul的同步阻塞,基于tomcat的框架是完全不同的,具体到细节,光编码就是完全不一样,是另一种的风格基于jdk8的Lambda和流那一套东东,还涉及到Flux 和 Mono。

这篇文章主要不是来讲webflux的,这边也只是简单讲一下。

原因是gateway这一块用fegin进行微服务之间的相互调用,发现是失败的。

问题解决

网上百度一波,基本上都说修改feign的配置文件,注入Decode。结果发现不行,仅仅修改decode是完全不够的,还要修改encode。

具体如下:

/** * 手动调整feignConfig,以支持webflux下feign调用 * * @auther: jrhua * @date: 2020/7/17 14:17 */@Configurationpublic class FeignConfig {    @Bean    public Encoder feignEncoder() {        return new SpringEncoder(feignHttpMessageConverter());    }    @Bean    public Decoder feignDecoder() {        return new OptionalDecoder(                new ResponseEntityDecoder(new SpringDecoder(feignHttpMessageConverter())));    }    public ObjectFactory
feignHttpMessageConverter() { return () -> { return new HttpMessageConverters(new MappingJackson2HttpMessageConverter()); }; }

转载地址:http://iirbz.baihongyu.com/

你可能感兴趣的文章
Nacos原理
查看>>
Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
查看>>
Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
Nacos配置中心集群原理及源码分析
查看>>
nacos配置自动刷新源码解析
查看>>
Nacos集群搭建
查看>>
nacos集群搭建
查看>>
nagios安装文档
查看>>
name_save matlab
查看>>
Nami 项目使用教程
查看>>
NAT-DDNS内网穿透技术,解决动态域名解析难题
查看>>
NativePHP:使用PHP构建跨平台桌面应用的新框架
查看>>
NAT技术
查看>>
NAT模式下虚拟机centOs和主机ping不通解决方法
查看>>
NAT的两种模式SNAT和DNAT,到底有啥区别?
查看>>
Navicat for MySQL 命令列 执行SQL语句 历史日志
查看>>
Navicat for MySQL 查看BLOB字段内容
查看>>
Navicat Premium 12 卸载和注册表的删除
查看>>
navicat 系列软件一点击菜单栏就闪退
查看>>
navicat 连接远程mysql
查看>>