背景 不加班的周末,整理了一下项目上的异常处理方案,和小伙伴们共享,里面不成熟的代码或解决方式.QAQ,评论区走起 自定义异常消息结构 public final class Code { private...String getString() { return "[" + this.code + "][" + this.msg + "]"; } } 关键字段解释 code:异常编码...此处可以拦截各种类型的异常,但是要注意拦截的顺序,按照基础Exception的顺序,越是后面的异常拦截要靠前, 我们将拦截到的异常消息封装,然后统一在api-gateway中解析处理. /** *...HTTP状态码 private static final int SERVER_INTERNAL_ERROR_HTTP_STATUS = 500; // 服务器内部异常 /**...HTTP状态码 private static final int CUSTOM_EXP_STATUS_CODE = 403; // 自定义异常(可控异常)对应的HTTP状态码 private
近期接触了Linux平台的测试,遇到了软件发生异常,从而接触到了 Linux平台下的Signal——信号,用来通知进程发生了异步事件。...作为测试,免不了需要初步判断一下是否是正在的异常,因此学习了一下Signal NO 1 信号事件的发生有两个来源: 硬件来源(比如我们按下了键盘或者其它硬件故障); 软件来源,最常用发送信号的系统函数是...NO 2 Linux支持的信号列表如下(很多信号是与机器的体系结构相关的) 信号值 默认处理动作 发出信号的原因 SIGHUP 1 A 终端挂起或者控制进程终止...E 信号不能被捕获 F 信号不能被忽略 了解了以上信息后,再来看软件生成异常的log文件,其他的信息可以暂时不关注,将log信息中的Signal字段找出来,解读后面的数值 未了解之前: 跟开发了解了软件在出现异常时会写...是经常出现且需要重点关注的信号,遇到这个数字千万要放过 6和14,遇到这个信号也千万不要忽略,需要找开发进行分析讨论的哟,它可能是问题,当然,也可能不是问题 其他的信号,目前位置没有遇到过 以上简单分享了Linux
前言 除了解决业务Bug之外,工作中通常我们还会面临两类问题: 线上服务负载异常,比如CPU负载异常飙高 线上服务内存持续增长,存在泄漏 一般我们会通过各种监控、报警系统,发现和定位问题,关于如何搭建服务监控可以参考之前的文章...《Go服务监控搭建入门》。...所以今天就来看看这种情况下,如何定位服务负载异常的原因。...首先关于「负载异常」的问题,大都肯定都知道使用top或者htop等命令定位到某个进程或线程,好,问题来了: 如何定位到是哪个具体的函数导致的服务负载异常呢?...介绍一个利器perf 本文使用docker来演示perf的用法,可以直接使用我编排好的docker compose工程(一个模拟http服务调用grpc服务的演示项目) https://github.com
1.异常描述 ---- 在Cloudera Manager的主机列表界面查看cdh05.fayson.com节点显示异常,节点上一次检测时间超过15s ? 运行主机检查提示该节点显示如下异常 ?...排除防火墙、SELinux和磁盘空间不足导致Cloudera-scm-agent服务异常启动原因。...2.由于cloudera-scm-agent服务是被systemctl管理,需要检查系统的日志文件(/var/log/messages),查看是否有关服务启动失败的异常信息 Aug 30 15:33:44...服务启动正常,关于cloudera-scm-agent服务状态显示“active(exited)”问题可参考Fayson前面的文章《Cloudera Manager Server服务在RedHat7状态显示异常分析...服务运行失败。
文章时间:2020年3月5日 09:59:20 解决问题:系统时间异常,修复系统时间 CentOS系统 yum install ntpdate ntpdate 某个服务器节点 Ubuntu系统...sudo apt-get install ntpdate sudo ntpdate 某个服务器节点
问题便在 订单服务 去调用 用户服务 时,如果 用户服务 查询失败(如用户状态被冻结,用户不允许等)并抛出了带有提示信息的异常,而在我们 订单服务 是无法获取到异常信息的,它会抛出 FeignC 自带的...FeignException异常,并不会携带用户服务本身抛出的异常,订单服务 会显示一个网络为500的请求失败异常 如:服务A 调用 服务B 服务B 在运行时 抛出一个异常: new RuntimeException...("User does not exist or has been frozen"); 而在 服务A 显示的异常信息为: ---- 可能会有人问:用户服务 如果不抛出异常,而是查询失败后直接返回一个null...,在 订单服务 调用完毕后,对其进行非空判断,然后在 订单服务 返回异常信息。...自定义异常类 这里的 服务端 指服务提供者,也叫 上游服务;客户端 指 服务使用者,也叫下游服务。
缺页异常被触发通常有两种情况—— 程序设计的不当导致访问了非法的地址 访问的地址是合法的,但是该地址还未分配物理页框. 下面解释一下第二种情况,这是虚拟内存管理的一个特性。...,程序在一定时间内所访问的内存往往是有限的,因此内核只会在进程确确实实需要访问物理内存时才会将相应的虚拟内存区域与物理内存进行关联(为相应的地址分配页表项,并将页表项映射到物理内存),也就是说这种缺页异常是正常的...,而第一种缺页异常是不正常的,内核要采取各种可行的手段将这种异常带来的破坏减到最小。...缺页异常的处理函数为do_page_fault(),该函数是和体系结构相关的一个函数,缺页异常的来源可分为两种,一种是内核空间(访问了线性地址空间的第4个GB),一种是用户空间(访问了线性地址空间的0~...3GB),以X86架构为例,先来看内核空间异常的处理。
gateway自己服务的全局异常处理,参考这篇https://segmentfault.com/a/1190000016854364?...,如果出现了异常没有处理,网关也是会直接原文返回给客户端的。...譬如在gateway后面有一个服务出了异常,当客户端请求时: 如果我们通用的返回值,并不是这么定义的,譬如我都是用code=200,message=xxx之类的json。...而且我们无法保证网关后面的微服务都能捕获异常并返回统一的格式,所以,就需要在网关处做一层封装。对返回值、尤其是非正常的返回值做一个包装。 这一步的关键点就在于怎么获取服务的返回值。...通过这篇文章获取到返回值后,可以通过判断json字符串是否包含code:xxx的字样,来判断后台的服务是否异常了。然后通过修改返回值,加上我们通用的返回值字段即可。
seconds\n" #输出休息一分钟 sleep 60s #等待一分钟 done #do 结束符 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux...Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
问题分析解决 昨天突然服务器重启了,最后导致的就是Zabbix的数据库MYSQL库表坏了,然后MYSQL就启动不了了。...启动不了咋整,看log呗,报什么异常情况,查看error如下: 2017-09-21 14:41:18 4255 [Note] InnoDB: The InnoDB memory heap is disabled...Note] InnoDB: CPU does not support crc32 instructions 2017-09-21 14:41:18 4255 [Note] InnoDB: Using Linux...;从网上看到差不多的文章说需要设置如下: innodb_force_recovery = 6 innodb_purge_thread = 1 先不管什么意思了,先配置上看看能不能修复表了,配置之后果然服务也启动起来了...看起来基本没有问题了,那咱就先把Zabbix Server启动起来看看吧,然后用tail命令MYSQL的error日志中还会有什么异常情况。
各端口作用 25:smtp是服务器用来接收和发送邮件的,客户端来发送邮件的。(这个端口是不能更改的) 110:是pop客户端用来接收邮件的 143:imap客户端用来接收邮件的。...测试MX解析和A解析 测试25端口 只有对方域名的解析记录都正常,才可以成功发送邮件到达对方 解析MX和A记录后还需要连接“收件人邮件服务器”的25端口,这里也将介绍怎么测试对方服务器的25端口通不通。...(只有对方服务器的25端口正常,才可以成功发送邮件到达对方)。
检查Nginx服务器磁盘空间,空间正常。但是df -h 命令输出极慢 检查Nginx服务器负载状态,CPU负载出现异常升高的情况。...cpj.erp.qipeidao.com访问异常的报错,报错显示静态资源不存在 13.50左右操作过的唯一变更,即重启了172.26.139.224这台服务器。...这台服务器时,nfs服务并没有设置自启动,导致重启后nfs服务挂了。...在此问题中还有一个现象,即下午13.50分左右nginx其实已经出现问题,但是用户使用正常,是因为我们在阿里云做了全站加速,阿里云的域名解析的缓存会有一个小时的时间,所以用户在故障发生一个小时后才会反馈异常...解决以及优化方案 1.检查所有服务器的nfs服务器并配置自启动。
Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.问题描述 HiveServer2服务在运行时经常抛出如下异常日志...2.异常分析 1.这是一个可以忽略的异常,不会影响HiveServer2服务的正常使用。 2.该异常会在Thrift0.9.2及更低版本的HiveServer2服务上出现。...3.由HiveServer2服务上的负载均衡器进行Tcp检查引起的,主要用评估服务的健康状况。...attachmentSortBy=dateTime (可左右滑动) 3.异常处理 在Fayson眼里看到ERROR级别的日志就是不爽,即使没有影响的异常。...,不会影响HiveServer2服务的性能。
当用户提交程序,然后产生进程在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有则直接调入内存进行;如果没有,则会根据优先级选择一个...
结果在打开浏览器之后,发现居然提示我找不到dns服务器地址。但是可以通过ip打开服务器的宝塔面板,这就让我一脸懵。...经过查找,发现是当前dns服务器地址有问题,或者不可用。 问题的解决 解决方法 找到了问题,那么怎么解决呢。要用到dns解析服务器地址,我四处查找找到了几个免费公共的DNS解析服务器。...服务商 dns1 dns2 阿里 223.5.5.5 223.6.6.6 百度 180.76.76.76 2400:da00::6666(ipv6) OpenDNS 208.67.222.222 208.67.220.220...114.114.114.114 114.114.115.115 Cloudflare 1.1.1.1 1.0.0.1 DNSPod 119.29.29.29 182.254.116.116 PS:如果配置了不合理的DNS服务器...在网卡设置页,右击点属性,然后双击internet协议版本4(TCP/IPv4),然后点击使用下面的DNS服务器地址,在下边的两个输入框中输入dns地址`,最后点击确定。
结果在打开浏览器之后,发现居然提示我找不到dns服务器地址。但是可以通过ip打开服务器的宝塔面板,这就让我一脸懵。...经过查找,发现是当前dns服务器地址有问题,或者不可用。[/card] 问题的解决 [card title="解决方法" color="info"]找到了问题,那么怎么解决呢。...要用到dns解析服务器地址,我四处查找找到了几个免费公共的DNS解析服务器。...[/card] 服务商 dns1 dns2 阿里 223.5.5.5 223.6.6.6 百度 180.76.76.76 2400:da00::6666(ipv6) OpenDNS 208.67.222.222...在网卡设置页,右击点属性,然后双击internet协议版本4(TCP/IPv4),然后点击使用下面的DNS服务器地址,在下边的两个输入框中输入dns地址`,最后点击确定。
Java服务异常 系统资源问题定位 系统资源问题定位的核心是找到到底是哪个进程在异常占用系统资源,特别是在服务器中混部了多种服务的时候,经常会遇到系统资源竞用的情况。...因此需要确定异常进程的pid,然后再继续分析异常服务中到到底是哪个工作线程出现异常,如果并不是代码问题导致的,那么则需要考虑增加硬件配置来承载混部的各个服务。...接口响应慢问题定位 服务接口响应慢的问题大概是这三种异常场景中最复杂的,主要可以从两个层面进行分析,一个是服务自身存在问题导致接口响应慢,另一个是服务的依赖方出现响应慢导致。...因此分析排查定位过程也是主要从这两方面出发,服务自身问题主要包括代码Bug、系统资源异常使用等,依赖方主要包括依赖的中间件、下游服务接口等。...总结 本文主要梳理了日常研发工作中最常见的三种异常场景,分别是服务器资源使用异常、Java服务内存溢出异常以及接口响应超时异常。
接触过apollo和运行过apollo的人肯定都遇到过启动configService时抛异常了,而且100%会抛一个异常。...原因是,在apollo的架构中configService既作为config服务,同时也承载了metaService的功能,所以这个模块,既作为eureka的服务端也是eureka的客户端,这就造成了应用启动时...,eurekaServer未完全启动,eurekaClient拉取注册表信息时就抛异常了。...触发原因分析 首先看下异常的信息,异常的信息比较多,如下: 2020-12-23 09:55:19.882 ERROR 7022 --- [ main] c.n.d.s.t.d.RedirectingEurekaHttpClient...其次,最初的时候以为将fetchRegistry设置为false就ok了,然后在metaService服务获取configService时候啥也获取不到,才明白了fetchRegistry的真正意图。
我们有个功能是这样的:有个以 root 运行的 python 程序,它需要以 test 用户执行 linux 命令,所以就通过 subprocess 库 + sudo 来执行,也就是下面的关系图: image.png
16 系统出现异常排查思路 16.1 查看用户信息 16.1.1查看当前的用户 # who 04:39:39 up 1:30, 1 user, load average: 0.01, 0.01,...S 03:09 0:00 [stopper/0] 16.4查看网络服务的进程 16.4.1查看正在运行的端口 # netstat -nltl Active Internet connections...bytes Inactive Handle 0x022B, DMI type 127, 4 bytes End Of Table 16.9 IO的性能 16.9.1 查看磁盘的使用情况 # iostat Linux...Blk_read Blk_wrtn sda 1.49 75.27 10.68 645224 91568 16.9.2 动态的查看服务器的状态值...0 0 0 0 57 84 1 1 99 0 0 ********************* 16.9.3实时的对系统的监控 # mpstat 2 10 Linux
领取专属 10元无门槛券
手把手带您无忧上云