自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 一次Redis内存飙升的排查

一次又Redis事务导致的内存飙升排查总结

2019-06-01 12:35:54 3190

原创 利用反射+策略模式优化过多的if else 代码

前言最近刚看完《设计模式之禅》,在写代码前总是想着能不能尝试用上一些设计模式。前几天看到一篇公众号推文利用策略模式来优化过多的if else代码,正好符合目前我面临的一个场景,作者使用一个枚举类来维护所有的策略,这样的话,没增加一个策略,都要去枚举类里增加相应的枚举常量,不太符合“开闭原则”。同时,随着策略的增加,这个枚举类源码的理解性也会变得越来差,也比较难维护。我通过注解+反射和策略模式做了...

2019-03-24 21:25:10 2343

原创 Mybatis插入数据返回递增主键

一、数据库增加自增长字段1、 PostgreSQL 数据库方法一: 将自动增长字段设置为Serial类型,该字段会在数据插入后自动增长,Seria类型的字段,数据库会自动创建一个序列,序列名默认为:表名_字段名_seq。方法二: 先创建序列名称,然后在新建表中为字段指定序列就可以了,该列需要int类型创建序列的语法:CREATE [ TEMPORARY | TEMP ] SEQUENCE...

2018-12-20 22:47:52 1065

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

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

2021-05-23 13:45:02 7945 3

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

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

2019-06-30 00:39:18 666

原创 Leetcode刷题--Week 5

前言本周刷题未链表排序相关知识点题目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 example,Given{1...

2019-06-01 12:47:25 206

转载 为什么ConcurrentHashMap不需要加锁?

我们知道,ConcurrentHashmap(1.8)这个并发集合框架是线程安全的,当你看到源码的get操作时,会发现get操作全程是没有加任何锁的,这也是这篇博文讨论的问题——为什么它不需要加锁呢?ConcurrentHashMap的简介我想有基础的同学知道在jdk1.7中是采用Segment + HashEntry + ReentrantLock的方式进行实现的,而1.8中放弃了Seg...

2019-05-27 22:37:39 793

转载 Java动态追踪技术探究

来源:美团技术团队 作者:高杨引子在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:“Debug一下吧。”“线上机器,没开Debug端口。”“看日志,看看请求值和返回值分别是什么?”“那段代码没打印日志。”“改代码,加日志,重新发布一次。”“怀疑是线程池的问题,重启会破坏现场。”长达几十秒的沉默之后:“据说,排查问题...

2019-05-27 22:30:04 357

转载 10个重要的Linux ps命令实战

Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps。这个工具能在命令行中使用。PS 命令是什么查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态。如果你想不断更新查看的这个状态,可以使用top命令。ps命令支持三种使用的语法格式UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符BSD 风格,选项可...

2019-05-20 13:11:51 419

转载 Apache Kylin 深入Cube和查询优化

前言近几年,Apache Kylin作为一个高速的开源分布式大数据查询引擎正在迅速崛起。它充分发挥Hadoop、Spark、HBase等技术的优势,通过对超大规模数据集进行预计算,实现秒级甚至亚秒级的查询响应时间,同时提供标准SQL接口。目前,Apache Kylin已在全球范围得到了广泛应用,如百度、美团、今日头条、eBay等,支撑着单个业务上万亿规模的数据查询业务。在超高性能的背后,Cube...

2019-05-11 21:04:09 358

转载 Apache Kylin优化之—Cube的高级设置

本文从apachekylin公众号系列文章整理。随着维度数目的增加,Cuboid 的数量会爆炸式地增长。为了缓解 Cube 的构建压力,Apache Kylin 引入了一系列的高级设置,帮助用户筛选出真正需要的 Cuboid。这些高级设置包括聚合组(Aggregation Group)、联合维度(Joint Dimension)、层级维度(Hierachy Dimension)和必要维度(Ma...

2019-05-11 20:49:49 245

转载 Apache Kylin原理学习之Cube构建

Apache Kylin原理简介Apache Kylin是一个开源的、基于Hadoop生态系统的OLAP查询引擎,能够通过SQL接口对十亿、甚至百亿行的超大数据集实现秒级的多维分析查询。Kylin通过预计算实现超大数据集的秒级多维分析查询。对于超大数据集的复杂查询,既然现场计算需要花费较长时间,那么根据空间换时间的原理,我们就可以提前将所有可能的计算结果计算并存储下来,从而实现超大数据集的秒级...

2019-05-11 20:37:25 403

转载 Spring Bean 初始化之InitializingBean, init-method 和 PostConstruct

概述从接口的名字上不难发现,InitializingBean 的作用就是在 bean 初始化后执行定制化的操作。Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,常用的设定方式有以下三种:通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法;通...

2019-05-11 14:07:25 800

原创 Leetcode刷题--Week4

二叉树前序遍历题目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: Recursive solution is trivial, could you do it iterati...

2019-05-05 19:55:52 149

原创 Leetcode刷题--Week 3

链表插入排序题目Sort a linked list using insertion sort.解题思路一个指针指从原始列表头部开始逐步往后移指向插入元素;一个指针从头遍历已排序链表,找到插入节点,将元素插入:代码 if (head == null || head.next == null){ return head; } ListNode first = new ...

2019-04-21 12:14:04 161

原创 Java实现QPS、吞吐率限制

滚动阅读全文业务场景在一个项目中需要频繁调用一个第三API接口来实现业务功能,但是这个第三方接口有QPS和吞吐率的限制,如果超过限制将请求失败;故我们需要在我们的业务功能中加上吞吐率(吞吐率 < QPS)的限制, 当达到限制时让当前的请求等待到下一个可执行时间段执行。吞吐率实现吞吐率的限制是当前时段内(1S内)最多能处理的任务数量,超过限制必须等待;这个有点类似生产者-消费者模式...

2019-04-14 09:42:22 5098

原创 Leetcode刷题--Week2

滚动阅读全文前言本周刷了两道LeetCode,穷举和链表排序1、穷举题目:Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.解题思路:遍历所有的点,利用两个构成一条直线,然后在遍历其余的点,判断是否在该直线上,记下在该直线上的所有点的...

2019-04-08 21:29:08 136

原创 Greenplum集群部署总结

前言Greenplum是一种基于PostgreSQL数据库开发的大规模并行计算(MPP)数据库服务器,其架构特别针对管理大规模分析型数据仓库以及商业智能工作负载而设计。网上关于Greenplum集群安装部署的教程很多,数据库的编译安装可以参照gp的Github官网教程, 系统的前期配置和完整教程可参考教程,该教程成功率较高。由于Greenplum的版本不断在更新,按照原来众多博主写的教程安装还...

2019-03-23 16:26:17 1834 1

原创 Leetcode刷题--Week 1

滚动阅读全文前言眼瞅今年暑假就要开始找工作了,正好借助Leetcode刷题复习一下相关算法,随便为找工作做些准备。接下来每周至少回顾一个算法同时刷一道题,每周打卡。本周刷题树题目:Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortes...

2019-03-23 16:25:04 184

原创 Spring Boot——读取属性文件的多种方法

前言在程序开发中,为了减少程序中的“硬编码”,我们通常会将一些信息放在属性文件中,再读取到程序中。Spring 提供了多种便利的方法帮助我们从属性文件中读取数据。一、属性文件加载程序默认加载application.yml(或application.properties)属性文件。如需要加载其它属性文件使用@PropertySource注解:例如: 加载user.properties文件@...

2018-11-03 20:03:08 573

原创 Spring Boot——通过profile配置不通过环境下的属性

前言在应用开发过程中,不同开发环境中,应用的配置各不相同,比如开发环境、测试环境和生产环境中的数据库连接等信息。当我们使用单个配置文件配置不同环境中的参数时,需要频繁的改变配置文件较为麻烦。在Spring中我们可以给不同环境配置不同配置文件,运行时只需配置profile参数便可切换配置文件一、不同环境配置文件可以将一些固定不变的配置信息设置在该文件中,例如:mybatis的相关信息。其他根据...

2018-11-03 00:28:02 336

原创 Spring Cloud学习笔记(一):Spring Cloud Config

前言将应用程序的配置信息直接写入代码通常是有问题的,因为每次对配置进行更改时,应用程序都必须重新编译和重新部署。为了避免这种情况,开发人员会将配置信息与应用程序代码完全分离。现已有许多优秀的开源的配置管理解决方案,如Etcd,Consul,ZooKeeper等。Spring Cloud Config提供不同后端支持的通用配置管理解决方案。它可以将Git、Eureka和Consul作为后端进行整...

2018-09-09 19:29:28 361

原创 AirFlow调度执行Talend ETL任务

AirFlow调度平台简介airflow 是一个编排、调度和监控工作流的平台,由Airbnb开源,现在在Apache Software Foundation 孵化。airflow将工作流编排为tasks组成的有向无环图(DAGs),调度器在一组workers上按照指定的依赖关系执行tasks。同时,airflow提供了丰富的命令行工具和简单易用的用户界面以便用户查看和操作,并且airflow提...

2018-07-29 01:01:59 3863

原创 TPC-H工具使用:生成数据及存储至数据库中

本篇博客主要记录在Linux环境下TPCH工具生成数据集并导入PostgreSQL数据库中全过程

2017-10-21 21:40:45 7887

原创 java后端受管bean数据转化为JSON格式传到前端javaScript中

java后端受管bean数据转化为JSON格式传到前端javaScript中使用的方法: 后端代码:package beans;import javax.inject.Named;import javax.enterprise.context.RequestScoped;import org.primefaces.json.JSONException;import org.primeface

2016-06-03 00:41:02 1702

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除