Springcloud学习笔记之微服务之间互相调用时token传递问题

本文探讨了在微服务架构中如何优雅地处理跨服务调用时的token传递问题。通过使用FeignBuilder和拦截器,可以在不增加代码冗余的情况下,动态地将token添加到请求头中,实现服务间的安全通信。
摘要由CSDN通过智能技术生成

微服务之间调用时时常遇到需要将服务A的token传递给服务B的情况,如果每个服务调用单独写就太僵硬了,之前试过自己写AOP去处理这个问题,功能上虽然没问题,但是总感觉比较low,最近在解决另外一个问题时,意外学到了一个解决方法。

这里贴一下核心代码

@Slf4j
@Service
public class FeignServiceImpl implements FeignService {

  @Autowired
  private ConfigurableEnvironment environment;

  @Autowired
  private FeignClientRequestInterceptor requestInterceptor;

  private final Feign.Builder nameBuilder;

  @Autowired
  public FeignServiceImpl(Decoder decoder, Encoder encoder, Client client, Contract contract) {
    // nameBuilder直接使用client,它会使用负载均衡
    nameBuilder = Feign.builder()
        .client(client)
        .encoder(encoder)
        .decoder(decoder)
        .contract(contract);
  }

  @Override
  public <T> T newInstanceByTenantName(Class<T> apiType, String shortName) {
    String bsServiceName = environment.getProperty("feign.name");
    Str
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值