Xu Blog

分享生活与技术

FastJson 读取超大json文件引起OOM问题排查与解决

滚动阅读全文 背景 最近工作有一个需求,需要读取一个约2GB的json文件(存储了约3千万个json对象的集合),解析其中的每个json对象,并进行一些数据转换,最后把转换后的json对象存储到es中。json文件格式大概是这样的: [ { lng: 116.22 lat: 22.00, count: xxxx },...

XXL-Job源码分析(I)--调度中心启动

XXL-Job source code analysis(I)

滚动阅读全文 前言 XXL-Job是一个轻量的分布式任务调度平台,任务的定时调度管理是基于开源定时任务调度框架Quarts来实现的,任务的调度执行采用注册和RPC的方式实现,将任务的管理和执行进行了分离。我们先来了解一下调度中心的源码,调度中心主要负责任务的管理,本身并不复杂任务的业务逻辑,任务触发后,调度中心根据配置的相应规则将任务分配到执行器,执行器处理相应的业务逻辑。 ...

一次Redis内存飙升的排查

A troubleshooting of Redis memory soaring

滚动阅读全文 一、现象 在该项目中,多个微服务使用一台Redis虚拟机,项目开发完成后,进入试运行阶段,在项目平稳运行五天后,Redis使用的虚拟机内存在某一时刻突然飙升,很短的时间内内存耗尽,Redis虚拟机宕机,所有微服务连接Redis超时无法使用。 二、问题排查 怀疑在某一时刻出现大量写入数据导致内存飙升。我们的业务存到redis的数据量几乎是可以预估的,应该向之前一...

Leetcode刷题--Week 5

Improving coding skills in 5th week

滚动阅读全文 前言 本周刷题未链表排序相关知识点 题目 Given a singly linked list L: L 0→L 1→…→L n-1→L n, reorder it to: L 0→L n →L 1→L n-1→L 2→L n-2→… You must do this in-place without altering the nodes’ values. For ...

Leetcode刷题--Week 4

Improving coding skills in 4th week

滚动阅读全文 前言 本周刷题两道:二叉树的前序遍历,哈希应用求两数之和 二叉树前序遍历 题目 Given a binary tree, return the preorder traversal of its nodes’ values. For example: Given binary tree{1,#,2,3}, return[1,2,3]. Note: Recursi...