0

我试图将我自己的 Spring Cloud 数据流自定义接收器部署到 Cloud Foundry 上。

我的依赖如下:

    <dependencies>
    <dependency>
            <groupId>org.springframework.cloud.stream.app</groupId>
            <artifactId>spring-cloud-starter-stream-sink-log</artifactId>
        </dependency>       
           <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>         
           </dependency>        
            <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-stream-binder-rabbit</artifactId>
            <version>1.2.0.RC1</version>        
           </dependency>    
   </dependencies>
    <dependencyManagement>      
        <dependencies>          
          <dependency>
                <groupId>org.springframework.cloud.stream.app</groupId>
                <artifactId>app-starters-core-dependencies</artifactId>
                <version>1.2.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>           
           </dependency>            
           <dependency>
                <groupId>org.springframework.cloud.stream.app</groupId>
                <artifactId>log-app-dependencies</artifactId>
                <version>1.2.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>           
             </dependency>      
          </dependencies>   
    </dependencyManagement>


And the custom code is very basic as below :

    @EnableBinding(Sink.class)
    public class SinkConfiguration {
        private static final Log logger = LogFactory.getLog(SinkConfiguration.class);

        @ServiceActivator(inputChannel=Sink.INPUT)
        public void loggerSink(String payload) {
            logger.info("Hello, Rahul. The time is: " + payload);
        }
    }

我在部署此应用程序时看到的只是创建了错误通道订阅者,但没有创建输入订阅者。因此,此应用程序不会收到任何消息。此应用程序的源是带有休息控制器的自定义源。默认开箱即用的流媒体应用程序——LogSink 成功运行。但是我需要创建一个customsink来在上面构建东西。有人看到我在这里缺少的问题吗?

4

1 回答 1

1

如果您的目标是创建一个全新的自定义接收器,则可以按照Spring Initializr过程将其开发为独立应用程序。这种方式很简单,在这种情况下您不需要使用现有的log-sink启动器。

如果您尝试修补任何 OOTB 应用程序;在这种情况下,log-sink,然后按照修补程序。注意导入配置类。除非你这样做,否则相关的 app-starter 的行为将不会生效。

此外,您似乎使用的是 rabbit-binder 的旧版本。最好依赖 Spring Initializr 生成的工件,而不是手工制作依赖版本。

于 2017-06-10T14:29:21.210 回答