苏州网站开发外包公司免费ppt模板下载公众号

news/2025/9/24 7:32:03/文章来源:
苏州网站开发外包公司,免费ppt模板下载公众号,模版型网站是怎样的,wordpress主机主题应用场景 上一篇《Spring Cloud Stream消费失败后的处理策略#xff08;一#xff09;#xff1a;自动重试》介绍了默认就会生效的消息重试功能。对于一些因环境原因、网络抖动等不稳定因素引发的问题可以起到比较好的作用。但是对于诸如代码本身存在的逻辑错误等#xff…应用场景 上一篇《Spring Cloud Stream消费失败后的处理策略一自动重试》介绍了默认就会生效的消息重试功能。对于一些因环境原因、网络抖动等不稳定因素引发的问题可以起到比较好的作用。但是对于诸如代码本身存在的逻辑错误等无论重试多少次都不可能成功的问题是无法修复的。对于这样的情况前文中说了可以利用日志记录消息内容配合告警来做补救但是很显然这样做非常原始并且太过笨拙处理复杂度过高。所以我们需要需求更好的办法本文将介绍针对该类问题的一种处理方法自定义错误处理逻辑。 动手试试 准备一个会消费失败的例子可以直接沿用前文的工程也可以新建一个然后创建如下代码的逻辑 EnableBinding(TestApplication.TestTopic.class)SpringBootApplicationpublic class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } RestController static class TestController { Autowired private TestTopic testTopic; /** * 消息生产接口 * * param message * return */ GetMapping(/sendMessage) public String messageWithMQ(RequestParam String message) { testTopic.output().send(MessageBuilder.withPayload(message).build()); return ok; } } /** * 消息消费逻辑 */ Slf4j Component static class TestListener { StreamListener(TestTopic.INPUT) public void receive(String payload) { log.info(Received payload : payload); throw new RuntimeException(Message consumer failed!); } } interface TestTopic { String OUTPUT example-topic-output; String INPUT example-topic-input; Output(OUTPUT) MessageChannel output(); Input(INPUT) SubscribableChannel input(); }}内容很简单既包含了消息的生产也包含了消息消费。消息消费的时候主动抛出了一个异常来模拟消息的消费失败。 在启动应用之前还要记得配置一下输入输出通道对应的物理目标exchange或topic名、并设置一下分组比如 spring.cloud.stream.bindings.example-topic-input.destinationtest-topicspring.cloud.stream.bindings.example-topic-input.groupstream-exception-handlerspring.cloud.stream.bindings.example-topic-input.consumer.max-attempts1spring.cloud.stream.bindings.example-topic-output.destinationtest-topic完成了上面配置之后启动应用并访问localhost:8080/sendMessage?messagehello接口来发送一个消息到MQ中了此时可以看到消费失败后抛出了异常跟上一篇文章的结果一样消息消费失败记录了日志消息信息丢弃。 下面针对消息消费失败在TestListener中针对消息消费逻辑创建一段错误处理逻辑比如 Slf4jComponentstatic class TestListener { StreamListener(TestTopic.INPUT) public void receive(String payload) { log.info(Received payload : payload); throw new RuntimeException(Message consumer failed!); } /** * 消息消费失败的降级处理逻辑 * * param message */ ServiceActivator(inputChannel test-topic.stream-exception-handler.errors) public void error(Message? message) { log.info(Message consumer failed, call fallback!); }}通过使用ServiceActivator(inputChannel test-topic.stream-exception-handler.errors)指定了某个通道的错误处理映射。其中inputChannel的配置中对应关系如下 test-topic消息通道对应的目标destination即spring.cloud.stream.bindings.example-topic-input.destination的配置stream-exception-handler消息通道对应的消费组group即spring.cloud.stream.bindings.example-topic-input.group的配置 再启动应用并访问localhost:8080/sendMessage?messagehello接口来发送一个消息到MQ中此时可以看到日志如下 2018-12-11 12:00:35.500 INFO 75269 --- [ctor-http-nio-3] o.s.a.r.c.CachingConnectionFactory : Attempting to connect to: [localhost:5672]2018-12-11 12:00:35.512 INFO 75269 --- [ctor-http-nio-3] o.s.a.r.c.CachingConnectionFactory : Created new connection: rabbitConnectionFactory.publisher#311db1cb:0/SimpleConnection40370d8c [delegateamqp://guest127.0.0.1:5672/, localPort 54391]2018-12-11 12:00:35.527 INFO 75269 --- [ption-handler-1] c.d.stream.TestApplication$TestListener : Received: hello,2018-12-11 12:00:38.541 INFO 75269 --- [ption-handler-1] c.d.stream.TestApplication$TestListener : Message consumer failed, call fallback!虽然消费逻辑中输出了消息内容之后抛出了异常但是会进入到error函数中执行错误处理逻辑这里只是答应了一句话用户可以根据需要读取消息内容以及异常详情做更进一步的细化处理。 深入思考 由于error逻辑是通过编码方式来实现的所以这段逻辑相对来说比较死。通常只有业务上有明确的错误处理逻辑的时候这种方法才可以比较好的被应用到。不然能做的可能也只是将消息记录下来然后具体的分析原因后再去做补救措施。所以这种方法也不是万能的主要适用于有明确错误处理方案的方式来使用这种场景并不多另外。。。 注意有坑 这个方案在目前版本2.0.x其实还有一个坑这种方式并不能很好的处理异常消息会有部分消息得不到正确的处理由于应用场景也不多所以目前不推荐使用这种方法来做完全可以用原始的异常捕获机制来处理只是没有这种方式那么优雅。目前看官方issue是在Spring Cloud Stream的2.1.0版本中会修复后续发布之后可以使用该功能具体点击查看Issue #1357。 而对于没有特定的错误处理方案的也只能通过记录和后续处理来解决可能这样的方式也只是比从日志中抓去简单那么一些并没有得到很大的提升。但是不要紧因为下一篇我们将继续介绍其他更好的处理方案。 代码示例 本文示例读者可以通过查看下面仓库的中的stream-exception-handler-2项目 GithubGitee 如果您对这些感兴趣欢迎star、follow、收藏、转发给予支持 以下专题教程也许您会有兴趣 Spring Boot基础教程Spring Cloud基础教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站公司哪家正规古楼角网站建设

2019独角兽企业重金招聘Python工程师标准>>> 由于最近用阿里云日志服务整合log4j,在配置com.aliyun.openservices.log.log4j.LoghubAppender需要设置一些参数,因为项目中有统一的配置文件,所以想要可以直接在log4j.xml中通过${}来…

2025年国家科技奖初评公布(科技发明奖)

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 …

做网站的收入上海平台网站建设

SQL Server横向扩展方案-SODA每次在提到SQL Server扩展性问题的时候,似乎很多的SQL Server DBA或者使用微软技术开发的朋友心里总是一整痛:SQL Server只能纵向的扩展(Scaling-Up),无法横向的扩展(Scaling-Out)。每次有人提到Oracle和SQL Serv…

wordpress替代广州网站优化公司

对于前端来说,2023 是非同寻常的一年。我们见证了争相抢占甚至是发明服务器端渲染(SSR)市场的热潮、AI 的不断进步、Web 渲染器和 JS 引擎的寒武纪大爆发、一大批有力的竞争者试图摧毁巨头的统治地位…… 在开始预测未来一年发展趋势之前&am…

推荐系统网站开发徐州做网站企业

本次以多台机器需部署zabbix客户端为例: 机器先做免密互信,ansible主机上执行ssh-keygen,一路回车,然后将公钥发送给需管理的主机: ssh-copy-id rootIP 1、编辑hosts文件,添加需配置的主机IP,并测试连通…

最好的自助建站系统wordpress forest

在上一节中,我们简单讲述了数据库和SQL的基本概念。 本节我们讲述一下环境搭建,为下一节讲表的基本操作做下铺垫。 环境搭建 具体到操作,我们就要准备一些环境了。如果不进行练习,我们学习的知识将很快被遗忘。 MySQL安装&…

大岭山镇仿做网站廊坊网站建设-纵横网络+网站

海龟编辑器是一款专为广大少儿打造的Python编辑器,该软件功能强大且使用便利,可以帮助孩子们以搭积木的方式来学习Python,并且支持Python代码和图形化积木的双向互相转译,不但可以有效提升孩子的学习兴趣,而且还能够降…

局网站建设招标深圳网站建设 卓

多Transformer的双向编码器表示法 Bidirectional Encoder Representations from Transformers,即Bert; 第二部分 探索BERT变体 从本章开始的诸多内容,以理解为目标,着重关注对音频相关的支持(如果有的话)…

html5手机app网站模板免费下载网络网页制作

我们在开发中经常会用到一些指定区域进行打印机打印,但是使用常规方式打印会将全部页面打印,当然相同都为打印,但是打印出来的内容并不是我们需要的东西,进行给大家分享如何设置打印机指定区域进行打印;该标签中的内容…

网站 编程语言建站论坛

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 主键约束可以看成是非空约束再加上唯一约束 也就是说设置为主键列,不能为空,不能重复 像一般用户编号是不可能重复的,也不可能为空的 …

网站备备份教程上海集锦信息科技有限公司

目录 概述 1 STM32H750 HSE时钟介绍 2 使用STM32Cube创建Project 3 认识HSE时钟 3.1 HSE时钟的特性 3.2 HSE的典型应用电路 4 STM32Cube中配置时钟 4.1 时钟需求 4.2 配置参数 4.2.1 使能外围资源 4.2.2 使用STM32Cube注意项 4.2.3 配置参数 5 总结 概述 本文主要…

九江市建设规划局旧网站网站优化+山东

来源:集智俱乐部 作者:斯蒂芬沃尔夫勒姆 数学家、物理学家、计算机科学家导语:圣塔菲研究所被誉为复杂性科学的圣地,被称为“没有围墙的研究所”,那么它是如何创建发展起来的呢?2019 年,为了纪…

网站首页优化的目的wordpress旧文章更新

概述 当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,…

周至县做网站上海企业建站推荐

使用数据库的时候,我们可以用JDBC来实现mysql数据库与java程序之间的通信,为了提高通信效率,我们有了数据库连接池比如druid等等。而我们想通过Java程序控制redis,同样可以借助一些工具来实现,这就是redis客户端&#…

汕头网站建设推广方法WordPress多功能新闻积分商城主题

ylbtech-Vue.js:路由1.返回顶部 1、Vue.js 路由 本章节我们将为大家介绍 Vue.js 路由。 Vue.js 路由允许我们通过不同的 URL 访问不同的内容。 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。 Vue.…

网站模板素材青海网站建设有哪些

随着公司的发展和市场竞争的影响,越来越多的创业者希望注册一家好名称的公司,以提高企业知名度和竞争力。但是,注册中字头无地域公司需要满足一定的条件和流程。本文将对中字头无地域公司注册条件及流程进行详细的介绍。可以致电咨询我或者来…

昆明网站的优化免费开网店的app

组件的自定义事件 一种组件间通讯的方式&#xff0c;适用于&#xff1a;子组件 —> 父组件 绑定自定义事件 第一种方式:在父组件中写单标签1.<Demo 事件名"方法">2.<Demo v-on:事件名"方法"/>第二种方式:使用ref绑定(配置在生命周期中)this…

无锡哪里有建设网站建设一个视频教学网站

当我们有了一台属于自己的服务器的时候&#xff0c;想远程桌面连接到服务器&#xff0c;怎么连接呢&#xff0c;下面来分享一下方法&#xff01; 准备工作:服务器(服务器ip&#xff0c;端口&#xff0c;账号密码) 个人电脑 第一步在我们的电脑上面按winR键打开运行&#xff0…

网站的网络设计公司android studio下载官网

目录 方法一&#xff1a;同源使用标签下载图片 方法二&#xff1a;跨域使用将canvas上的内容转换为Blob对象并下载 在前端开发中&#xff0c;有时候我们需要实现点击图片后直接下载的功能。本文将介绍两种方法来实现这一功能&#xff1a; 同源使用<a>标签下载图片跨域使…

2025年国家科技奖初评公布(自然科学奖)

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140…