博客
关于我
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/

你可能感兴趣的文章
mysqldump备份时忽略某些表
查看>>
mysqldump实现数据备份及灾难恢复
查看>>
mysqldump数据库备份无法进行操作只能查询 --single-transaction
查看>>
mysqldump的一些用法
查看>>
mysqli
查看>>
MySQLIntegrityConstraintViolationException异常处理
查看>>
mysqlreport分析工具详解
查看>>
MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
查看>>
Mysql_Postgresql中_geometry数据操作_st_astext_GeomFromEWKT函数_在java中转换geometry的16进制数据---PostgreSQL工作笔记007
查看>>
mysql_real_connect 参数注意
查看>>
mysql_secure_installation初始化数据库报Access denied
查看>>
MySQL_西安11月销售昨日未上架的产品_20161212
查看>>
Mysql——深入浅出InnoDB底层原理
查看>>
MySQL“被动”性能优化汇总
查看>>
MySQL、HBase 和 Elasticsearch:特点与区别详解
查看>>
MySQL、Redis高频面试题汇总
查看>>
MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
查看>>
mysql一个字段为空时使用另一个字段排序
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>