自定义博客皮肤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的博客

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

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

转载 【Wireshark抓包】:TCP的状态类型

承接上篇:https://blog.csdn.net/hxcaifly/article/details/853392991. 前言在分析wireshark抓包时,封包详情信息里展现出了TCP的状态类型。除了我们比较熟悉的SYN, ACK的三次握手时见到的状态之外。突然见到PSH,RST等状态,这些比较陌生。所以觉得有必要对TCP的状态类型做一次总结。2. TCP的六大状态TCP的六大状...

2018-12-29 16:55:03 588

原创 【Wireshark抓包】:wireshark的应用

1.Wireshark简单介绍抓包应该是每个技术人员掌握的基础知识,无论是技术支持运维人员或者是研发,多少都会遇到要抓包的情况,用过的抓包工具有fiddle、wireshark,作为一个不是经常要抓包的人员,学会用Wireshark就够了,毕竟它是功能最全面使用者最多的抓包工具。Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示...

2018-12-29 16:12:47 222

原创 【Java网络编程】:Netty实现OIO和NIO

承接上文:https://blog.csdn.net/hxcaifly/article/details/85274664前言单纯地使用Java JDK来实现网络NIO是一件开发成本非常高的事情。然而,Netty 为它所有的传输实现提供了一个通用API,这使得这种转换比你直接使用JDK所能够达到的简单得多。所产生的代码不会被实现的细节所污染,而你也不需要在你的整个代码库上进行广泛的重构。简而...

2018-12-27 11:52:20 413 3

原创 【Java网络编程】:JDK API实现OIO和NIO

前言网络编程是Java的一大难点,JDK自带的api可以实现网络编程。我们将从一个应用程序开始我们对传输的学习,这个应用程序只简单地接受连接,然后向客户端写“Hi!”,然后关闭连接。1. OIO实现应用程序的阻塞(OIO)版代码如下:package chx.demo;import java.io.IOException;import java.io.OutputStream;im...

2018-12-27 11:29:54 176

原创 【Java设计模式】:创建型模式—原型模式

1.原型模式(Prototype Pattern)定义:原型(Prototype)模式是一种对象创建型模式,他采取复制原型对象的方法来创建对象的实例。使用原型模式创建的实例,具有与原型一样的数据。原型模式的特点:由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。目标对象是原型对象的一个克隆。也就是说,通过原型模式创建的对象,不仅仅与原型对象具有相同的结构,还与原...

2018-12-26 14:47:49 97

转载 【Java缓存】:缓存进化史

1. 应用服务缓存优化可以看见图中分为几个阶段:第一阶段:数据同步加redis通过消息队列进行数据同步至redis,然后Java应用直接去取缓存 这个阶段优点是:由于是使用的分布式缓存,所以数据更新快。缺点也比较明显:依赖Redis的稳定性,一旦redis挂了,整个缓存系统不可用,造成缓存雪崩,所有请求打到DB。第二、三阶段:JavaMap到Guava cache这个阶段使用进程内缓存...

2018-12-25 18:43:26 99

原创 【Java设计模式】:创建型模式—建造者模式

1.建造者模式定义建造者模式,顾名思义的就是类似建房子,有一个固定的流程。在大话设计模式中,作者举了一个例子大概意思是同一道菜在中国的每一个地方都有不同的味道(LZ印象最深的是酸菜鱼,来杭州之后印象最深刻的是清蒸鲈鱼。),而肯德基的鸡腿、汉堡在每一个城市都是一样的味道。建造者模式实现了依赖倒转原则,抽象不应该依赖细节,细节应该依赖与抽象。建造者模式的定义是:将一个复杂对象的构造与它的表示分离,使...

2018-12-25 12:48:35 77

转载 【Spring】:aop的实现原理

衔接前篇文章:https://blog.csdn.net/hxcaifly/article/details/85061330前言前段时间写的java设计模式–代理模式,最近在看Spring Aop的时候,觉得于代理模式应该有密切的联系,于是决定了解下Spring Aop的实现原理。说起AOP就不得不说下OOP了,OOP中引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为...

2018-12-23 21:28:07 50

转载 【Flink原理和应用】:Flink高效的内存管理

1. 前言如今,大数据领域的开源框架(Hadoop,Spark,Storm)都使用的 JVM,当然也包括 Flink。基于 JVM 的数据分析引擎都需要面对将大量数据存到内存中,这就不得不面对 JVM 存在的几个问题:Java 对象存储密度低。一个只包含 boolean 属性的对象占用了16个字节内存:对象头占了8个,boolean 属性占了1个,对齐填充占了7个。而实际上只需要一个bit...

2018-12-22 15:56:55 388 4

原创 【Java设计模式】:创建型模式—单例模式

1.单例模式(Singleton Pattern)的基本概念确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。单例模式有三个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式是结构最简单的设计模式一,在它的核心结构中只包含一个被称为单例类的特...

2018-12-20 10:20:18 71

转载 【数据库】:MySQL数据库优化

1. MySQL架构MySQL整体架构图如下:2. 查询执行流程查询执行的流程是这样的:连接客户端发起一条Query请求,监听客户端的‘连接管理模块’接收请求将请求转发到‘连接进/线程模块’调用‘用户模块’来进行授权检查通过检查后,‘连接进/线程模块’从‘线程连接池’中取出空闲的被缓存的连接线程和客户端请求对接,如果失败则创建一个新的连接请求。处理5. 先查询缓存,检查Q...

2018-12-19 10:45:13 116

原创 【Java设计模式】:结构型模式—代理模式

什么是代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象。这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。这里使用到编程中的一个思想: 不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明...

2018-12-18 13:58:28 441

转载 【Flink原理和应用】:Flink对比Spark以及流计算发展趋势分析

前言丑话说在前面,笔者无意于撩拨 Flink 和 Spark 两个群体的矛盾,社区间取长补短也好,互相抄袭也好,都不是个事,关键在于用户群体的收益。在各种会上,经常会被问到 Spark 和 Flink 的区别,如何取舍?下面从数据模型、运行时架构、调度、时延和吞吐、反压、状态存储、SQL 扩展性、生态、适用场景等方面来逐一分析。1. 数据模型Spark 的数据模型Spark 最早采用 ...

2018-12-17 19:50:00 1312 1

原创 【消息队列】: Kafka、ActiveMQ、RabbitMQ、RocketMQ相关总结

1.前言在写Flink任务的过程中,流计算需要支持去Kafka,RabbitMQ,ActiveMQ消费数据。这里咋一看这三个不都是消息队列么,为啥要搞三个呢?何不把它们统一起来。因此处于好奇,就对消息队列的相关框架做了一番认识。本文涉及到的内容:为什么使用消息队列?消息队列有什么优点和缺点?Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景...

2018-12-17 18:29:07 398

翻译 【Flink原理和应用】:Akka和Actors

原文:https://cwiki.apache.org/confluence/display/FLINK/Akka+and+Actors#space-menu-link-content前言本文重点讨论Flink通过Akka实现分布式通信,Akka在Flink 0.9版本中已经开始采用。使用Akka,所有远程过程调用过程都实现为异步消息。这主要影响组件JobManager、TaskManag...

2018-12-14 10:35:01 974

原创 【Flink原理和应用】:Flink的并发执行(Parallel Execution)

1. Flink的并发执行本章描述如何在Flink中配置程序的并发执行,一个Flink程序可以由不同的task(如:transformations/opterators,data sources及data sinks等)组成,一个task会分发到多个并发实例中运行,并且每个并发实例处理task的部分输入数据集。一个task的并发实例数叫做parallelism。在这之前有必要先了解下slot和p...

2018-12-13 15:42:00 2647

原创 【Java设计模式】:创建型模式—工厂模式

前言

2018-12-13 10:39:26 52

原创 【git应用技能】:git 切换远程仓库地址

前言今天在git提交代码的时候,我想一份代码提交到两个远程github库里去。怎么办呢?git是支持这种操作的,一起来看下吧。具体操作1.切换远程仓库地址:方式一:修改远程仓库地址【git remote set-url origin URL】 更换远程仓库地址,URL为新地址。方式二:先删除远程仓库地址,然后再添加【git remote rm origin】 删除现有远程仓库...

2018-12-13 09:14:53 98

转载 【Flink 原理与实现】:架构和拓扑概览

架构要了解一个系统,一般都是从架构开始。我们关心的问题是:系统部署成功后各个节点都启动了哪些服务,各个服务之间又是怎么交互和协调的。下方是 Flink 集群启动后架构图。当 Flink 集群启动后,首先会启动一个 JobManger 和一个或多个的 TaskManager。由 Client 提交任务给 JobManager,JobManager 再调度任务到各个 TaskManager 去执...

2018-12-12 16:38:25 121

原创 【Flink原理和应用】:Flink的Yarn模式安装部署

一. 快速启动在YARN上启动一个长时间运行的Flink集群启动一个带有4个TaskManager的YARN会话(每一个TaskManager分配4GB的堆内存):# 从Flink下载页下载hadoop2下载包。# 下载地址为:http://flink.apache.org/downloads.htmlcurl -O <flink_hadoop2_download_url>...

2018-12-12 11:46:17 1202

转载 【Java多线程编程】Java CompletableFuture 详解

前言Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执行。public class BasicFuture { public static void main(String[] args) throws ExecutionExceptio...

2018-12-11 19:19:55 85

转载 【经典实战案例】:美团 DB 数据同步到数据仓库的架构与实践

来源:美团技术团队tech.meituan.com/binlog_dw.html背景在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据。在互联网企业中,常见的ODS数据有业务日志数据(Log)和业务DB数据(DB)两类。对于业务DB数据来说,从MySQL等关系型数据库的业务数据进行采集,然后导入到Hive中,是进行数据...

2018-12-11 10:59:09 206

原创 【Java设计模式开篇】:设计模式总览

1. 什么是设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相...

2018-12-10 12:48:41 196 1

转载 【数据库】:分布式事务的实现原理

前言事务是数据库系统中非常有趣也非常重要的概念,它是数据库管理系统执行过程中的一个逻辑单元,它能够保证一个事务中的所有操作要么全部执行,要么全不执行;在 SOA 与微服务架构大行其道的今天,在分布式的多个服务中保证业务的一致性就需要我们实现分布式事务。在这篇文章中,我们将介绍 事务的实现原理、分布式事务的理论基础以及实现原理。1.事务在文章的开头,我们已经说过事务是数据库管理系统执行过程中...

2018-12-09 15:52:12 219

转载 【数据库】:MySQL 中事务的实现

前言在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的;在这篇文章中,我们将对事务的实现进行分析,尝试理解数据库是如何实现事务的,当然我们也会在文章中简单对 MySQL 中对 ACID 的实现进行简单的介绍。事务其实就是并发控制的基本单位;相信我们都知道,事务是一个序列操作,其中的操作要么...

2018-12-09 15:22:39 70

原创 【Flink源码分析】:Flink的内存管理

前言Flink的内存管理器管理着用于排序、散列和缓存所需的内存。内存以相等大小的(Segments)表示,称为内存页。操作器通过请求多个内存段来分配内存。在Flink中,内存又分为堆内存和非堆内存。至于是去申请什么类型的内存,这里有相关的参数去配置。内存管理器可以预先分配所有内存,或者按需分配内存。在前者中,内存将从开始就被占用和保留,这意味着在请求内存时不能出现OutOfMemoryErro...

2018-12-08 11:06:18 1123 2

原创 【Java基础】:重新定义equals()和hashCode()方法

前言在阅读Flink源码时,看到了很多类都自定义了equals()和hashCode()方法,并且这两个方法都是成对出现的。比如下面引自Flink的代码片段:package org.apache.flink.runtime.leaderelection;import java.util.UUID;import static org.apache.flink.util.Precondit...

2018-12-07 23:43:52 333

原创 【Java设计模式】:行为型模式—观察者模式

引言当别人问你,一个类的对象属性发生改变时,如何让调用者知道?其实这个就是问你观察者模式的原理。观察者模式,又可以称之为发布-订阅模式,观察者,顾名思义,就是一个监听者,类似监听器的存在,一旦被观察/监听的目标发生的情况,就会被监听者发现,这么想来目标发生情况到观察者知道情况,其实是由目标将情况发送到观察者的。1. 观察者模式 (Observer)观察者模式定义了一种一对多的依赖关系,让多...

2018-12-07 17:06:47 122 2

转载 【Spring】:SpringMVC工作原理

1. SpringMVC框架介绍Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的...

2018-12-07 16:11:27 47

转载 计算机基础知识思考

大家都觉得基础知识重要,但是具体来说,哪些点重要呢? 今天我就试图总结一下,也欢迎大家补充。信息的表示和处理计算机如何表示整数:有符号数和无符号数,尤其是如何用补码表示负数,数字的取值范围。计算机如何表示浮点数,为什么小数的二进制表示法只能近似表示十进制小数。数值的转换、移位这几点非常重要,因为几乎所有的编程语言都有数据类型,而最基本数据类型必然包括整数和浮点数。搞不清这些表示和运算,...

2018-12-06 15:52:24 102 2

原创 Java中的代理模式

一. RPC框架的概念RPC(Remote Procedure Call)–远程过程调用,通过网络通信调用不同的服务,共同支撑一个软件系统,微服务实现的基石技术。在分布式架构中,各节点之间通常是通过rpc的方式来交互的。使用RPC可以解耦系统,方便维护,同时增加系统处理请求的能力。只需要引入各个服务的接口包,在代码中调用RPC服务就跟调用本地方法一样,我刚接触到这种调用方式的时候颇为惊奇,我...

2018-12-06 09:30:39 54 1

转载 一篇文章带你深入理解Zookeeper

前言随着互联网技术的发展,大型网站需要的计算能力和存储能力越来越高。网站架构逐渐从集中式转变成分布式。虽然分布式和集中式系统相比有很多优势,比如能提供更强的计算、存储能力,避免单点故障等问题。但是由于采用分布式部署的方式,就经常会出现网络故障等问题,并且如何在分布式系统中保证数据的一致性和可用性也是一个比较关键的问题。分布式的工作方式有点类似于团队合作。当有一项任务分配到某个团队之后,团队内...

2018-12-05 17:12:12 83

转载 一文讲清楚什么是网关、DNS、子网掩码、MAC地址

前言很多朋友多次问到什么是网关、dns、子网掩码,它有什么作用,确实,我们平时在网络中总是在不断的提到网关,却很少真正的去了解它。一、什么是网关1.什么是网关网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。2. 如何来理解网关大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络...

2018-12-03 22:57:26 2684 4

转载 【JVM第十三篇】:JVM的类加载机制

前言我们知道,Java源代码(.java文件)需要通过编译器编译成字节码文件(.class)后由类装载子系统(ClassLoader)载入运行时数据区(<jdk1.8之前是载入方法区,>=jdk1.8以后是载入元数据区)才能被后续的Java运行程序(线程)正常使用(实例化或引用)。那么类装载的具体机制是什么样的呢?下面就让我们一起进一步来了解下吧!JVM类装载概述与C/C++那...

2018-12-02 13:52:36 158

原创 【任务调度系统第三篇】:Azkaban原理介绍

写在前面Azkaban官网:https://azkaban.github.io/1. azkaban简单介绍Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。 其Web UI界面如下图所示。由于我们团...

2018-12-01 20:28:19 2313 2

原创 【任务调度系统第一篇】:大数据任务调度框架

1.前言任务调度系统在大数据平台架构中扮演着比较重要的角色。下图是引自网易的猛犸大数据平台lambda架构图。其中的Azkaban就是其任务调度组件。概括来说,任务调度在大数据平台中所扮演的角色主要有:任务编排:对任务流按照一定的逻辑串起来。这在大数据开发中,显得比较重要,对于一个工作任务,可能有不同的子任务串起来的,并且有些子任务是并行执行的。举个例子,在做一个机器学习的模型时,可能...

2018-12-01 17:22:58 4405

转载 深度学习与计算机视觉(PB-12)-ResNet

系列学习:深度学习与计算机视觉(PB-13)—ImageNet数据集准备深度学习与计算机视觉(PB-12)—ResNet深度学习与计算机视觉(PB-11)—GoogLeNet深度学习与计算机视觉(PB-10)—Kaggle之猫狗比赛深度学习与计算机视觉(PB-09)—使用HDF5保存大数据集深度学习与计算机视觉(PB-08)—应用深度学习最佳途径深度学习与计算机视觉(PB-07)—...

2018-12-01 14:15:22 2317

原创 [Flink原理介绍第四篇】:Flink的Checkpoint和Savepoint介绍

第一部分:Flink的Checkpoint1. Flink Checkpoint原理介绍Checkpoint是Flink实现容错机制最核心的功能,它能够根据配置周期性地基于Stream中各个Operator的状态来生成Snapshot,从而将这些状态数据定期持久化存储下来,当Flink程序一旦意外崩溃时,重新运行程序时可以有选择地从这些Snapshot进行恢复,从而修正因为故障带来的程序数据状...

2018-12-01 14:08:57 4930

xxl job源码分析

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

2018-12-02

神经网络与深度学习

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

2018-12-02

空空如也

空空如也

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

TA关注的人 TA的粉丝

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