标签: spring-cloud

Eureka 客户端异常 com.netflix.discovery.shared.transport.TransportException:无法在任何已知服务器上执行请求

我是微服务的新手。我正在尝试创建一个用于学习目的的小型应用程序。这是我的代码:EurekaServer - application.yml

    spring:
     application:
      name: EurekaServer

    server:
     port: 8080
     servlet:
      context-path: /EurekaServer

    eureka:
     client:
      fetch-registry: false
      register-with-eureka: false 
Run Code Online (Sandbox Code Playgroud)

Eureka Server 工作正常,我可以在http://localhost:8080/EurekaServer看到仪表板

EmployeeClient:application.yml 如下:

    spring:
     application:
      name: EmployeeClient

    server:
     port: 8586

    eureka:
     client: 
      serviceUrl:
       defaultZone: http://localhost:8080/EurekaServer
Run Code Online (Sandbox Code Playgroud)

在最后一行中,我需要像在 sts 中按 ctrl+space 一样显式地编写 serviceUrl 它不显示选项 serviceUrl 但它显示 service-url、连字符符号。与 defaultZone 相同。我是否缺少一些 jar 或特定版本?

我的 EmployeeClientApplication.java

    @EnableEurekaClient
    @SpringBootApplication
    public class EmployeeClientApplication {

       public static void main(String[] args) {
          SpringApplication.run(EmployeeClientApplication.class, args);
       }
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试运行 EmployeeClientApplication.java 时,它给了我以下异常:

    com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known …
Run Code Online (Sandbox Code Playgroud)

spring-boot microservices spring-cloud netflix-eureka

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

在 v2.0.X 中无法使用 Spring Cloud + boot 调用 /encrypt 端点

我正在使用 Spring Cloud and Security 示例。在这个例子中,我使用的是 Spring Boot 版本1.4.1.RELEASE。Spring Boot 父版本到2.0.4.RELASE. 我在端点开始破坏之后更新依赖项的那一刻。

我已经通过Spring Cloud Config - Encrypt Password和文档http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html,但不知道为什么我会收到 forbiddeb 错误。

我尝试使用 CURL 和 POSTMAN,得到禁止的错误。

C:\Users\pc>curl localhost:8888/encrypt -d connectionstring=server123;user=root;password@word1 {"timestamp":"2018-09-01T12:53:17.382+0000","status":403 ,"error":"Forbidden","message":"Forbidden","path":"/encrypt"} C:\Users\pc>

注意:我的服务器运行在端口 8888 上,并且已经添加了 JCE 文件

POST : http://localhost:8888/encrypt

在此处输入图片说明

我在下面使用的代码

pom.xml

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR1</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId> …
Run Code Online (Sandbox Code Playgroud)

spring spring-boot spring-cloud

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

Spring Cloud Gateway 不路由(任何请求都为 404)

我一直在尝试使用 Spring Cloud Gateway、Eureka、配置服务和一些微服务创建一个 docker-compose 堆栈。这些服务在它们自己的、暴露的端口上启动和工作,配置服务工作并且 Eureka 注册这些服务。但是我无法让 Spring Cloud Gateway 工作。

服务正确启动(或者至少日志中没有错误),当我远程进入容器时,我能够请求我想要调用的服务,但是如果我尝试通过配置的路由请求它收到 404。

我的网关配置(为了方便,我结合了配置服务配置和 bootstrap.yml):

spring:
  application:
    name: gateway-service
  cloud:
    config:
      uri: http://config-service:8080 
eureka:
  client:
    serviceUrl:
      defaultZone: http://discovery-service:8061/eureka/
logging:
  pattern:
    console: "%d{yyyy-MM-dd HH:mm:ss} ${LOG_LEVEL_PATTERN:-%5p} %m%n"
spring:
  cloud:
    gateway:
      routes:
      - id: employee-service
        predicates:
        - "Path=/employee/**"
        filters:
        - StripPrefix=1
        uri: "http://employee-service:8080"
Run Code Online (Sandbox Code Playgroud)

我很确定我只是误解了一些微不足道的事情,而且我离成功只有一步之遥,但是......我就是找不到它。

我期望发生的事情:

我的容器:

0.0.0.0:8080->8080/tcp, 8088/tcp                           employee-app_gateway-service_1
8088/tcp, 0.0.0.0:5082->5005/tcp, 0.0.0.0:8082->8080/tcp   employee-app_employee-service_1
8088/tcp, 0.0.0.0:8011->8061/tcp                           employee-app_discovery-service_1
8088/tcp, 0.0.0.0:8012->8080/tcp                           employee-app_config-service_1
Run Code Online (Sandbox Code Playgroud)

spring gateway spring-cloud docker-compose

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

从zuul迁移到spring cloud gateway时如何“删除全局前缀('/api')然后转到lb://”

我想从 zuul 迁移到 spring 云网关,我不想更改我以前的应用程序的配置。我想知道如何处理带有“/api/ + 'serviceId'”的 url,路由到 lb://serviceId

之前的 zuul 配置

zuul: 
  prefix: /api
Run Code Online (Sandbox Code Playgroud)

eureka 有很多服务注册,我不想为每个服务注册一个路由。

例如。由 org.springframework.cloud.gateway.discovery.DiscoveryClientRouteDefinitionLocator 自动生成的路由

{
"route_id": "CompositeDiscoveryClient_APIGATEWAY",
"route_definition": {
  "id": "CompositeDiscoveryClient_APIGATEWAY",
  "predicates": [
    {
      "name": "Path",
      "args": {
        "pattern": "/apigateway/**"
      }
    }
  ],
  "filters": [
    {
      "name": "RewritePath",
      "args": {
        "regexp": "/apigateway/(?<remaining>.*)",
        "replacement": "/${remaining}"
      }
    }
  ],
  "uri": "lb://APIGATEWAY",
  "order": 0
}
Run Code Online (Sandbox Code Playgroud)

我想要的是

 {
"route_id": "CompositeDiscoveryClient_APIGATEWAY",
"route_definition": {
  "id": "CompositeDiscoveryClient_APIGATEWAY",
  "predicates": [
    {
      "name": "Path",
      "args": {
        "pattern": "/api/apigateway/**"
      }
    }
  ],
  "filters": [ …
Run Code Online (Sandbox Code Playgroud)

java spring-cloud netflix-zuul spring-cloud-gateway

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

spring 云流-消费群绑定

我的消费者绑定到匿名消费者组,而不是我指定的消费者组。

spring:
  cloud:
    stream:
      kafka:
        binder:
          brokers: localhost
          defaultBrokerPort: 9092
          zkNodes: localhost
          defaultZkPort: 2181
        bindings:
          inEvent:
            group: eventin
            destination: event
          outEvent:
            group: eventout
            destination: processevent
Run Code Online (Sandbox Code Playgroud)

我的 Spring Boot 应用程序

@SpringBootApplication
@EnableBinding(EventStream.class)
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
    @StreamListener(value = "inEvent")
    public void getEvent(Event event){
        System.out.println(event.name);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的输入输出通道接口

public interface EventStream {
    @Input("inEvent")
    SubscribableChannel inEvent();
    @Output("outEvent")
    MessageChannel outEvent();
}
Run Code Online (Sandbox Code Playgroud)

我的控制台日志--

:在 3.233 秒内启动 ConsumerApplication(JVM 运行 4.004):[ Consumer clientId=consumer-3, groupId=anonymous.0d0c87d6-ef39-4bfe-b475-4491c40caf6d]发现组协调员 singh:9092 (id: 2147483647 …

spring-boot spring-cloud kafka-consumer-api spring-cloud-stream spring-kafka

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

找不到 org.springframework.cloud:spring-cloud-dependencies:pom

我一直在尝试建立一个 Spring Boot 项目,但出现错误。我研究并尝试了各种选择,但到目前为止没有运气。任何帮助,将不胜感激。

pom.xml 文件:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<groupId>com.sysyaas.pardakhtyary</groupId>
<artifactId>auth</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>master</name>
<packaging>jar</packaging>
<description>Auth Server Pardakhtyary</description>

<!--<properties>-->
    <!--<java.version>1.8</java.version>-->
    <!--<spring-cloud.version>Finchley.M8</spring-cloud.version>-->
<!--</properties>-->

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>0.9.0</version>
    </dependency>

    <!--Swagger-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.8.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.8.0</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>

    <!--Test-->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId> …
Run Code Online (Sandbox Code Playgroud)

java spring maven spring-boot spring-cloud

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

Spring Cloud Config Server 中的自定义文件名

如何指定 Spring Boot 应用程序以仅访问.propertiesSpring Cloud Config Server 中其他文件中的特定文件。

我的 Spring Cloud Config 有以下文件: application.properties, order-dev.properties, inventory-dev.properties,我所有的 db 和消息传递属性都在 order-dev 和 inventory-dev 文件中。

现在,我想这些属性转移到orderdb-devinventorydb-devordermsg-devinventorymsg-dev文件。

如何配置我的orderinventory服务来接从属性orderdb-devinventorydb-devordermsg-devinventorymsg-dev文件?我一直在四处寻找相同的财产。通读官方文档,感觉很迷茫。任何帮助,将不胜感激。

spring spring-boot spring-cloud spring-config

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

如何禁用 configserver Health 页面检查默认标签 git

我有简单的配置服务器实现,当我浏览/health端点时,我得到:

{ 
  status:"UP",
  "details":{
    "configserver":{
       "status":"UP",
       "details":{
        "repositories":[
           {
              ...
Run Code Online (Sandbox Code Playgroud)

如何在我的配置服务器再次检查配置服务器运行状况的情况下停止此操作。这导致配置服务器多次调用 git,这在我的场景中是不需要的。

spring-boot spring-cloud spring-boot-actuator actuator configserver

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

Spring Cloud Dataflow vs Apache Beam/GCP Dataflow 澄清

我很难理解 GCP Dataflow/Apache Beam 和 Spring Cloud Dataflow 之间的差异。我想要做的是转向更原生的流数据处理解决方案,因此我们的开发人员可以更专注于开发核心逻辑而不是管理基础设施。

我们有一个现有的流解决方案,它由 Spring Cloud 数据流“模块”组成,我们可以独立迭代和部署,就像微服务一样,效果很好,但我们希望迁移到我们业务提供的 GCP 中的现有平台,需要我们使用 GCP Dataflow。在高层次上,解决方案很简单:

流 1:

Kafka Source (S0) -> Module A1 (Ingest) -> Module B1 (Map) -> Module C1 (Enrich) -> Module D1 (Split) -> Module E1 (Send output to Sink S1)
Run Code Online (Sandbox Code Playgroud)

流 2:

Kafka Source (S1) -> Module A2 (Ingest) -> Module B2 (Persist to DB) -> Module B3 (Send Notifications through various channels)
Run Code Online (Sandbox Code Playgroud)

根据我的理解,我们想要采用的解决方案应该是相同的,但是模块将成为 GCP Dataflow 模块,源/接收器将成为 GCP Pub/Sub 而不是 kafka。

我遇到的大多数文档都没有将 SCDF 和 …

google-cloud-platform spring-cloud data-science spring-cloud-dataflow apache-beam

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

Spring Cloud Gateway 自定义过滤器工厂的单元测试

我已经为 Cloud Gateway 实现了自定义过滤器工厂。但是,我无法弄清楚编写单元测试用例的方法。在探索默认的过滤器工厂测试用例时,我发现大多数工厂测试类扩展了BaseWebClientTests和测试包中的其他类。

我的问题是我应该将这些中间测试类复制粘贴到我的本地测试包中吗?这里的社区推荐是什么?

java spring spring-cloud spring-cloud-gateway

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