问题标签 [spring-cloud-stream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-cloud-stream - 分区 - 消费者实例的数量是否总是必须与生产者提供的分区数量相匹配?
在我的 Producer application.properties 中,我有
我的消费者 application.properties 看起来像这样
当我将我的应用程序部署到 Pivotal Cloud Foundry 并将应用程序扩展到 2 个实例时,我看到创建了两个队列。它们以后缀 -0 和 -1 为界。
但这意味着如果消息带有以 -3 或 -4 结尾的主题,那么它们就会丢失,因为这些主题不存在绑定。如果我将消费者缩放为拥有 4 个实例,那么它会按预期工作。
我的问题是消费者实例不可能少于生产者的 partitionCount 吗?在这种情况下,一个或多个队列将有多个绑定到交换
java - 如何使用 Rabbit 绑定创建具有事务和 DLQ 的处理器?
我刚刚开始学习 Spring Cloud Streams 和 Dataflow,我想知道对我来说重要的用例之一。我创建了示例处理器乘法器,它接收消息并将其重新发送 5 次以输出。
您可以看到,在第 5 次发送此处理器之前崩溃。为什么?因为它可以(程序抛出异常)。在这种情况下,我想在 Spring Cloud Stream 上练习故障预防。
我想要实现的是在 DLQ 中支持输入消息和之前发送的 4 条消息被还原并且不被下一个操作数使用(就像在正常的 JMS 事务中一样)。我已经尝试在我的处理器项目中定义以下属性,但没有成功。
你能告诉我是否可能,还有我做错了什么?我会非常感谢一些例子。
rabbitmq - 使用 Spring Cloud Stream RabbitMQ 手动确认
我正在尝试设置侦听器将手动向 RabbitMQ 发送 ACK 的场景。我的 application.properties 中有这个
如何从侦听器发送 ack?我从Manual Acknowledgment of Messages : Spring Cloud Stream Kafka中看到,对于 Kafka,我们创建了一个 Acknowledgment 对象并在其中调用 acknowledge()。RabbitMQ 有没有做同样事情的例子?
spring-cloud-stream - Spring Cloud Stream 动态接收器侦听器
我开始使用 SCS,我有以下用例:
- 用户打开 HTTP 会话
- 服务器根据用户安全属性动态确定要创建接收器侦听器的分区
- 为用户会话创建了一个 Sink/Listener,并将其附加到通道分区。
- 消息通过 http websocket 转发到浏览器客户端。
- 当用户注销时,必须销毁通道上的监听器。
阅读参考文档并没有发现这种动态配置和生命周期管理的意义所在。关于如何实现这一目标的任何线索?
java - Spring Cloud Stream 是否支持 RabbitMQ Stomp over Websocket
我正在使用Spring Cloud Stream (SpringBoot) 与RabbitMQ实例进行通信。
该项目可以通过AMQP连接到 RabbitMQ ,但不适用于STOMP。任何人都知道:是否支持单脚以及如何配置?(我的RabbitMQ已经开放了61613端口)
application.yml文件是这样的:
spring-cloud - 创建名为“bindingService”的 bean 时出错 - Eureka & Bus AMQP
我正在尝试将 Hystrix 集成到我当前的 spring-cloud 和 Netflix OSS 微服务项目中。
我有一个新的 Spring Boot 版本 1.4.0.RELEASE 项目,它有两个依赖项:
在项目启动时,我收到此异常:
仅当 Eureka 和 Bus AMQP 依赖项在一起时才会发生此异常。
应用程序或引导程序 .yml/.properties 中没有设置配置。
唯一存在的 Java 类是由 Spring Boot 生成的:
完整的 POM:
全栈跟踪:
spring-cloud-stream - 在部署的流应用程序中设置 env var 值
使用以下内容:
- Spring Cloud 数据流服务器 Cloudfoundry 1.0.0.RC1
- Spring Cloud 配置服务器服务
我使用附加依赖项重建了 spring-cloud-dataflow-server-cloudfoundry,以按照说明提供它与 Spring Cloud Config 服务器的绑定。它似乎按预期工作,所以这很好。
现在出现了问题,当我尝试使用我开发的自定义模块定义流时,模块的环境变量(特别是 ENCRYPT_KEY)位于我的 git 存储库中的清单 YML 文件中。
清单文件的名称是customapp-dev.yml
. 清单如下所示:
属性文件的名称是customapp-dev.properties
. 属性文件如下所示:
该应用程序在启动 jar 中有一个名为application.properties
. 它看起来像这样:
最后,当我部署流时,我在命令行中提供了一个附加属性,如下所示:
跟踪应用程序部署的日志,我可以看到正在读取配置服务器实例,并且正在正确解析应用程序名称和配置文件。配置客户端正在映射 YML 清单和我的 git 存储库中的属性文件。
但是,错误表明占位符无法解密customapp.password
。
如果我为已部署的(崩溃的)应用程序显式设置 ENCRYPT_KEY 环境变量,并重新存储它,它会正常启动并像魅力一样工作。
我是否有另一种方法可以在部署时为流应用程序指定环境变量?
spring - Spring Cloud DataFlow 本地服务器未导入 Tailing 文件的新自定义源
我正在尝试为“Tailing”编写自定义源代码,并使用 spring 示例中的片段来编写该代码。这是实际的代码,
属性文件是,
现在,当我使用此代码运行 junit 测试时,使用下面的 junit 测试用例它工作得很好。
运行 junit 测试时,我确实在控制台中看到了默认文件内容。
现在,当我尝试将其捆绑在一个 jar 中并将其部署到具有版本的本地 spring 云数据流服务器时,我面临两个问题:
- spring-cloud-dataflow-server-local-1.0.1.BUILD-SNAPSHOT.jar
- spring-cloud-dataflow-server-local-1.0.0.RELEASE.jar
我使用的 shell jar 版本是,
- spring-cloud-dataflow-shell-1.0.1.BUILD-SNAPSHOT.jar
我面临的问题是:
- 源类型已成功部署并显示在应用列表中,但当我运行应用信息 source:tail时,应用属性信息未显示,请查看下面的屏幕截图。
jar 结构与 File 源引导 jar 完全相同,是使用 Spring 的 Maven 包装器构建的。带有元数据的 json 属性文件也是根据预期生成的,并且存在于捆绑的 spring 源 jar 中的 META_INF 中。
- 源本身不起作用。当我尝试将这个新的尾源与日志接收器一起使用时,它永远不会起作用。
最后,我确实知道它可能无法在云服务器上运行,但计划是在本地服务器-本地数据流服务器上运行它。我也知道我可以尝试使用 spring 集成框架本身,但它是通过 spring cloud Dataflow 完成此任务的外部请求。
非常感谢任何帮助,我的请求发给Artem ( https://stackoverflow.com/users/2756547/artem-bilan)、Gary(https://stackoverflow.com/users/1240763/gary-russell )和来自所有社区的其他人。提前感谢您的评论和反馈!
spring-cloud - 更新到 camden 发布问题
我尝试从 Brixton.SR5 更新到 Camden.M1。
我有使用 consul 和 spring cloud stream 运行的软件。我假设需要一个额外的初始化步骤。
这是pom的一部分
这是启动时的异常跟踪。
spring-cloud - Spring Cloud Stream 中的 HTTP 智能代理
有什么方法可以在 Spring Cloud Streams 下实现智能代理模式?有一个 HTTP 源可以获取连接到其他微服务(或处理器)的请求,并最终通过请求中建立的相同连接返回响应?
使用 Spring Cloud Data Flow 可能会很困难,但使用 Spring Cloud Stream 应该是可能的,不是吗?
谢谢。