为什么在生产中进行调试是如此诱人?

生产调试

为什么在生产中进行调试是如此诱人?

在我的第一份工作中,我要做的任务之一是修复一个错误,该错误过去在非常复杂的生产系统中有时会发生。 很简单! - 我想。 我将在开发环境中重现同样的情况,找到虚线,实施快速修复,然后完成! 但是,事实证明,无法复制与生产中完全相同的场景-因此一段时间后,我放弃了这个想法。 我被迫花费数天时间分析日志并尝试关联许多不同的事件,以弄清可能发生的事情。 很快,我意识到这就像在大海捞针中一样乏味。 经过几天没有结果的结果,我得出的结论是,我需要在这里和那里添加更多的日志记录,然后等待几天甚至几个月,以查看该错误是否再次发生。 然后,我认为与开发应用程序时使用的复杂工具相比,在生产中寻找错误是有点粗糙的。 您正在实现一项新功能,并且看到服务返回的结果不是您所期望的吗? 您只需放置几个断点,然后单击“调试”按钮即可! 片刻之后,您确切地知道发生了什么。 在生产环境中执行相同的操作会很棒吗?

为什么在生产中进行调试是如此困难?

等一下! –您可能已经想到了。 但是我们不是在大多数现代IDE中都具有远程调试功能吗? 我们不能像在本地环境中那样连接到正在运行的生产应用程序并对其进行调试吗? 尽管有可能,但另一个问题出现了:我们的大多数业务应用程序每秒处理许多请求。 当对应用程序进行远程调试时,没有简单的方法可以控制在任何地方触发的断点。 您可以想象,当我们决定调试它时,我们不想阻止所有用户使用我们的应用程序。 通常,我们也不能仅仅强迫我们的应用程序重现昨天发生的错误-有时唯一的方法就是等到我们的一个用户再次发生该错误为止。 因此,在生产环境中保持远程调试会话而无须严格控制断点的触发方式,就像在森林中放置地雷并邀请我们的用户穿越地雷一样。

更好,更安全的方法

FusionReactor是一个应用程序性能监视器,具有许多高级功能,您通常不会在监视解决方案中找到这些功能。 生产调试器是其中之一,该调试器旨在允许您从生产运行时环境中获取底层调试信息。

使用某些传统的调试器时,您将面临的主要问题之一是:一旦设置了断点,它将对任何跨越代码点的线程触发。 FusionReactor通过采用一系列控制断点触发方式的技术来克服这一问题。 例如,它可以限制给定断点将触发的次数(线程),从而解决了影响太多用户的问题。 需要更多控制方式吗? 您甚至可以配置一个断点,以从特定的IP地址(会话)向用户触发,或者在特定变量与值匹配或发生特定异常时向用户触发。 但是,如果在我们团队中没人在看的夜晚触发断点怎么办? FusionReactor允许您定义线程暂停超时,因此,如果您在特定时间内不截取暂停的线程,则调试器将释放锁定并允许线程继续执行。 当与线程限制一起使用时,这可以将可能的影响减少到仅一个线程,并且仅持续n秒。

另一个好处是,FusionReactor可以在触发器触发时发送带有堆栈跟踪和变量的电子邮件。 这为您提供了一种非常灵活,简便的方式来获取大量信息的通知,从而使调试比以往任何时候都更加容易。

生产中的调试不必太麻烦。 FusionReactor带有完全集成的IDE样式的调试器,该调试器可直接在您的浏览器中运行-无需安装其他胖客户端即可启动远程调试。 一切都是内置的,随时可以使用。

翻译自: https://www.javacodegeeks.com/2018/05/why-debugging-in-production-is-so-tempting.html

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

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

相关文章

软件测试中需求分析谁去做的,软件项目在进入需求分析阶段,测试人员应该开始介入其中。 - 问答库...

问题:[判断题] 软件项目在进入需求分析阶段,测试人员应该开始介入其中。A . 正确B . 错误某男性患者,45岁.乡镇企业工人,因腹胀,尿少2周就诊。诉近年来体力下降较明显,易疲乏,时有右…

解码base64_linux C++ Base64编解码

Base64的由来目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。在做支付系统时,系统之间的报文交互都需要使用Base64对明文进行转码,然后再进行签名或加密,之后再进行(或再次Base64)传输。那么&#xf…

java的for循环取出数据只是拿到最后一个_新兴大数据分析榆中百合

新兴大数据分析榆中百合大数据流程从流程角度上看,整个大数据处理可分成4个主要步骤。处理流程图分为三层(数据采集层,数据存储与计算处理层,数据可视化):表2-1 系统环境系统版本Windows 10专业版(建议)LinuxCentOS 6.8 or CentO…

文件 服务器 pandas,疑难杂症-使用pandas_profiling查看EDA数据文档遇到的一些坑

最近在学习特征工程相关的东西,发现pandas_profiling这个包特别适合直观地能够展示数据地很多细节的地方,包括缺失值等相关信息。然后,我就开始折腾pip install pandas_profiling发现一下子把原本好好的环境(Anaconda3.5、Python3)给折腾坏了…

log4j 禁止类输出日志_log4j 2过滤spring日志遇到的问题

在项目中使用testng写单元测试,使用log4j输出日志,spring的日志也被打印出来,在调试的时候看到一片一片的spring日志很烦,总是要找自己的输出日志。这样式的~~~找了一下log4j2的日志过滤,很简单,在logger定…

c++冒泡排序代码_【开源推荐】数据结构和算法必知必会的50个代码实现

最近GitHub上发现了个非常不错的项目,目前star 4000,项目主要讲数据结构和算法,有多种语言 50个代码实现。实现语言有c,c#,go,java,javascript,object-c,python&#xff…

应用程序添加到服务器,在同一应用程序中的配置服务器和eureka服务器:尝试连接到localhost:8761...

我有一个spring-boot应用程序,可用于在开发和测试环境中设置a spring cloud config server和a eurekaserver。奇怪的是localhost:8761,即使我将其eureka.client.registerWithEureka设置为false,应用程序也总是尝试连接到。如何停用此功能&…

android 抽屉_Android Studio之路,我们来了解一下Google官方Android开发工具

记得我的第一篇博客就是写Android Studio,但是现在看来还是有些粗糙了,所有重构了一下思路,覆写了一篇Google主推-Android开发利器——Android Studio,这可能是最全的AS教程!Android Studio,自Google2013年发布以来,就…

karaf osgi_在OSGi中为Karaf构建Camel-CXF REST服务–组播和聚合

karaf osgi请查看我在Karaf的OSGi中构建普通CXF服务(无Camel)的其他文章 。 这是有关如何 创建一个CXF REST服务 使用骆驼多播(并并行化)传入的请求 来自两个不同服务的源数据 汇总响应并 最后将合并结果作为JSON返回给最终…

10g gtx 光纤通信测试_光纤通信系统仿真实验

1实验四光纤通信系统仿真实验【实验目的】1.掌握光纤通信系统的组成及各部分功能。2.熟悉Optisystem实验环境,练习使用元件库中的常用元件组建光纤通信系统。3.利用Optisystem的仿真光纤通信系统,并进行分析。【实验仪器】Optisystem软件计算机【实验内容…

酒店wifi代理服务器没有响应,wn10连接酒店wifi的登录界面无法弹出如何处理

通常情况下,我们在连接酒店wifi后都会出现登录验证界面。不过,最近一位windows10系统用户在连接wifi后打开网页却遇到无法显示登陆界面情况,该怎么办呢?接下来,就随小编一起看看wn10连接酒店wifi的登录界面无法弹出问题…

监视和管理备份系统

上一次我们建立了一个强大的备份系统 ,现在我们将研究如何监视备份集。 我们需要验证备份集是否已正确清理(这称为删除策略)以及它们是否一致(称为一致性策略)。 备份集可以包含多个文件集。 文件集是备份文件的集合&…

linux rsa登录改密码登录_linux服务器secureCRT RSA登录配置

为了保证生产服务器的安全,我们会做一些安全的登录验证措施!不允许使用root账号直接登录服务器!下面是通过secureCRT 设置RSA登录配置。1、RSA公钥配置方法(1)打开secureCRT选择一个连接然后点属性再如图所示(2)一直点下去 点击下一步要选RS…

python词云安装什么库_python词云安装什么库

python词云需要安装wordcloud库。 安装方法: 在cmd使用pip install wordcloud命令即可安装。 wordcloud库把词云当作一个WordCloud对象:wordcloud.WordCloud()代表一个文本对应的词云。 可以根据文本中词语出现的频率等参数绘制词云。 示例:f…

微软ODBC服务器驱动,解决安装SQL Server时[Microsoft][ODBC 驱动程序管理器] 未发现数据源的问题...

在Windows Server 2003 上安装 MS SQL Server 2000 时,最后阶段安装程序在配置服务器时,出现“[Microsoft][ODBC 驱动程序管理器] 未发现数据源”,具体提示为:#################################################################…

怎么wps解除合并单元格_wps表格怎么锁定单元格

wps表格怎么锁定单元格呢?很多用户对此还不是很清楚,小编这里就给大家带来有关wps表格怎么锁定单元格的回答,希望能够对大家有所帮助。一、整个表格进行锁定1、同时按住CtrlA,选中整个单元格,如图2、选中以后&#xff…

挡土墙计算软件_广联达软件如何计算钢板止水带?

原创作者:张向荣1、什么是钢板止水带?混凝土结构中,地下室墙体施工中,如果底板和墙体分开浇筑,就需要留置施工缝。施工缝:施工缝并不是一种真实存在的“缝”,它只是因先浇筑混凝土超过初凝时间&…

网站图片多服务器选多大,网站上的图片一般多大合适

网站上的图片一般多大合适 内容精选换一换安装了SSL证书后,访问网站时,HTTPS比HTTP要多几次握手的时间,HTTPS协议握手阶段比较费时,同时还要进行RSA校验,因此使用了SSL证书后,相较于HTTP访问,访…

web网站服务器宕机应急,web服务器的宕机诊断方法

宕机诊断方法编辑步骤1:发生了什么事系统管理员必须肩负起分析和判断Web服务器宕机原因的责任。需要解决如下的问题:是否是断电,发电机测试以及其他类似问题影响了整体物理环境?和Web服务器的通信是否已经完全被阻断,还是某些IP段…

eclipsejvm内存不足_Eclipse无法调试及编译时内存不足的解决

Eclipse下Debug时,弹出错误提示:“Unable to install breakpoint due to missing line number attributes. Modify compiler options to generate line number attributes”,无法进行调试。遇到这个错误时找到的解答方案汇总:1、修…