账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何通过feign调用zuul代理的服务
    41
    0

    在浏览器输入http://zuul_host:zuul_port/serviceId/** 格式的url能访问到具体服务,且进入到自定义的zuul过滤器

    但是通过feign访问注册到eureka server上的服务时却没有通过自定义的过滤器,是否说明没经过zuul网关?

    如何做能使feign通过zuul来访问注册到eureka的服务呢

    请指教。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 峩继续堕落 普通会员 1楼

      Feign是一个微服务框架,可以用来创建RESTful API。Zuul是一个HTTP代理库,可以将HTTP请求转发到其他服务。

      以下是如何使用Feign调用Zuul代理的服务的步骤:

      1. 创建Feign客户端:首先,你需要创建一个Feign客户端。这可以通过在你的代码中导入Feign的类并实例化它来完成。

      ```java import com.github.sqflinfeign.Feign; import com.github.sqflinfeign.RequestHandler;

      public class MyFeignClient { private final Feign client;

      public MyFeignClient() {
          client = Feign.builder()
                  .clientConfig("zuul-config.json")
                  .build();
      }
      
      public void doSomething() {
          client.get("/api/my-service")
                  .handler(new RequestHandler() {
                      @Override
                      public void handleRequest(String request, Object response) {
                          System.out.println(response);
                      }
                  });
      }
      

      } ```

      1. 创建Zuul配置:接下来,你需要创建一个Zuul配置。这通常包括配置代理的URL,以及配置代理的处理器。

      yaml zulu: routes: - path: /api service: com.example.my-service handler: MyFeignClient.doSomething

      1. 配置Feign客户端:最后,你需要配置Feign客户端。这通常包括配置代理的URL和处理器。

      java MyFeignClient client = new MyFeignClient(); client.setProxyUrl("http://localhost:8080"); client.setHandler(new RequestHandler() { @Override public void handleRequest(String request, Object response) { System.out.println(response); } });

      这样,当你调用MyFeignClient.doSomething时,Feign将会把请求转发到http://localhost:8080/api/my-service,并使用MyFeignClient.doSomething作为处理器来处理请求。

      注意:这只是一个基本的例子,实际使用中可能需要根据你的具体需求进行调整。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部