自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Felix_阳的博客

让学习变成一种习惯

原创 Spring AOP 详解

1. 简介 面向对象编程,也称为OOP(即Object Oriented Programming)最大的优点在于能够将业务模块进行封装,从而达到功能复用的目的。通过面向对象编程,不同的模板可以相互组装,从而实现更为复杂的业务模块,其结构形式可用下图表示: 面向对象编程解决了业务模块的封装复...

2020-06-15 14:04:55 36 0

原创 JDK1.8并发之synchronized和Lock

什么是线程安全? 线程安全是指保证多线程环境下共享的、可修改的状态的正确性。 保证线程安全的两个办法: 封装:将对象的内部状态隐藏、保护起来。 不可变:final变量产生了某种程度地不可变(immutable)效果,可以用于保护只读数据。 线程安全需要保证几个基本特性: 原子性:...

2020-05-21 23:32:27 47 0

原创 Java线程池核心知识详解

  本文所说的“核心线程”、“非核心线程”是一个虚拟的概念,是为了方便描述而虚拟出来的概念,在代码中并没有哪个线程被标记为“核心线程”或“非核心线程”,所有线程都是一样的,只是当线程池中的线程多于指定的核心线程数量时,会将多出来的线程销毁掉,池中只保留指定个数的线程。那些被销毁的线程是随机的,可能...

2020-01-06 19:54:20 77 0

原创 Elasticsearch7 mapping和setting简介

一、介绍: 一句话概述: es是基于lucene分片(shard)存储的近实时的分布式搜索引擎。 名词解释: Lucene:使用java语言编写的存储与查询框架,通过组织文档与文本关系信息进行倒排索引,内部形成多个segment段进行存储,是es的核心组件,但不具备分布式能力。 segmen...

2019-12-02 11:04:05 943 0

原创 SpringBoot整合log4j2详细教程

首先,认识一下三胞胎 log4j是apache实现的一个开源日志组件 logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架,是slf4j的原生实现 Log4j2是log4j 1.x和logback的改进版,据说采用了一些新技术(无锁异步、等等),...

2019-10-28 16:50:46 353 0

原创 java自定义线程池详细使用说明

前言 线程池想必大家也都用过,JDK的Executors 也自带一些线程池。但是不知道大家有没有想过,如何才是最优雅的方式去使用过线程池吗? 生产环境要怎么去配置自己的线程池才是合理的呢? 今天周末,刚好有时间来总结一下自己所认为的'优雅', 如有问题欢迎大家指正。 线程池...

2019-10-25 15:27:07 123 0

原创 log4j2日志配置说明

在项目推进中,如果说第一件事是搭Spring框架的话,那么第二件事情就是在Sring基础上搭建日志框架,我想很多人都知道日志对于一个项目的重要性,尤其是线上Web项目,因为日志可能是我们了解应用如何执行的唯一方式。在18年大环境下,更多的企业使用Springboot和Springcloud来搭建他...

2019-10-24 20:58:17 137 0

原创 EnumSet基本用法

EnumSet基本用法 enum Season { SPRING, SUMMER, FALL, WINTER } public class EnumSetTest { public static void main(String[] args) { //创...

2019-10-17 12:07:49 214 0

原创 Java8 map合并新姿势

1. 介绍 本入门教程将介绍Java8中如何合并两个map。 更具体说来,我们将研究不同的合并方案,包括Map含有重复元素的情况。 2. 初始化 我们定义两个map实例 private static Map<String, Employee> map1 = new...

2019-09-20 11:43:23 113 0

原创 RunTime.getRunTime().addShutdownHook优雅关闭线程池

有时候我们用到的程序不一定总是在JVM里面驻守,可能调用完就不用了,释放资源. RunTime.getRunTime().addShutdownHook的作用就是在JVM销毁前执行的一个线程.当然这个线程依然要自己写. 利用这个性质,如果我们之前定义了一系列的线程池供程序本身使用,那么就可以在...

2019-09-16 18:50:24 63 0

原创 Java 程序员常用资源工具集合(建议收藏)

搜索资源网站 学习技术过程我们经常需要使用搜索引擎来检索资料,国内常用的也就是某度了。 当然有条件的话,搜索引擎首先还是推荐使用 Google,如果没办法使用,可以使用以下几个作为备用: Bing Bing 国际版:https://cn.bing.com/ 比某度好用,之前还被停用了几天...

2019-09-10 16:15:18 66 0

原创 Hbase java API详解

一、 几个主要 Hbase API 类和数据模型之间的对应关系: 1、 HBaseAdmin关系: org.apache.hadoop.hbase.client.HBaseAdmin作用:提供了一个接口来管理 HBase 数据库的表信息。它提供的方法包括:创建表,删除表,列出表项,使表有效...

2019-08-31 12:23:50 210 0

原创 揭秘阿里百亿级云客服实时分析架构演进之路

淘宝、天猫每天有上亿个不同的买卖家进行对话,产生百亿条聊天记录。对客服聊天记录的实时分析是实现智能客服的基础。本文主要分享云客服的整体架构,包括实时分析的场景、架构、技术难点,以及为何要从 NoSQL 迁移时序数据库和使用心得。 网购催生客服职能转型 如下图,是国内客服体系发展历程。 国...

2019-08-28 10:15:27 151 0

原创 Kafka数据到Hdfs

找时间总结整理了下数据从Kafka到Hdfs的一些pipeline,如下 1> Kafka -> Flume –> Hadoop Hdfs 常用方案,基于配置,需要注意hdfs小文件性能等问题. GitHub地址:https://github.com/apache/flum...

2019-08-23 11:03:55 339 0

原创 hive读取Hbase的数据

1、文档(不会的直接找文档最方便) HBaseIntegration 2、拷贝jar文件 2.1 将Hbase/bin目录下面文件拷贝到Hive/bin目录下 cd /home/hbase/lib cp ./* /home/hive/lib 2.2把Hive的...

2019-08-22 20:10:14 334 0

原创 Hive学习实例

正文 一、求单月访问次数和总访问次数 1、数据说明 数据字段说明 用户名,月份,访问次数 数据格式 A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,8 B,2015-01,25 A,2015-01,5 A,2015-02,4 A...

2019-08-20 17:06:15 98 0

原创 mysql视图和临时表的区别

视图 视图是由从数据库的基本表中选出来的数据组成的逻辑窗口,它与基本表不同的是,视图是一个虚表。数据库中只存放视图的定义,而不存放视图包含的数据,这些数据仍存放在原来的基表中。所以基表中的数据如果发生改变,从视图中查询出的数据也随之改变。 视图是一个虚表,他是通过执行SQL查询所产生的。视图以...

2019-08-20 14:35:58 88 0

原创 Elasticsearch:跨集群数据迁移之离线迁移

跨集群数据迁移 用户在腾讯云上自建的ES集群或者在其它云厂商购买的ES集群,如果要迁移至腾讯云ES,用户可以根据自己的业务需要选择适合自己的迁移方案。如果业务可以停服或者可以暂停写操作,可以参考离线迁移的四种方案。 离线迁移 离线迁移需要先停止老集群的写操作,将数据迁移完毕后在新集群上进行读...

2019-08-13 10:48:27 499 0

转载 HashMap哈希算法引出的求余%和与运算&转换问题

1、引出问题   在前面讲解HashMap 的源码实现时,有如下几点:   ①、初始容量为 1<<4,也就是24 = 16      ②、负载因子是0.75,当存入HashMap的元素占比超过整个容量的75%时,进行扩容,而且在不超过int类型的范围时,进行2次幂的扩展(指长度...

2019-08-06 10:34:36 148 0

原创 Mqtt Qos 深度解读

1.QoS含义 : Quality of Service,服务质量 2.作用域 发布者的Qos 订阅者的Qos 3.等级与作用 level 0:最多一次的传输 level 1:至少一次的传输,(鸡肋) level 2: 只有一次的传输 4.交互过程 qos0 对于qos1而言,对于...

2019-08-05 18:19:39 422 0

原创 TCP协议状态转换详解

、三次握手和四次挥手 1、建立连接(三次握手) (1)服务器会处于listen状态,客户端发送一个带SYN标志的TCP报文到服务器。 (2)服务器端回应客户端的请求,这是三次握手中的第2个报文,这个报文同时带SYN标志和ACK标志。 因此它表示对刚才客户端SYN报文的回应...

2019-08-05 15:46:39 951 1

原创 Flink并行度与slot之间的关系

简介 Flink运行时主要角色有两个:JobManager和TaskManager,无论是standalone集群,flink on yarn都是要启动这两个角色。JobManager主要是负责接受客户端的job,调度job,协调checkpoint等。TaskManager执行具体的T...

2019-08-05 12:17:40 1619 0

原创 ReenTrantLock详解

首先介绍下各个参数的含义; Node节点的参数含义: 关于SIGNAL、CANCELLED、CONDITION、PROPAGATE四个状态,JDK源码的注释中同样有了详细的解读,再用一张表格总结一下: 接下来查看源码,以下所有备注都写在代码中,主要本人也没写过什么博客,文字功底比...

2019-08-05 10:03:04 60 0

原创 SkipList算法原理分析

为什么选择跳表 目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树 出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树, 还要参考网上的...

2019-08-01 16:58:53 118 0

原创 CompletableFuture的使用

总的来说,就是 解决future模式的缺点。主要是 a. 为了解决Future虽然可以实现异步获取线程的执行结果,但是future没有提供通知机制,调用方无法得知future什么时候执行完的问题。 b.要么使用阻塞, 在future.get()的地方等待future返回结果,这时会变成同步操...

2019-07-31 19:02:02 137 0

原创 TCP的状态转换及生产问题实操

前文本号介绍了TCP协议主要的流程,包括建立连接、传输数据和断开连接。如果大家认真阅读了附图,应该可以看到在各个流程中套接字的状态是在不断变化的,不同的状态标识了套集字所处的阶段。 如图1是TCP一个完整的状态转换图,图中包含了套接字的所有状态,以及发生状态转变的触发条件。可能会有人问,了解这些...

2019-07-27 17:05:14 75 0

原创 Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore    在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法...

2019-07-27 16:48:08 70 0

原创 Flink state,checkpoint详解

目录 目录 背景 (1)介绍,实现方式分类 (2) 使用Manage State,Flink自动实现state保存和恢复 (3) 自定义state 自行实现实现checkpoint接口 借鉴文章 背景 Flink相对于Storm和Spark Stream比较大的一个优势就是...

2019-07-22 14:55:31 791 0

原创 通过jstack与jmap分析一次线上故障

一、发现问题 下面是线上机器的cpu使用率,可以看到从4月8日开始,随着时间cpu使用率在逐步增高,最终使用率达到100%导致线上服务不可用,后面重启了机器后恢复。 二、排查思路 简单分析下可能出问题的地方,分为5个方向: 1.系统本身代码问题 2.内部下游系统的问题导致的雪崩效应...

2019-07-11 15:59:13 217 0

原创 OpenTsdb官方文档----查询过滤器

任何数据库系统的关键功能是使用某种形式的过滤来获取完整数据集的子集。OpenTsdb从版本1.x开始提供了过滤功能,并从2.2开始具有了扩展功能。过滤器目前在标签值上运行,这意味着在拉取数据时,任意指标和标签Key都必须按照与数据库中完全相同的出现方式来进行指定。 示例数据   由于每个过滤器...

2019-07-04 17:37:24 358 0

原创 java.io.IOException: Too many open files

今天后台服务器(Linux) 在转音源的时候 报java.io.IOException: Too many open files 在网上查了一些资料 记录如下: 打开的文件过多,一般来说是由于应用程序对资源使用不当造成,比如没有及时关闭Socket或数据库连接等。但也可能应用确实需要打开比较多的文...

2019-07-04 10:18:00 774 0

原创 jdk8以上G1垃圾回收器的配置参数

# 最大堆大小 -Xmx2048m # 初始堆大小        -Xms2048m # 年轻代大小          -Xmn1024m #每个线程栈大小,JDK5.0以后每个线程堆栈大小为1M。 -Xss512k # Eden区与Survivor区的大小比值,设置为8...

2019-07-01 11:09:21 2639 0

原创 Java8 Stream 分组求和使用笔记

话不多说,直接贴代码,分组使用 class Foo { private int code; private int count; public Foo(int code, int count) { this.code = code; this.count = count; } ...

2019-06-29 19:08:14 891 0

原创 数据库为什么要用B+树结构--MySQL索引结构的实现

B+树在数据库中的应用 { 为什么使用B+树?言简意赅,就是因为: 1.文件很大,不可能全部存储在内存中,故要存储到磁盘上 2.索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数(为什么使用B-/+Tree,还跟磁盘存取原理有关。) 3.局部性原理与磁盘预读,预读的长度一般为页(pa...

2019-06-24 20:43:02 122 0

原创 Java lock与Synchronizer的区别

引言: 昨天在学习别人分享的面试经验时,看到Lock的使用。想起自己在上次面试也遇到了synchronized与Lock的区别与使用。于是,我整理了两者的区别和使用情况,同时,对synchronized的使用过程一些常见问题的总结,最后是参照源码和说明文档,对Lock的使用写了几个简单的Demo...

2019-06-22 22:03:01 153 0

原创 Flink中CheckPoint详细

 Flink提供了Exactly once特性,是依赖于带有barrier的分布式快照+可部分重发的数据源功能实现的。而分布式快照中,就保存了operator的状态信息。   Flink的失败恢复依赖于检查点机制+可部分重发的数据源。   检查点机制机制:checkpoint定期触发,产生快照,...

2019-06-21 09:13:33 2353 2

原创 红黑树详解-java实现

1.定义 红黑树是特殊的二叉查找树,又名R-B树(RED-BLACK-TREE),由于红黑树是特殊的二叉查找树,即红黑树具有了二叉查找树的特性,而且红黑树还具有以下特性: 1.每个节点要么是黑色要么是红色 2.根节点是黑色 3.每个叶子节点是黑色,并且为空节点(还有另外...

2019-06-17 17:32:41 238 0

原创 ET讲解

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。   E...

2019-06-12 10:39:15 169 0

原创 springboot之事件监听机制

一、观察者模式 1.涉及到的类 public interface Observer { /* 观察者必须要实现这个接口,其实就相当于,A实现了这个接口,B发生改变的时候,顺便调用一下A的update方法。 */ void update(Observable o, Object arg...

2019-06-05 09:25:23 353 0

原创 es多条件查询之must用法(Java实现)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

2019-06-04 10:31:55 2920 2

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