自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hxcaifly的博客

提高学习效率的最好方式是慢下来。

  • 博客(178)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Web开发】:HTTP响应状态码总结

直接看枚举类代码: public static final HttpResponseStatus CONTINUE = newStatus(100, "Continue"); public static final HttpResponseStatus SWITCHING_PROTOCOLS = newStatus(101, "Switching Protocols"); ...

2019-04-24 23:24:58 201

转载 【存储】:《Column-Stores vs. Row-Stores》读后感

文章的全称应该是《Column-Stores vs. Row-Stores: How Different Are They Really?》读后感, 但是知乎控制了标题的长度,所以缩短了一下。概述从论文的标题可以看出这篇论文不是陈述一种新的技术、架构,而更偏议论文一点,它主要的目的在于搞清楚对于分析类的查询为什么Column-Store比Row-Store好那么多?好在哪里?一般认为原因...

2019-04-24 11:41:50 454

转载 【生活杂记】:价值观越好的员工业绩越好,为什么?

文章目录引言1. 业务背后的隐性曲线2. 为了生存,业务要迭代,文化也要3. 阿里的文化是如何迭代的4. CEO其实是首席教育官引言你们知道培养什么是最贵的吗?人才——需要大量财力、物力、时间,需要极大的耐心去静等花开。但是绝大部分企业是不会这么做的,他们只知道挖挖挖,但是挖来的人能长到你的土里去吗?外界都在学阿里等大公司,但是阿里、华为、腾讯的组织文化和管理不是你照搬过去就灵验了的,对于创...

2019-04-24 10:35:40 407

原创 【数据库】:一条SQL语句执行得很慢的原因有哪些?

引言说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。1、大多数情况是正常的,只是偶尔会出现很慢的情况。2、在数据量不变的情况下,这条S...

2019-04-22 20:01:46 357

原创 【Leetcode】:LRU缓存机制引发的思考

文章目录1. 引言2. 解决方案分析3. 简单的实现方式3.优化的方案4. LinkedHashMap数据结构的说明1. 引言题目:[LeetCode]146.LRU缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密...

2019-04-15 14:07:28 135

原创 【Java多线程编程】:还在使用 SimpleDateFormat?你的项目崩没?

文章目录引言1. 问题场景复现2. 多线程不安全原因3. 解决方案4. 基于JDK1.8的DateTimeFormatter5. 总结引言日常开发中,我们经常需要使用时间相关类,说到时间相关类,想必大家对SimpleDateFormat并不陌生。主要是用它进行时间的格式化输出和解析,挺方便快捷的,但是SimpleDateFormat并不是一个线程安全的类。在多线程情况下,会出现异常,想必有经验...

2019-04-11 16:59:22 138

转载 【生活杂记】:《29岁年薪百万,晋升阿里最年轻P8之一,我想分享8点成长经验》原文分享

文章目录引言1. 保持好奇心,培养主动学习的意识和习惯2. 如果环境不能给你帮助,那就靠自己去冲3. 凡事都多走一步,不断超越预期4. 每个人是最好的,团队就是最好的5. 不是 leader,必须 work as a leader6. 心力第一,体力第二,脑力第三7. 团队利益的大局观,让别人站 C 位8. 多反思自己的问题,不要老想着跳槽读完心得引用原文:https://maimai.cn/...

2019-04-11 14:46:53 260 1

原创 【微服务】:史上最简单的 Spring Cloud 教程

推荐阅读专栏: https://blog.csdn.net/forezp/column/info/15197

2019-04-10 16:15:29 93

转载 【微服务】:Java 微服务框架选型(Dubbo 和 Spring Cloud)

文章目录引言1. 关于 RPC/gRPC/HTTP/REST2. Dubbo2.1. Dubbo 框架2.2. Dubbo 集群容错2.3. Dubbo 特点2.4. Dubbo 发展历程3. Spring Cloud3.1. Spring Cloud 完整技术3.2. Spring Cloud 组件架构3.3. Spring Cloud工具框架4. Dubbo的优缺点5. Spring Clou...

2019-04-03 14:23:20 399

原创 Intellij IDE报错:[Information:java:javacTask:源发行版8需要目标发行版1.8]

这个错误我不止遇到一次<

2019-04-02 10:22:43 413

原创 【Flink原理和应用】:Blink做了哪些改进

1. Runtime引入了可插拔的Shuffle策略。自定义调度器,开发者根据计算模型自身的特点定制不同调度器。Blink可以更加灵活地将算子chain在一起,避免不必要的数据传输。引入全新的JM FailOver机制,JM 发生错误之后,新的 JM 会重新接管整个 JOB 而不是重启 JOB,从而大大减少了 JM FailOver 对 JOB 的影响。2. SQL/TableAPI...

2019-04-01 17:34:50 987

原创 【微服务】:微服务简介

引言通常而言,微服务架构是一种架构模式或者说一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的进程中,服务之间互相协调、互相配合,为用户提供最终的价值。服务之间采用轻量级的通信机制(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服...

2019-03-28 16:47:15 174

转载 【Spark】:Spark性能优化指南——高级篇

文章目录1. 数据倾斜调优1.1. 数据倾斜发生时的现象1.2. 数据倾斜发生的原理1.3. 如何定位导致数据倾斜的代码某个task执行特别慢的情况某个task莫名其妙内存溢出的情况查看导致数据倾斜的key的数据分布情况1.4. 数据倾斜的解决方案解决方案一:使用Hive ETL预处理数据解决方案二:过滤少数导致倾斜的key解决方案三:提高shuffle操作的并行度解决方案四:两阶段聚合(局部聚合...

2019-03-27 10:42:52 285

转载 【Spark系列】:Spark性能优化指南——基础篇

文章目录1. 引言2. 开发调优原则一:避免创建重复的RDD原则二:尽可能复用同一个RDD原则三:对多次使用的RDD进行持久化原则四:尽量避免使用shuffle类算子原则五:使用map-side预聚合的shuffle操作原则六:使用高性能的算子原则七:广播大变量原则八:使用Kryo优化序列化性能原则九:优化数据结构3. 资源调优1. 引言在大数据计算领域,Spark已经成为了越来越流行、越来越...

2019-03-27 09:56:04 113

转载 【JVM第十五篇】: 从实际案例聊聊Java应用的GC优化

文章目录引言1. 优化前的准备1.1. GC优化需知1.2. JVM基础回顾1.3. 参数基本策略2. 优化步骤2.1. 确定目标2.2. 优化2.3. 验收优化结果3. GC优化案例3.1. 案例一 Major GC和Minor GC频繁3.2. 案例二 请求高峰期发生GC,导致服务可用性下降3.3. 案例三 发生Stop-The-World的GC4. 总结引言当Java程序性能达不到既定目...

2019-03-23 17:07:42 160

转载 【计算机基础】:磁盘I/O那些事

引言计算机硬件性能在过去十年间的发展普遍遵循摩尔定律,通用计算机的CPU主频早已超过3GHz,内存也进入了普及DDR4的时代。然而传统硬盘虽然在存储容量上增长迅速,但是在读写性能上并无明显提升,同时SSD硬盘价格高昂,不能在短时间内完全替代传统硬盘。传统磁盘的I/O读写速度成为了计算机系统性能提高的瓶颈,制约了计算机整体性能的发展。硬盘内部主要部件为磁盘盘片、传动手臂、读写磁头和主轴马达。实际...

2019-03-22 17:59:49 435

转载 【Flink原理和应用】:Flink的调度模式

原文:http://www.liaojiayi.com/Flink-Schedule-Mode/Apache Flink内部提供了两种调度模式,分别为:/** Schedule tasks lazy from the sources. Downstream tasks start once their input data are ready */LAZY_FROM_SOURCES,...

2019-03-21 12:04:05 1102

原创 【ElasticSearch】:时间序列数据库的秘密

1. 如何快速检索?Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特别是它对多条件的过滤支持非常好,比如年龄在 18 和 30 之间,性别为女性这样的组合查询。倒排索引很多地方都有介绍,但是其比关系型数据库的 b-tree 索引快在哪里?到底为什么快呢?笼统的来说,b-tree 索引是为写入优化的索引结构。当我们不需要支持快速的更新的时候,可以用...

2019-03-20 17:36:48 763

转载 【Java设计模式】:行为型模式—责任链模式

文章目录1. 责任链模式定义2. 具体实例3. 责任链模式的好处1. 责任链模式定义责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。Tomcat中的Filter...

2019-03-20 10:10:40 67

翻译 【Flink原理和应用】:Calcite应用指南

文章目录1.引言2. 教程3. 下载和编译4. 首次查询5. Schema发现6. schemas中的表和视图7. 自定义表8. models里的注释9. 使用计划器规则优化查询10. 查询优化过程11. JDBC适配器12. JDBC适配器的克隆翻译原文:http://calcite.apache.org/docs/tutorial.html1.引言Calcite作为一个强大的SQL...

2019-03-19 16:53:02 750

原创 【Java设计模式】:行为型模式—命令模式

文章目录1. 命令模式(Command)的定义2. 命令模式(Command)的适用性3. 命令模式(Command)的参与者4. 命令模式(Command)的UML类图5. 具体的代码实现6. 总结1. 命令模式(Command)的定义将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作,将”发出请求的对象”和”接收与执行这些请求的对象”分...

2019-03-19 11:03:09 56

转载 【Java设计模式】行为型模式—解释器模式

文章目录1. 解释器模式的定义2. 解释模式的结构3. 示例代码1. 解释器模式的定义给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语句中的句子。2. 解释模式的结构下面就以一个示意性的系统为例,讨论解释器模式的结构。系统的结构图如下所示:抽象表达式角色(Expression):声明一个所有的具体表达式角色都需要实现的...

2019-03-17 21:45:13 58

转载 【Java设计模式】:行为型模式—迭代器模式

文章目录1. 迭代器模式定义2. 迭代器模式的角色构成3. 迭代器模式应用的场景及意义4. 迭代器模式的优缺点1. 迭代器模式定义迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。迭代器模式不复杂,也比较常见,我们平时用的Java集合类对象其实内部已经实现了迭代器模式,比如ArrayList。2. 迭代器模式的角色构成(1)迭代器角...

2019-03-15 09:32:52 54

转载 【Java设计模式】:行为型模式—中介者模式

文章目录1. 中介者模式(Mediator pattern)定义2. 中介者的作用3. 中介者模式的结构4. 代码演示5. 中介者模式的优缺点:1. 中介者模式(Mediator pattern)定义使用中介者模式来集中相关对象之间复杂的沟通和控制方式,使得这些对象不必相互明显引用。从而使它们可以较松散地耦合。当这些对象中的某些对象之间的相互作用发生改变时,不会立即影响到其他的一些对象之间的相...

2019-03-14 10:19:38 110

转载 【数据库】:为什么MySQL数据库索引选择使用B+树

文章目录引言1. 二叉查找树1.1. 二叉树简介1.2. 局限性及应用2. AVL树2.1. AVL树简介2.2. 局限性2.3. 应用3. 红黑树3.1. 红黑树简介3.2. 性质3.3. 应用4. B/B+树4.1. B+树简介4.2. B树的性质5. B+树5.1. B+树简介5.2. B+树的性质(下面提到的都是和B树不相同的性质)5.3. 应用6. B/B+树性能分析7. 为什么说B+树...

2019-03-12 10:23:42 207

转载 【SpringBoot】: 注解(@Repository、@Service、@Controller 和 @Component)

文章目录前言1. @Component2. @Controller3. @ Service4. @ Repository前言Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类...

2019-03-11 15:41:33 1074

原创 【Java并发编程实战】:Java中的读写锁及其实现分析

文章目录1. 前言2. 读写锁的接口与示例3. 读写锁的实现分析3.1. 读写状态的设计3.2. 写锁的获取与释放3.3. 读锁的获取与释放3.4. 锁降级1. 前言在Java并发包中常用的锁(如:ReentrantLock),基本上都是排他锁,这些锁在同一时刻只允许一个线程进行访问,而读写锁在同一时 刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。读写锁维护了...

2019-03-10 23:34:08 319

原创 《Java并发编程实战》读书总结:synchronized和ReentrantLock之间怎么选择

ReentrantLock在加锁和内存上提供的语义与内置锁synchronized相同,此外它还提供了一些其他功能,比如定时的锁等待,可中断的锁等待,公平性,以及实现非块结构的加锁。ReentrantLock在性能上似乎优于内置锁,其中在Java6中略有胜出,而在Java5.0则是远远胜出。那么为什么不直接弃用synchronized,并在所有的并发代码中都是用ReentrantLock?与显...

2019-03-10 16:16:28 126 2

原创 【Flink原理和应用】:Flink内部通信组件Netty和Akka的区别

1. 引言Flink内部节点之间的通信是用Akka,比如JobManager和TaskManager之间的通信。而operator之间的数据传输是利用Netty。Spark用Netty通信框架代替Akka,是不是Akka不好?其实他们各有优缺点。2. 简单比较Akka:它是基于协程的,性能不容置疑;基于scala的偏函数,易用性也没有话说,但是它毕竟只是RPC通信。Netty:相比更加基...

2019-03-09 13:59:06 2176

转载 Twitter的分布式自增ID算法snowflake

1. 引言分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移到Cassandra,因为Cassandra没...

2019-03-09 10:51:57 48

翻译 【Flink原理和应用】:Flink 端到端(end-to-end)Exactly-Once特性

原文链接:https://flink.apache.org/features/2018/03/01/end-to-end-exactly-once-apache-flink.html1. Flink程序的Exactly-Once语义当我们在讨论Exactly-Once语义的时候,我们指的是每一个到来的事件仅会影响最终结果一次。就算机器宕机或者软件崩溃,即没有数据重复,也没有数据丢失。F...

2019-03-08 10:27:53 822

转载 Leaf:美团分布式ID生成服务开源

文章目录引言1. Leaf特性2. Leaf诞生3. Leaf双Buffer优化4. Leaf动态调整Step5. MySQL高可用6. Leaf Snowflake7. 未来规划8. 关于开源引言Leaf是美团基础研发平台推出的一个分布式ID生成服务,名字取自德国哲学家、数学家莱布尼茨的一句话“There are no two identical leaves in the world”。L...

2019-03-07 22:01:29 617

转载 【数据库】:分布式锁的实现方式

文章目录1. 分布式锁的几种实现方式2. 基于数据库实现分布式锁2.1. 基于数据库表2.2. 基于数据库排他锁2.3. 总结3. 基于缓存实现分布式锁总结4. 基于Zookeeper实现分布式锁总结三种方案的比较1. 分布式锁的几种实现方式目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时...

2019-03-07 19:48:56 172

转载 【Hadoop】: HDFS的读写流程

文章目录1. 拓扑距离2.副本存放3. HDFS中的block、packet、chunk4. HDFS写流程5. HDFS读流程6. 读写过程,数据完整性如何保持?1. 拓扑距离这里简单讲下hadoop的网络拓扑距离的计算。在大数量的情景中,带宽是稀缺资源,如何充分利用带宽,完美的计算代价开销以及限制因素都太多。hadoop给出了这样的解决方案:计算两个节点间的间距,采用最近距离的节点进...

2019-03-06 16:16:56 127

原创 【任务调度系统第四篇】:Quartz的原理

1. 引言XXL Job和azkaban的任务调度功能其实都是基于quartz来开发的,并且Spring也集成了Quartz模块。 所以如果想深入了解调度原理,那其实有必要先对Quartz做一番了解。参考:https://www.cnblogs.com/Dorae/p/9357180.html...

2019-03-05 15:15:59 2387 1

原创 【Spring】:事务管理

文章目录1. 事务介绍2. 事务的四个特性(ACID)3. Spring 事务管理的核心接口4. PlatformTransactionManager 事务管理器5. TransactionStatus 事务状态6. TransactionDefinition 基本事务属性的定义7. Spring 编程式事务和声明式事务的区别8.不用事务实现转账9.编程式事务处理实现转账(TransactionT...

2019-03-04 10:40:17 183

转载 【Java基础】:volatile实现可见性的原理

1. 引言在java并发编程中,一定绕不开volatile、synchronized和lock几个关键字,其中volatile关键字是用来解决共享变量(类成员变量、类的静态成员变量等)的可见性问题的,非共享变量(方法的局部变量)是分配在JVM虚拟机的栈中,是线程私有的,不涉及可见性问题。那么什么是可见性?参考:https://blog.csdn.net/nch_ren/article/de...

2019-03-04 09:19:02 1022

转载 【Java设计模式】:行为型模式—备忘录模式

1. 场景当我们使用文本编译器记录一些内容时,发现这一步写错了,往往可以使用Ctrl+Z的方式会退到上一个状态,其中运用到的知识就是备忘录模式。2. 定义备忘录模式,即保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先的状态。3. 模式结构发起者角色(Originator):负责创建一个备忘录用以记录当前时刻它的内部状态,并可以使用备忘录恢复内部状态。备忘录角色(Memen...

2019-03-02 16:08:45 74

转载 【Flink SQL引擎】:Calcite 功能简析及在 Flink 的应用

1. Calcite 是什么?Apache Calcite 是一个动态数据的管理框架,可以用来构建数据库系统的语法解析模块不包含数据存储、数据处理等功能可以通过编写 Adaptor 来扩展功能,以支持不同的数据处理平台Flink SQL 使用并对其扩展以支持 SQL 语句的解析和验证2. Calcite 谁在用?下图是一张官方提供的生态系统图,可以看到大名鼎鼎的 H...

2019-02-28 10:39:19 2084

转载 【Spring】: JDK和CGLIB动态代理区别

文章目录1. 前言2. 两种代理方式的比较总结2.1. 实现原理2.2. 何时使用JDK还是CGLiB2.3. 如何强制使用CGLIB实现AOP2.4. JDK动态代理和CGLIB字节码生成的区别2.5. CGlib比JDK快?2.6. Spring如何选择用JDK还是CGLiB3. 代码实例4. JDK和CGLIB动态代理总结1. 前言Spring框架最经典的设计原理就是IoC(控制反转)和...

2019-02-25 11:43:38 98

xxl job源码分析

xxl job是一个轻量级的任务调度平台,该文档是对其做了一个源码分析。

2018-12-02

神经网络与深度学习

本书是对神经网络与深度学习的入门讲解,讲的很具体。很适合新手看。

2018-12-02

空空如也

空空如也

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

TA关注的人 TA的粉丝

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