zoukankan
html css js c++ java
Feign源码解析系列-最佳实践
前几篇准备写完feign的源码,这篇直接给出Feign的最佳实践,考虑到目前网上还没有一个比较好的实践解释,对于新使用spring cloud的同学会对微服务之间的依赖产生一些迷惑,也会走一些弯路。这里给出目前本人在公司推荐的最佳实践,供各位参考。
1,服务提供方在Facade层定义好接口信息,包括接口路径,请求方式,入参,出参,返回错误等,并提供jar。
2,服务调用方项目引入提供方Facade层的jar,在自己项目中抄一份接口的定义,再包一层代理提供给自己业务层调用。 抄一份虽然说看起来不是很优雅,但是也有个好处对外部依赖是可以控制的,代码也会清晰。一方面原因,如果你尝试想直接依赖jar来引入Feign client 那么在EnableFeignClients注解的basePackages需要更改,如果依赖不断增多这个值也会不断变动。还有更重要的原因是,我们知道fallback的定义在Feign client接口上定义的,在调用方配置fallback才是更加合理,如果打入jar,那就无法实现fallback的配置了。
3,服务提供方打的facade jar包中不需要提供Fallback能力,由调用方配置实现Fallback,推荐使用FallbackFactory,原因是create方法可以细化异常的判断。
4,在调用方上写的Feign proxy 需要对响应的返回值或异常进行处理后再提供给自己上层业务代码调用。接口的异常返回内容推荐在方法上进行详细的注释,我们约定接口返回的标准参数,比如code可以判定接口返回的实际情况,由上层调用方进行判断转换成自己的业务。
5,最后关于feign的默认配置比如请求超时时间等,最好是在配置中心进行全局配置一份,各个应用自己可以覆盖配置。
查看全文
相关阅读:
判断以下字符串中出现次数最多的字符,并且算出该字符出现的次数
status的状态码
call和apply的区别?
闭包
$(document).ready和window. onload的区别
python_pandas常用操作
python经典例题
爬B站并保存成csv文件。提供数据
data_analysis:初识numpy
01爬取豆瓣网电影数据进行numpy的练习
原文地址:https://www.cnblogs.com/killbug/p/10703203.html
最新文章
学习javascript中的细节总结
在写HTML和CSS时的黄金规范
响应式Web设计
javascript:将字符串转换为驼峰格式的练习总结
javascript:字符串字符统计的练习总结
C#使用栈进行十以内的进制转换
matlib二维图形绘制
Matlib基础1
c语言计算整数型行列式
Python猜数字
热门文章
C语言穷举法解决破碎的砝码
C语言计算排列数和组合数
C语言验证验证10以内尼克斯彻定理
c语言寻找1000以内的同构数
c语言寻找确定整数的连续整数和
数据类型的转换方法
数组的使用方法
String对象用法
JavaScript写一个能遍历对象和数组的通用forEach函数
请对以下数组进行去重和排序,至少提供2种方式
Copyright © 2011-2022 走看看