Fegin

Fegin是一个声明式的HTTP调用框架。为什么是声明式的呢,其实在我们开发过程中一般都是声明一个接口,用@FeginClient标识,接口中的方法与调用方Controller保持一致,如参数,SpringMVC注解这样的。Fegin底层的调用方式是基于HTTP的,默认是使用JDK自带的通信框架,一般可以用HttpClient或OkHttp来进行替换Fegin底层的通信方式,引入pom,在yml文件开启即可。@FeginClient有很多参数,如url是指定服务的调用地址({url:https%3A//网页链接),value是服务在注册中心的名称,primary是指定该实现类的优先级,fegin是会自己生成代理类的,且primary默认是true的方式,这样是表明fegin自己生成的子类是优先级最高的,如果我们要自己写实现类,是会报错误的,所以primary是要做调整的。configuration是用来指定配置类的,fegin的配置类可以分为全局配置和局部配置,具备配置就是在@FeignClient参数中指定configuartion即可。Path属性是指定统一前缀的意思。Fegin可以轻而易举的集成ribbon和hystrix,ribbon是一个客户端的负载均衡工具,ribbon内部又集成了eureka注册中心,可以拿到注册中心服务的一些信息,从而进行一些负载算法对服务的调用。Fegin也支持请求压缩,请求数据过大时可以考虑对数据进行压缩,提高数据传输效率。Fegin也支持继承,开发方式controller和fegin接口都实现了同一个接口类,可以减少很多模板代码。fegin默认是不支持文件传输的,如果想要支持文件出传输,需要引入一些其他的依赖,fegin-from fegin-from-spring,并且为该fegin替换SpringFromEncoder编码器,才可以进行feign的文件传输。Fegin的底层其实就是基于动态代理+RestTemplate对我们声明的接口及方法,url+参数拼接,在返回数据的时候可以根据我们声明的返回类型去做转换,如果你的returnType指定为String,就会给你转成String,如果你指定其他实体,fegin也会帮你转换,但前提是合理的情况下,否则就会报错,当然你也可以直接用Fegin提供的Response来接收,然后自己做处理。

12-18 161
Fegin Token统一认证是一种将微服务架构中的认证流程整合和统一管理的解决方案。在微服务架构中,每个服务都需要进行认证和授权操作,传统的方式是在每个服务中都嵌入认证流程,这样会导致代码重复和维护困难。Fegin Token统一认证提供了一种解决方案,通过将认证和授权流程独立出来,让每个微服务只需要调用认证服务获取令牌即可。 Fegin Token统一认证的核心概念是令牌。在整个认证流程中,首先用户提供用户名和密码,认证服务对用户进行验证,并生成一个令牌。然后,其他微服务在调用时只需要携带该令牌,认证服务会对令牌进行验证,并返回结果。这样,每个微服务都可以通过令牌来确认用户的身份和权限。 Fegin Token统一认证的优点首先是减少了重复代码的编写和维护工作量。由于整个认证流程被独立出来,每个微服务不再需要自己实现认证逻辑,只需要调用认证服务即可。其次,这种统一的认证方式提高了系统的灵活性和可扩展性。如果有新的认证方式需要添加,只需要在认证服务中进行修改,而不需要修改每个微服务。 当然,Fegin Token统一认证也存在一些挑战和注意事项。首先,认证服务的性能和可用性对整个系统至关重要,如果认证服务出现故障或性能瓶颈,将影响到所有微服务的正常运行。因此,认证服务的设计和部署需要特别关注。另外,令牌的生成和验证过程需要进行一定程度的加密和安全保护,以防止令牌被窃取或篡改。 综上所述,Fegin Token统一认证是一种将微服务架构中认证流程统一管理的解决方案,通过将认证和授权流程独立出来,提供了代码复用和灵活性的优势。但是,在实际应用中需要注意保证认证服务的性能和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值