当目标系统关闭时,停止 Spring Cloud Stream @StreamListener 监听

2023-12-21

我有一个应用程序,它从 Kafka 获取消息并调用目标系统来更新旧版 Oracle 数据库。

我想要启用一个场景,如果目标系统关闭,则将消息留在 Kafka 总线上,并且在给定的时间内不处理它们。我正在考虑一些基于 Hystrix 的断路器解决方案,但我找不到任何机制来告诉 Spring Cloud Stream “停止”事件侦听。我能想到的唯一其他选择是,如果断路器打开,则将这些消息传输到错误/重新处理主题,但这对我来说听起来像是反模式。我should能够暂停系统处理事件,这就是微服务应用程序中发布/订阅的全部优势。

任何帮助,将不胜感激。


一种解决方案是自动连接应用程序上下文。

@Autowired
private ConfigurableApplicationContext context;

You can stop() and start()上下文。

你不应该打电话stop()在调用的线程上@StreamListener但是,否则停止将被延迟(因为容器默认情况下将等待该线程退出 5 秒 - 至少使用 Rabbit 绑定器)。

当然,您将需要某种带外机制来重新启动 - 也许是 JMX 或侦听某种控制主题的单独应用程序上下文。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当目标系统关闭时,停止 Spring Cloud Stream @StreamListener 监听 的相关文章

  • 处理 Kafka Broker 宕机时的故障

    我有一个 Kafka 代理正在运行 消息已成功消费 但我想处理 Kafka 代理在 Kafka 消费者端出现故障的情况 我读过了this https github com spring projects spring kafka issue
  • 卡夫卡幂等生产者

    卡夫卡文档说 幂等生产者可以使用相同的生产者会话 但我无法理解这一点 比如说 Kafka 为每条消息添加序列号 最后一个序列号保存在 Kafka 中 不确定它在哪里维护 它如何生成序列号以及它保存在哪里 为什么当生产者崩溃并再次出现时它无法
  • 尝试升级到 flink 1.3.1 时出现异常

    我尝试将集群中的 flink 版本升级到 1 3 1 以及 1 3 2 但我的任务管理器中出现以下异常 2018 02 28 12 57 27 120 ERROR org apache flink streaming runtime tas
  • Kafka Connect 进入重新平衡循环

    我刚刚部署了 Kafka Connect 我只使用连接源 MQTT 应用程序位于两个实例的集群上 2 个容器上 机器 现在它似乎进入了一种重新平衡循环 我一开始有一点数据 但没有新数据出现 这就是我在日志中得到的内容 2017 08 11
  • 无法向 Kafka 发送大消息

    我想从生产者向 Kafka 发送一条大消息 因此我更改了以下属性 代理 服务器 属性 replica fetch max bytes 317344026 message max bytes 317344026 max message byt
  • 如何处理Kafka流中的不同时区?

    因此 我正在评估 Kafka Streams 及其功能 看看它是否适合我的用例 因为我需要每 15 分钟 每小时 每天聚合传感器数据 并发现它由于其窗口功能而很有用 因为我可以通过应用创建窗口windowedBy on KGroupedSt
  • Spring Kafka MessageListenerContainer

    我看到 spring Kafka 代码 我有一些疑问 如果我们使用 1 个 kafkaListener 和 2 个主题 那么 spring Kafka 将创建一个 MessageListenerContainer 如果我为每个主题使用单独的
  • 如何在kafka消费组中动态添加消费者

    我应该如何知道何时必须扩展消费者组中的消费者 当存在快速生产者时 消费者扩大规模的触发因素是什么 一种直接的方法是获取消费者延迟 这可以计算为提交的偏移量和开始偏移量之间的差值 如果最后 n 次计算的延迟正在增加 您可以扩大规模 反之亦然
  • 即使在kafka机器重新启动后,如何保留kafka保留字节和kafka保留段[重复]

    这个问题已经存在了 we set retention bytes价值 104857600对于主题 topic test root confluent01 kafka topics zookeeper localhost 2181 alter
  • Kafka REST 代理 API 有哪些好处?

    我不知道Kafka REST Proxy API的优点 它是一个 REST API 所以我知道它对于管理来说很方便 人们为什么使用 Kafka REST 代理 API 添加对生产者或消费者的 Maven 依赖是否很麻烦 另外 我知道kafk
  • Strimzi 运算符 Kafka 集群 ACL 未启用类型:简单

    我们知道要启用Kafka ACL属性authorizer class name kafka security auth SimpleAclAuthorizer要添加到server properties但是如果 Kafka 集群由 Strim
  • 我可以限制kafka-node消费者的消费吗?

    这看起来像我的 kafka 节点消费者 var kafka require kafka node var consumer new Consumer client 在某些情况下 获取的消息数量超出了我的处理能力 有没有办法限制它 例如每秒接
  • 使用Spring Cloud Stream Kafka动态更改instanceindex

    如同 在运行时更改 spring cloud stream 实例索引 计数 https stackoverflow com questions 37579939 changing spring cloud stream instance i
  • Kafka 主题删除不起作用

    我使用的是 Kafka 0 8 2 版本 在开发过程中 我想我可能需要删除一个主题 所以我所做的是将以下行放入服务器配置文件中并启动两个 kafka 服务器 delete topic enable true 当我需要删除一个主题并运行以下命
  • 命名 kafka 主题的最佳实践是什么?

    我们是 kafka 的新手 我们有几个团队正在开发一些相互发布 订阅事件的应用程序 由于kafka主题名称将在团队之间共享 那么命名有什么最佳实践吗 基本上我们不希望看到 A 团队命名主题companyname appname events
  • 从副本消费

    Kafka 将主题的每个分区复制到指定的复制因子 据我所知 所有写入和读取请求都会路由到分区的领导者 有没有办法从追随者那里消费而不是从领导者那里消费 Kafka中的复制只是为了故障转移吗 在 Kafka 2 3 及更早版本中 您只能从领导
  • Hystrix是否可以订阅CircuitBreaker开启事件?

    对于单元测试 我希望能够订阅 Hystrix 事件 特别是在断路器打开或关闭时发生事件 我四处寻找示例 似乎解决方法是利用指标流并监视断路器标志 由于 Hystrix 是基于 RxJava 构建的 我认为应该在某个地方有一个事件订阅接口 在
  • 带有安全 Kafka 抛出的 Spark 结构化流:无权访问组异常

    为了在我的项目中使用结构化流 我正在 hortonworks 2 6 3 环境上测试 Spark 2 2 0 和 Kafka 0 10 1 与 Kerberos 的集成 我正在运行下面的示例代码来检查集成 我能够在 Spark 本地模式下的
  • SQL Server 返回了不完整的响应。连接已关闭。;嵌套异常是 com.microsoft.sqlserver.jdbc.SQLServerException:

    我们正在将 Spring Batch 应用程序从 Oracle DB 迁移到 Azure SQL Server 该应用程序运行几个小时50线程 下面是我的 JDBC 配置 MSSQL DRIVERCLASSNAME com microsof
  • Apache kafka - 消费者延迟选项

    我想在 Kafka 中为特定主题稍稍延迟启动一个消费者 具体来说 我希望消费者在从生成消息的时间起经过特定的时间延迟后开始使用该主题的消息 Kafka 中有任何属性或选项可以启用它吗 我们对火花流做了同样的事情 我希望 这种方法也适合您 这

随机推荐

  • 为什么 PHPmailer 在发送后将 mime 标头打印到屏幕上?

    问题是 我刚刚实现了 PHPMailer 它在发送电子邮件后将 Mime 标头打印到屏幕上 我正在使用 GITHUB 上列出的最新 PHPMailer 代码 我几乎浏览了所有内容 但找不到打印到屏幕的任何原因 如果您需要更多信息 请告诉我
  • Java - windows/linux 中的控制台输出

    Java支持在输出到控制台时控制光标吗 例如 我想在执行 System out print 之前设置字符位置 可能还设置颜色 想想像 top 这样的应用程序写入控制台的方式 谢谢 您通常不使用 system out 来执行这些操作 nix
  • 如何使用关联常量来定义数组的长度? [复制]

    这个问题在这里已经有答案了 我有一个特征 它代表一个可以通过 UDP 套接字发送的实体 pub trait ToNetEnt const NET SIZE usize fn from net data u8 gt Self fn to ne
  • EL 方法中的参数

    我想在 JSP 中使用带有参数的 EL 方法 但 EL 不支持方法中的参数 实际上我想显示一个表格 其中有一个字段可以在一个单元格中输出值列表 对于每个单元格 此列表都会有所不同 这取决于参数 我该如何使用 EL 来做到这一点 我已经尝试过
  • 在 ngOnDestroy 函数中调用时如何等待 api 调用完成?

    我有一个场景 我必须在特定组件被销毁之前将数据发送到 api 数据库 正如 Angular2 生命周期中所描述的 在组件被销毁并调用之前执行一个方法ngOnDestroy 但正如文档中所指定的 这是一个 void 函数 因此它不会等待某些结
  • 将 IOSurface 绘制到另一个 IOSurface

    如何将一系列 IOSurface 绘制到另一个 然后将其绘制到屏幕上 我在 MultiGPU 示例项目中使用了苹果的一些源代码 但我能做的最好的事情就是绘制白屏或获得大量伪像并使应用程序崩溃 我对 openGL 很陌生 不太了解帧缓冲区和纹
  • 如何在一个 Include 后执行多个 ThenIninclude 导航道具

    对于 TestType 我想包含导航道具 Schoolclass 和 subject 我可以做一个 Include t gt t TestType ThenInclude x gt x Subject 但不是 Include t gt t
  • 跟踪约束的技术

    场景如下 我编写了一些带有类型签名的代码 GHC 抱怨无法推断出某些代码的 x yx and y 通常 您可以扔掉 GHC 并简单地将同构添加到函数约束中 但由于以下几个原因 这是一个坏主意 它并不强调理解代码 您最终可能会得到 5 个约束
  • 线程可以安全地读取VCL事件设置的变量吗?

    线程读取 Delphi VCL 事件设置的变量是否安全 当用户单击 VCL TCheckbox 时 主线程将布尔值设置为复选框的选中状态 CheckboxState CheckBox1 Checked 任何时候 线程都会读取该变量 if C
  • 在reactjs中将HTML表格复制到剪贴板

    我的 React 项目中有一个 HTML 表 我想将表格复制到剪贴板 table thead th Amount th th Charges th thead tbody tr item Amount tr tr item Charges
  • 仅当字段存在时才按字段排序

    我试图获取所有用户 并按另一个表上的字段对它们进行排序 但是该字段并不总是存在 用户 持有用户 用户元 保存元数据 特别是 权重 这是我想要排序的 一个更具体的解决方案是自动定义它们的默认权重 但是我是否可以让它在没有权重的情况下工作 当前
  • golang 服务器上的 CORS 和 javascript 获取前端

    我有一个 golang HTTP 服务器 代码如下 http HandleFunc login func w http ResponseWriter r http Request log Println New incoming reque
  • 制作用户定义的类 std::to_string-able

    我知道 Java 或 C 似乎太多了 但是 是否有可能 好 明智地使我自己的类有效作为函数的输入std to string 例子 class my class public std string give me a string of yo
  • 来自模板化对象的 Java 8 函数式构造函数

    我正在使用 Eclipse Luna Service Release 2 4 4 2 Java 8 u51 我正在尝试创建一个方法 该方法将根据另一个方法参数创建传递的对象的实例 原型简化为 public
  • 如何使用不可变数据类型实现 DFS

    我正在尝试找出一种 Scala 风格的图形遍历方式 最好使用 val 和不可变数据类型 鉴于下图 val graph Map 0 gt Set 1 1 gt Set 2 2 gt Set 0 3 4 3 gt Set 4 gt Set 3
  • 邪恶的pdf不渲染页眉/页脚

    我在用邪恶 pdf https github com mileszs wicked pdf用于生成pdf from html在我的 Rails 项目上 正在渲染template但我无法打印header footer部分 下面是我的仅打印的代
  • 无法从 Dropbox 下载文件

    我正在从 Dropbox 上传和下载文件 当我上传文件时 它会正确上传 当我下载文件并打开它时 该文件是零字节 有人能告诉我为什么会发生这种情况吗 下载代码 try File localFile new File localFilePath
  • 使用 LINQ 将项目移动到列表顶部

    有没有办法使用 LINQ 将 id 10 的项目移动为列表中的第一项 Item A id 5 Item B id 10 Item C id 12 Item D id 1 在这种情况下 我怎样才能优雅地将项目 C 移动到我的顶部List
  • Jquery 拖放,无需插件

    我尝试使用 JQuery 创建一个拖放插件 draggable on mousemove function var mouseposition this also needs to account for onclick offset of
  • 当目标系统关闭时,停止 Spring Cloud Stream @StreamListener 监听

    我有一个应用程序 它从 Kafka 获取消息并调用目标系统来更新旧版 Oracle 数据库 我想要启用一个场景 如果目标系统关闭 则将消息留在 Kafka 总线上 并且在给定的时间内不处理它们 我正在考虑一些基于 Hystrix 的断路器解