小编And*_*fat的帖子

Zuul在长期请求中超时

我正在使用作为zuul代理(@EnableZuulProxy)的前端spring spring应用程序(微服务)将来自外部源的请求路由到使用spring cloud(spring boot)编写的其他内部微服务.
zuul服务器直接位于samples部分的应用程序中

@SpringBootApplication
@Controller
@EnableZuulProxy
@EnableDiscoveryClient
public class ZuulServerApplication {
    public static void main(String[] args) {
        new SpringApplicationBuilder(ZuulServerApplication.class).web(true).run(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我在本地运行这组服务,它似乎工作正常但如果我在网络上运行它有一些负载或通过VPN然后我开始看到zuul转发错误,我在日志中看到客户端超时

有没有办法改变zuul前锋的超时,所以我可以从我的直接关注中消除这个问题.有什么可访问的参数设置.

我正处于发布阶段,这只是出现了:)

spring-cloud netflix-zuul

43
推荐指数
6
解决办法
3万
查看次数

java.lang.IncompatibleClassChangeError:实现Mongo类

我无法弄清楚为什么会出现这个错误.我尝试清理冗余的库等等.

我尝试这样做时收到错误:

  mongo = new Mongo(host, port);
Run Code Online (Sandbox Code Playgroud)

有趣的是,我可以运行我从IDE(IntelliJ)制作的任何单元测试,但是当我尝试通过Tomcat运行它时,我得到了这个:

  Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.
    sfatandrei.db.MongoManager]: Constructor threw exception; nested exception is java.lang.IncompatibleCla
    ssChangeError: Implementing class
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:162)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInst
    antiationStrategy.java:110)
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(Constructo
    rResolver.java:280)
        ... 82 more
    Caused by: java.lang.IncompatibleClassChangeError: Implementing class
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2889)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2889)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1170)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
        at com.mongodb.MongoOptions.reset(MongoOptions.java:47)
        at com.mongodb.MongoOptions.<init>(MongoOptions.java:29)
        at com.mongodb.Mongo.<init>(Mongo.java:148) …
Run Code Online (Sandbox Code Playgroud)

java spring tomcat mongodb maven

18
推荐指数
1
解决办法
7万
查看次数

是否有可用于MySQL JDBC Connector的"官方"Javadoc?

是否有可用于MySQL JDBC连接器的javadoc?如果是这样,我在哪里可以找到它们?

谷歌搜索,我遇到了类MysqlDataSource等链接.但这是官方的吗?我想我正在寻找来自mysql.com或附属公司的东西.有这样的事吗?

documentation javadoc mysql-connector

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

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
查看次数

为什么ZUUL强制执行SEMAPHORE隔离以执行其Hystrix命令?

我注意到Spring-Cloud ZUUL强制执行隔离到SEMAPHORE而不是THREAD默认值(根据Netflix的推荐).

评论org.springframework.cloud.netflix.zuul.filters.route.RibbonCommand说:

我们希望默认为信号量隔离,因为这包含了另外两个已经线程隔离的命令

但我仍然没有得到它:-(那两个其他命令是什么?

以这种方式配置,Zuul只能调整加载但不允许超时并让客户端离开.简而言之,即使Hystrix超时设置为1000毫秒,只有在转发到链中的服务的调用返回时(或者由于例如ReadTimeout而超时),才会释放客户端.

我试图通过覆盖配置强制THREAD隔离(不幸的是,每个服务,因为在代码中强制默认),一切似乎按预期工作.但是,如果没有正确理解其含义,我并不热衷于这样做 - 当然关于代码中的注释以及Spring的Zuul版本采用的默认值.

有人可以提供更多信息吗?谢谢

spring-cloud netflix-zuul

11
推荐指数
1
解决办法
5916
查看次数

如何让spring-cloud zuul为不同的服务使用不同的电路

我正在尝试使用spring-cloud-starter-zuul.我已经设置了Eureka并注册了一个我作为Eureka客户端编写的简单服务.我在具有两个不同应用程序名称的两个不同主机上注册了两个实例,因此它们是Eureka中的两个不同服务.我的目标是确保如果serviceA运行良好且serviceB执行效果不佳,则代理serviceA的代理不会因代理到serviceB而失败.

如果我通过zuul单独运行负载测试serviceA,我能够毫无问题地保持400 TPS吞吐量.如果我然后投入serviceB并完全超载它并让它在所有地方超时,我希望serviceA在serviceB flounders时继续400,但是serviceA降低到低于50 TPS成功率并且有一堆错误好.

似乎RibbonRoutingFilter产生的所有RibbonCommands在hystrix中共享相同的电路,这对我来说毫无意义.查看RibbonRoutingFilter创建RibbonCommand的地方,我没有看到任何方法将其配置为使用另一个.

在RibbonRoutingFilter中:

    RibbonCommand command = new RibbonCommand(restClient, verb, uri,
            convertHeaders(headers), convertHeaders(params), requestEntity);
Run Code Online (Sandbox Code Playgroud)

我已经验证了restAient对于serviceA和serviceB是不同的,所以他们正在使用他们自己的连接池配置,就像我在application.yml文件中指定的那样,但是serviceA和serviceA之间的服务质量仍然存在大量的交叉污染. serviceB.

似乎有另一个RibbonCommand的构造函数,它将"commandKey"作为第一个参数,我引用的那个只是委托给那个commandKey值为"default"的构造函数.我看不到在RibbonRoutingFilter中覆盖它的开关或选项.对我来说,这严重损害了Zuul在弹簧云项目中使用时的可行性.

有没有办法让我开箱即用,以便每个服务都有自己的电路?

我的pom的适用部分:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-parent</artifactId>
      <version>1.0.0.RC1</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zuul</artifactId>
  </dependency>
Run Code Online (Sandbox Code Playgroud)

application.yml:

ribbon:
  ConnectTimeout: 5000
  ReadTimeout: 5000
  MaxAutoRetries: 0
  MaxAutoRetriesNextServer: 0
  OkToRetryOnAllOperations: false
  MaxHttpConnectionsPerHost: 200
  MaxTotalHttpConnections: 1000
echo1:
  ribbon:
    ActiveConnectionsLimit: 200
echo2:
  ribbon:
    ActiveConnectionsLimit: 400
spring:
  application:
    name: SpringCloudProxywall
server:
  port: 8080
zuul:
  routes:
    echo1:
      path: /echo1/**
      serviceId: echo1 …
Run Code Online (Sandbox Code Playgroud)

java spring hystrix spring-cloud netflix-zuul

8
推荐指数
1
解决办法
4567
查看次数

Spring Boot + Cloud | Zuul代理| 404错误

我使用Spring Cloud和Zuul代理作为我的RESTful服务的网关.

网关应用程序(在端口8080上运行的Spring Boot Web应用程序)相关代码: -

主要课程: -

@SpringBootApplication
@EnableZuulProxy
public class WebfrontApplication extends WebMvcConfigurerAdapter {

    /**
     * @param args
     */
    public static void main(String[] args) {
        SpringApplication.run(WebfrontApplication.class, args);
    }
Run Code Online (Sandbox Code Playgroud)

}

Zuul Mappings: -

zuul:
  routes:
    customer:
      path: /customer/**
      url: http://localhost:9000/
Run Code Online (Sandbox Code Playgroud)

在启动上述UI网关应用程序期间,我可以在我的日志中看到代理的映射已注册: -

o.s.c.n.zuul.web.ZuulHandlerMapping      : Mapped URL path [/customer/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
Run Code Online (Sandbox Code Playgroud)

REST服务(在端口9000上运行的Spring Boot Web应用程序)相关代码: -

@RestController
@RequestMapping(value = "/customer")
public class CustomerController {

    @Autowired
    private CustomerService customerService;

    /**
     * Get List of All customers.
     * 
     * …
Run Code Online (Sandbox Code Playgroud)

spring-mvc spring-security spring-boot spring-cloud netflix-zuul

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

如何在Spring云中创建自定义zuul过滤器

我想为我正在编写的spring cloud微服务编写一些自己的自定义zuul过滤器.一旦我编写了过滤器,我该如何集成它,以便底层的netflix zuul框架可以利用它.

spring-cloud netflix-zuul

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

如何在Eclipse的上下文智能"Java搜索"中获取行预览(相对于上下文不知道"文件搜索")

在Eclipse中使用搜索功能时,尤其是Java方法或字段,即"工作区中的引用".(控制+ Shift + G)当光标在某个方法上时,比方说.

如何让搜索结果显示单行预览.(想想 - 就像我用过的所有其他搜索工具一样,从grep到Visual Studio?)

如果我搜索"文本位"(没有'参考'搜索提供的范围解析的好处,它提供它),但似乎无法弄清楚在搜索引用时如何.

(对于一些类变量来说public double x,这对于像'x'这样的错误列表的海洋来说,绝对是非常有用的)

////////////////////////////////////////////////// ////

通过例子澄清我的问题:

在附加的屏幕shot1中,有111个方法的引用getHeight().但是,如果没有pop-pop-pop,从入门到入口跳跃,就没有办法看到它们?


截图A: 截图A
(不要让我直接包括由于一些奇怪的,有点愚蠢的烦人,帐户限制的事情...)


然而,如果我搜索(在工作区中)getHeight()使用"文件搜索"作为"原始文本"(案例过滤和过滤*.java),请注意现在看到560个匹配,或449个"误报"相对于我真正感兴趣的范围然而,至少看看"搜索"对话框如何查看!(耶).为我提供每个条目的快速"线预览".


.屏幕截图B在这里:
截图B..


如何获得屏幕截图B中提供的线预览,但是对于"搜索"对话框中"范围过滤"搜索"Java搜索"选项卡中的111个匹配项(我在此示例中关注的那些)?

/////////////////////////////////////////////

我看了看,尝试了扩展,挖掘了偏好设置,似乎无法弄清楚如何"启用"该行预览搜索"限制为"参考'

java eclipse search

6
推荐指数
1
解决办法
712
查看次数