标签: netflix-zuul

NetflixOSS Zuul过滤器用于拒绝请求

我试图在一个简单的spring-cloud-Netflix Api网关(反向代理)中使用ZuulFilter,以便对自定义身份验证提供程序(通过Rest调用)验证请求.

过滤器应拒绝使用401的未授权请求,并且不要将这些请求进一步传递给代理服务.

这对ZuulFilter来说甚至可能吗?我没有在Zuuls api中找到文档,示例或其他内容.

有什么建议?

netflix spring-cloud netflix-zuul

16
推荐指数
2
解决办法
9843
查看次数

Spring Cloud:Zuul的Canary部署

我正在使用Eureka和Zuul开始使用Spring Cloud,并且在构建蓝色/绿色和Canary部署方面遇到了一些问题.到目前为止,我已经完成了基础工作,并让Eureka,Zuul和配置服务器按预期工作.我想要完成的是建立一个有两个版本的服务,比如1.0和1.1.对于特定用户的子集,我想将它们路由到1.1版本,其他人都应该转到1.0版本.

Zuul过滤器API对文档有点了解,我正在努力解决一些概念,所以我想我会在这里问几个问题.我还运行了一些基本的过滤器,除了获取他们请求的主体和服务的身份之外,它不会做很多事情.我在墙上的位置是了解如何向Eureka和Zuul公开同一服务的两个不同版本.我很好奇的一些事情:

  • 在文档,帖子和其他堆栈溢出之间,术语"服务"和"集群"似乎可以互换使用.它是否正确?
  • 如果我有一个名为的服务/simpleservice,我会暴露两个不同的serviceIDs(即simpleservicesimpleservice-1.1)?如果我这样做,当其中一个目标用户请求时/simpleservice,我让Zuul发送给他们/simpleservice-1.1
  • 或者,您是否将另一个节点添加到现有服务ID并向每个节点添加其他元数据,以便Zuul区分版本1.0和1.1?
  • 答案是"以上所有吗?" :)

canary-deployment microservices spring-cloud netflix-eureka netflix-zuul

16
推荐指数
1
解决办法
2923
查看次数

Zuul Edge Server可以在没有Eureka/Ribbon的情况下使用

我们有一个基础设施,包括服务发现和负载平衡(即服务器端与STM和weblogic集群).现在我们正在重构为微服务.我们需要一个API网关,它可以对其他微服务进行基本路由.Netflix Zuul看起来很不错,但是如果没有Eureka我就无法让Zuul工作 - 但我们不需要Eureka,因为我们已经有了服务发现和负载平衡.

  1. 是否可以在没有Eureka和Ribbon的情况下使用Zuul?
  2. 如果是,请提供一些公会行,因为在维基中没有提及.

谢谢.

netflix spring-cloud netflix-eureka netflix-zuul

15
推荐指数
1
解决办法
6760
查看次数

org.eclipse.jetty.io.EofException:上传大文件时抛出的早期EOF

当我上传大文件(大约50 MB)时,我得到 org.eclipse.jetty.io.EofException:早期的EOF感知.我的码头服务器版本是" 9.2.9.v20150224 ".Below是堆栈跟踪

org.eclipse.jetty.io.EofException: Early EOF
at org.eclipse.jetty.server.HttpInput$3.noContent(HttpInput.java:505) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:124) ~[jetty-server-9.2.9.v20150224.jar:9.2.9.v20150224]
at org.apache.http.entity.InputStreamEntity.writeTo(InputStreamEntity.java:142) ~[httpcore-4.4.1.jar:4.4.1]
at org.apache.http.entity.HttpEntityWrapper.writeTo(HttpEntityWrapper.java:96) ~[httpcore-4.4.1.jar:4.4.1]
at org.apache.http.impl.client.EntityEnclosingRequestWrapper$EntityWrapper.writeTo(EntityEnclosingRequestWrapper.java:112) ~[httpclient-4.5.jar:4.5]
at org.apache.http.impl.entity.EntitySerializer.serialize(EntitySerializer.java:117) ~[httpcore-4.4.1.jar:4.4.1]
at org.apache.http.impl.AbstractHttpClientConnection.sendRequestEntity(AbstractHttpClientConnection.java:265) ~[httpcore-4.4.1.jar:4.4.1]
at org.apache.http.impl.conn.AbstractClientConnAdapter.sendRequestEntity(AbstractClientConnAdapter.java:231) ~[httpclient-4.5.jar:4.5]
at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:237) ~[httpcore-4.4.1.jar:4.4.1]
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:122) ~[httpcore-4.4.1.jar:4.4.1]
at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:685) ~[httpclient-4.5.jar:4.5]
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:487) ~[httpclient-4.5.jar:4.5]
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:882) ~[httpclient-4.5.jar:4.5]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:117) ~[httpclient-4.5.jar:4.5]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) ~[httpclient-4.5.jar:4.5]
at org.apache.http.client.HttpClient$execute$2.call(Unknown Source) ~[na:na]

org.eclipse.jetty.io.EofException
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:192)
at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:408)
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:302)
at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:129)
at org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:676)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:246)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:208)
at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:471)
at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:763)
at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:801)
at …
Run Code Online (Sandbox Code Playgroud)

java jetty apache-httpclient-4.x netflix-zuul

15
推荐指数
1
解决办法
4万
查看次数

Consul Service Discovery的自动代理服务

我正试图从Eureka转到Consul进行服务发现并遇到问题 - 我的网关服务注册和我的客户服务注册,但网关服务不会自动将请求路由到客户服务.我在网关控制器中专门定义的路由,使用Feign客户端来正常工作,但之前(使用Eureka)我可以向任何路径发出请求,例如"/ customer-service/blah"(其中customer-service是注册名称)并且网关只是将请求转发到下游微服务.

这是我的网关bootstrap.yml(它在bootstrap而不是应用程序,因为我也使用consul for config)

    spring:
  application:
    name: gateway-api
  cloud:
    consul:
      config:
        watch:
          wait-time: 30
      discovery:
        prefer-ip-address: true
        instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
Run Code Online (Sandbox Code Playgroud)

java service-discovery spring-boot consul netflix-zuul

15
推荐指数
1
解决办法
826
查看次数

Spring Cloud - Zuul Proxy正在生成No'Access-Control-Allow-Origin'ajax响应

启动应用程序:

@SpringBootApplication
@EnableZuulProxy
public class ZuulServer {

     public static void main(String[] args) {
         new SpringApplicationBuilder(ZuulServer.class).web(true).run(args);
     }
 }
Run Code Online (Sandbox Code Playgroud)

我的YAML文件是这样的:

server:
   port:8080

spring:
   application:
      name: zuul

eureka:
client:
  enabled: true
    serviceUrl:
       defaultZone: http://localhost:8761/eureka/



zuul:
    proxy:
       route:
         springapp: /springapp
Run Code Online (Sandbox Code Playgroud)

我有一个名为springapp的微服务应用程序(在端口8081上),并有一些休息服务.以下是我的客户端UI应用:

    <html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script type="text/javascript" src="js/libs/jquery/jquery.min.js" ></script>
    </head>
    <body>
        <script type="text/javascript">
            $.ajax({
                url: 'http://localhost:8080/zuul/springapp/departments',
                type: 'GET'
            }).done(function (data) {
                consoe.log(data);
                document.write(data);
            });
        </script>        

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

但我得到了一个

XMLHttpRequest cannot load http://localhost:8080/zuul/springapp/departments. No
    'Access-Control-Allow-Origin' header is …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot spring-cloud netflix-zuul

14
推荐指数
3
解决办法
2万
查看次数

多个Zuul路由到一个服务

我看到的大多数示例都是一个服务的路由定义.

所以这样的事情:

zuul:
  routes:
    myserver:
      path: /mypath/**
Run Code Online (Sandbox Code Playgroud)

让我们说我想将几条路由路由到一个服务,所以实际上它会是这样的:

zuul:
  routes:
    myserver:
      path: /mypath/**, /anotherpath/**
Run Code Online (Sandbox Code Playgroud)

配置文件中不允许这样做,也不允许两次使用相同的路由名称.有没有真正的方法来做到这一点?

spring-cloud netflix-zuul

13
推荐指数
1
解决办法
8285
查看次数

Netflix-Zuul vs Mashape-Kong

Zuul和kong都是微服务架构中的一个很好的API网关层.这两者之间有什么重要的区别?

mashape microservices kong netflix-zuul

13
推荐指数
1
解决办法
7946
查看次数

Spring Boot-不同的系统(eureka,zuul,ribbon,nginx)用于什么?

我一直在工作,spring现在想学习spring boot微服务。我了解microservice所有内容及其运作方式。在浏览文档时,我遇到了很多用于开发的东西microservicesspring boot而我对此非常困惑。

我列出了以下系统和问题:

  1. Netflix Eureka-我知道这是服务发现平台。所有services都将注册到eureka服务器,并且 microservices都是eureka客户端。现在,我的疑问是,没有API网关,此服务注册表是否有任何用途?这是为了了解服务注册表的实际使用。
  2. ZUULApi网关 -我知道ZUUL可以用作API网关,它基本上是一个负载均衡器,它调用与请求URL相对应的适当的微服务。这个假设正确吗?api网关将与Eureka交互以获得适当的微服务吗?

  3. NGINX-我看过 NGINX还可以用作API网关吗?那可能吗?我也读了一些其他地方NGINX可以用作服务注册表,也可以作为尤里卡的替代品!因此哪个是对的?api网关或服务注册表,或两者兼而有之?我知道这nginx是一个网络服务器,reverse proxies可以进行强大的配置。

  4. AWS api网关 -这也可以替代ZUUL吗?

  5. 丝带 -有什么ribbon用?我不明白!

  6. AWS ALB-这也可以用于负载平衡。因此,如果有,我们是否需要ZUUL AWS ALB

请帮忙

nginx amazon-web-services spring-boot microservices netflix-zuul

13
推荐指数
3
解决办法
4630
查看次数

Spring Cloud Zuul/Eureka动态路线

我正在使用spring cloud eureka和spring cloud zuul proxy,我想知道是否有任何方法可以在eureka服务器中注册新服务时添加dymanic zuul路由,或者添加路由的唯一方法是编辑application.yml文件和重启spring zuul应用程序

zuul:
  ignoredPatterns: /**/admin/**
  routes:
    users: /myusers/**
Run Code Online (Sandbox Code Playgroud)

spring-boot spring-cloud netflix-eureka netflix-zuul

12
推荐指数
1
解决办法
8789
查看次数