返回

初见OpenFeign时,我解密了它的神秘面纱

后端

因为一个bug,我还是掀开了OpenFeign的神秘面纱。

最近项目中访问一个外部api报错了,报错信息如下

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

看着像是证书问题,这个时候我首先想到的是百度下,看看怎么解决。

解决方案

百度告诉我,在使用OpenFeign时,我们可以通过在项目中添加一个名为javax.net.ssl.trustStore的系统属性来解决这个问题。

根据提示,将此属性添加到项目中,并设置其值为存放证书的信任库的路径即可。

-Djavax.net.ssl.trustStore=/path/to/truststore

然后,将truststore文件导入到JKS密钥库中,即可解决这个问题。

解决了问题后,我开始对OpenFeign产生了兴趣,决定深入研究一下。

OpenFeign是一个Java库,它使我们可以以简单的和声明的方式调用RESTful Web服务。它具有以下优势:

  • 简洁性:它提供了简单的编程模型,使我们可以轻松地定义和使用RESTful Web服务。
  • 强大的功能:它支持多种功能,包括负载均衡、重试和超时。
  • 易于使用:它提供了丰富的文档和示例,使我们可以轻松地入门。

如何使用OpenFeign

要使用OpenFeign,我们首先需要在项目中添加一个依赖项。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

然后,我们可以创建一个接口来定义我们要调用的RESTful Web服务。

@FeignClient(name = "my-service")
public interface MyService {

    @GetMapping("/hello")
    String hello();

}

最后,我们可以注入MyService接口并使用它来调用RESTful Web服务。

@Autowired
private MyService myService;

@GetMapping("/hello")
public String hello() {
    return myService.hello();
}

总结

通过使用OpenFeign,我们可以轻松地构建健壮且可扩展的微服务架构。它提供了一系列强大的功能,使我们可以轻松地管理服务之间的交互。

希望这篇文章对您有所帮助。如果您有任何问题,请随时与我联系。