摘要: 问题的发现 早上上班,运维告警,说账户模块的服务全部CPU以及内存告警,当时正在地铁早高峰,所以他们留下了一台在dump,其他机器立马重启,重启后恢复,上班后立马开始排查。 一开始dump文件没出来,后续运维告知dump也失败了,其实按照结果来看,这个问题要是有dump的话, 当时一眼就能看出来问题 阅读全文
posted @ 2020-10-14 16:47 IntoTw 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 问题的发现 最早问题的发现在于用户提的,用户提出他支付时支付失败,过了一会儿再试就好了,于是翻日志,查询到当时duboo调用出现了下类错误: [TraceID:20200527145701489] DEBUG c.y.c.s.w.s.m.m.a.HandlerMethodAspect - Throw 阅读全文
posted @ 2020-10-14 16:45 IntoTw 阅读(772) 评论(0) 推荐(0) 编辑
摘要: 问题的发现 发现当然还是运维大哥因为发现告警,包括自己邮箱也一堆告警,然后运维大哥做了dump以及jstack后立马重启,重启后暂时解决。 问题的排查 有dump和jstack记录,当然是好分析的,先分析这两个,原因就比较明显了: dump记录拉到本地用java自带的工具查看,发现大量netty的M 阅读全文
posted @ 2020-10-14 16:43 IntoTw 阅读(1134) 评论(0) 推荐(0) 编辑
摘要: 修改后的源码仓库地址:GitHub. : 改造原因 原有的xxl-job使用自己实现的http协议进行注册以及调度等,与目前框架中本身的注册中心格格不入,会影响健康检查、日志处理、问题排查。 技术栈统一。避免执行器内包含两套注册逻辑。 提高分布式健壮性,原有的服务注册以及发现等功能较弱,且与实际应用 阅读全文
posted @ 2020-10-14 16:41 IntoTw 阅读(1464) 评论(0) 推荐(1) 编辑
摘要: 研究这个问题的起因 起因是一次面试,一次面试某电商网站,前面问到缓存,分布式,业务这些,还相谈甚欢。然后面试官突然甩出一句:“了解dubbo吗?dubbo是长连接还是短连接?”。当时我主要接触了解学习的还是spring cloud,dubbo作为知名的分布式rpc框架,只是有一定了解,并且连接这一块 阅读全文
posted @ 2020-10-14 16:02 IntoTw 阅读(3866) 评论(5) 推荐(2) 编辑
摘要: 数据库扩容随着架构的演进 数据库扩容一般都是随着系统建设一步步演进的,所以这里随着系统的演进,一一介绍扩容的方案。 读写分离 一开始肯定是一个数据库,但是压力上来了之后,最容易做的就是读写分离,即1主多从,主机负责写,从机负责读,像mysql就提供类似功能,通过配置实现master-slaver的模 阅读全文
posted @ 2020-10-14 15:40 IntoTw 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 负载均衡算法 负载均衡算法,一般在分布式场景的中大量使用,负载均衡一般分为调用方负载均衡,和服务方负载均衡,spring cloud中的ribbon就是使用的调用方负载均衡,而通过nginx的配置来进行负载均衡,明显更像是服务端的负载均衡。但是原理是一致的,算法的目的就是在一个服务器集合中,选择其中 阅读全文
posted @ 2020-10-14 15:30 IntoTw 阅读(581) 评论(0) 推荐(0) 编辑
摘要: 什么是分布式锁 锁的含义,一般就是为了独占资源,防止并发冲突,一般锁的实现,都依赖于计算机资源,如CPU,内存等,但是在跨系统时,各系统独立,如果需要锁,就需要一种分布式锁的实现方案。让各系统之间对相同资源的并发操作不会出现并发问题。 分布式锁的应用场景 虽然理论上,分布式锁适用于任何多应用需要独占 阅读全文
posted @ 2020-10-14 15:26 IntoTw 阅读(425) 评论(0) 推荐(0) 编辑
摘要: xxl-job是一个分布式定时任务调度框架,功能强大,底层使用自己实现的rpc框架进行注册和管理,数据库使用mysql,调度触发使用数据库锁来作为调度锁。 xxl-job主要分为调度中心admin以及任务,任务引入依赖jar包并配置启动类为spring所管理的bean后,将自动通过spring-be 阅读全文
posted @ 2020-10-14 15:04 IntoTw 阅读(2563) 评论(0) 推荐(0) 编辑