自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小旋锋 的博客

专注于大数据,Java后端类技术分享。记录一名平凡的程序猿的技术成长之路

  • 博客(245)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 MySQL Binlog 解析工具 Maxwell 详解

maxwell 简介Maxwell是一个能实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。它的常见应用场景有ETL、维护缓存、收集表级别的dml指标、增量到搜索引擎、数据分区迁移、切库binlog回滚方案等。官网(http://m...

2019-03-11 09:56:44 70118 18

原创 MySQL Binlog 介绍

Binlog 简介MySQL中一般有以下几种日志:日志类型写入日志的信息错误日志记录在启动,运行或停止mysqld时遇到的问题通用查询日志记录建立的客户端连接和执行的语句二进制日志记录更改数据的语句中继日志从复制主服务器接收的数据更改慢查询日志记录所有执行时间超过 long_query_time 秒的所有查询或不使用索引的查询DDL日...

2019-03-09 23:54:32 72557 7

转载 写给工程师的十条精进原则

本文转载自:美团技术团队(公众号ID:meituantech)   作者:云鹏引言时间回到8年前,我人生中的第一份实习工作,是在某互联网公司的无线搜索部做一个C++工程师。当时的我可谓意气风发,想要大干一场,结果第一次上线就写了人生中第一个Casestudy。由于对部署环境的不了解,把SVN库里的配置文件错误地发到线上,并且上完线就去吃晚饭了,等吃饭回来发现师傅在焦头烂额地回滚配置...

2019-01-30 23:13:48 2028 3

原创 利用Zookeeper实现 - 分布式锁

微信原文: 利用Zookeeper实现 - 分布式锁博客原文:利用Zookeeper实现 - 分布式锁在许多场景中,数据一致性是一个比较重要的话题,在单机环境中,我们可以通过Java提供的并发API来解决;而在分布式环境(会遇到网络故障、消息重复、消息丢失等各种问题)下要复杂得多,常见的解决方案是分布式事务、分布式锁等。本文主要探讨如何利用Zookeeper来实现分布式锁。关于分布式锁...

2019-01-28 22:55:52 1336 1

原创 利用Zookeeper实现 - 数据发布订阅

原文始发于:利用Zookeeper实现 - 数据发布订阅数据发布/订阅所谓的数据发布/订阅,意思是发布者将数据发布到Zookeeper上的一个或一系列节点上,通过watcher机制,客户端可以监听(订阅)这些数据节点,当这些节点发生变化时,Zookeeper及时地通知客户端,从而达到动态获取数据的目的。一种常见的场景就是配置中心。随着应用越来越多,功能越来越复杂,机器也越来越多,对于一些...

2019-01-24 02:25:06 2451 3

原创 利用Zookeeper实现 - Master选举

原文始发于:利用Zookeeper实现 - Master选举Zookeeper 是一个高可用的分布式数据管理与协调框架,基于ZAB协议算法的实现,该框架能够很好的保证分布式环境中数据的一致性。Zookeeper的典型应用场景主要有:数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等。本文主要介绍如何利用Zookeeper实现Master...

2019-01-23 00:21:12 2708 3

原创 Zookeeper 分布式协调服务介绍

公众号原文:Zookeeper 分布式协调服务介绍博客原文:Zookeeper 分布式协调服务介绍分布式系统分布式系统的简单定义:分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。分布式系统的特征:分布性:系统中的计算机在空间上随意分布和随时变动对等性:系统中的计算机是对等的,没有主从之分并发性:并发性操作是非常常见的行为缺...

2019-01-21 23:02:04 4867

原创 分布式系统 | CAP 定理图解

博客原文:分布式系统 | CAP 定理图解CAP定理是分布系统中的一个基本定理,它指出任何分布系统最多可以具有以下三个属性中的两个。一致性 (Consistency)可用性 (Availability)分区容错性 (Partition tolerance)本文将以图解的形式简明地对 Gilbert and Lynch’s specification and proof of th...

2019-01-16 01:57:01 2040 4

原创 设计模式 | 解释器模式及典型应用

微信原文:设计模式 | 解释器模式及典型应用博客原文:设计模式 | 解释器模式及典型应用本文主要介绍解释器模式,在日常开发中,解释器模式的使用频率比较低解释器模式解释器模式(Interpreter Pattern):定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的 “语言” 是指使用规定格式和语法的代码。解释器模式是一种类行为型模式。角色AbstractExpre...

2019-01-13 23:47:54 3049 2

原创 ArrayList 源码分析

公众号原文:ArrayList 源码分析博客原文:ArrayList 源码分析以下源码分析使用的 Java 版本为 1.81. 概览ArrayList 是基于数组实现的,继承 AbstractList, 实现了 List、RandomAccess、Cloneable、Serializable 接口,支持随机访问。java.util public class ArrayList<...

2019-01-09 22:49:32 1558

原创 Elasticsearch源码分析 | 单节点的启动和关闭

本文主要简要介绍Elasticsearch单节点的启动和关闭流程。Elasticsearch版本:6.3.2相关文章1、Google Guice 快速入门2、Elasticsearch 中的 Guice3、教你编译调试Elasticsearch 6.3.2源码4、Elasticsearch 6.3.2 启动过程创建节点Elasticsearch的启动引导类为 Bootstrap 类,...

2019-01-08 02:10:44 1973 1

原创 设计模式 | 单例模式及典型应用

单例是最常见的设计模式之一,实现的方式非常多,同时需要注意的问题也非常多。本文主要内容:介绍单例模式介绍单例模式的N中写法单例模式的安全性序列化攻击反射攻击单例模式总结介绍单例模式的典型应用单例模式单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象...

2019-01-07 01:39:54 2158 3

原创 Java 动态代理详解

博客原文:http://laijianfeng.org/2018/12/Java-动态代理详解/动态代理在Java中有着广泛的应用,比如Spring AOP、Hibernate数据查询、测试框架的后端mock、RPC远程调用、Java注解对象获取、日志、用户鉴权、全局性异常处理、性能监控,甚至事务处理等。本文主要介绍Java中两种常见的动态代理方式:JDK原生动态代理和CGLIB动态代理。...

2018-12-21 01:56:25 2489 2

原创 Java反射机制详解

原文:http://laijianfeng.org/2018/12/Java反射机制详解/对于一般的开发者,很少需要直接使用Java反射机制来完成功能开发,但是反射是很多框架譬如 Spring, Mybatis 实现的核心,反射虽小,能量却很大。本文主要介绍反射相关的概念以及API的使用,关于反射的应用将在下一篇文章中介绍反射的介绍反射(Reflection) 是 Java 在运行时(...

2018-12-19 02:31:08 2695 1

原创 Spark SQL 分析 Nginx 访问日志

前言项目地址github: Spark SQL 分析 Imooc 访问日志环境说明Java版本:1.8Scala版本:2.11.12Hadoop版本:hadoop-2.6.0-cdh5.14.0spark版本:spark-2.3.1-bin-2.6.0-cdh5.14.0(自己编译)MySQL版本:5.7.22zeppelin版本:0.8数据集Imooc 访问日志文件:a...

2018-12-16 23:11:42 2733 1

原创 基于ELK 的 Apache 日志可视化分析

Apache日志可视化分析项目地址:https://github.com/whirlys/Elastic-In-Practice/tree/master/apache_log_demo在网站的运营过程中,网站访问者的各种信息对于网站运营者来说,是非常有价值的信息。而网站日志则是这些信息的来源,其记录着web服务器接收处理请求等各种原始信息。分析包括网站独立访问者的数量访问热度地图...

2018-12-05 00:15:41 3153 1

原创 MapReduce 计算气温最大/最小/平均值

本实验来自于 《Hadoop权威指南》第4班 第2章项目地址:https://github.com/whirlys/BigData-In-Practice/tree/master/ch2noaa前置条件安装好Java、maven、Hadoop等环境美国国家气候数据中心-气象数据集下载地址:ftp://ftp.ncdc.noaa.gov/pub/data/noaa步骤1、 下载数...

2018-11-27 00:16:59 4508 3

原创 Java代码是怎么运行的?

极客时间《深入拆解Java虚拟机》学习笔记课程地址:http://gk.link/a/1018S个人博客:http://laijianfeng.orgJava 和 C++ 在运行方式上的区别?Java 代码有很多种不同的运行方式,比如在开发工具中运行、双击执行 jar 文件运行、在命令行中运行,甚至可以在网页中运行。Java 的运行离不开 JRE(Java 运行时环境), JRE ...

2018-11-06 00:52:56 17343

原创 为什么我们要学习Java虚拟机?

《深入拆解Java虚拟机》学习笔记专栏地址:http://gk.link/a/1018SJava 技术体系结构Java虚拟机(Java Virtual Machine 简称 JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一。Java虚拟机是整个Java技术体系最重要的基础。为什么我们要学习Java虚拟机?首先,Java ...

2018-11-05 22:13:38 3009

原创 一个大学消息通知系统

GitHub地址:https://github.com/whirlys/ntim一个个人完成的不成熟的学生课程设计作品,仅供参考,Netty聊天部分主要修改自 qiqiim-server(题目源于自己一个想改善大学消息通知效率的一个想法,所有功能都是自己DIY的,也许并不可行)...

2018-11-04 23:23:07 2131

原创 设计模式 | 责任链模式及典型应用

本文的主要内容:介绍责任链模式请假流程示例责任链模式总结源码分析Tomcat Filter中的责任链模式责任链模式一个事件需要经过多个对象处理是一个挺常见的场景,譬如采购审批流程,请假流程,软件开发中的异常处理流程,web请求处理流程等各种各样的流程,可以考虑使用责任链模式来实现。以请假流程为例,一般公司普通员工的请假流程简化如下:普通员工发起一个请假申请,当请假天数小于3天...

2018-10-31 23:00:54 6813 1

原创 设计模式 | 中介者模式及典型应用

本文的主要内容:介绍中介者模式数据同步示例中介者模式总结源码分析中介者模式的典型应用Java Timer 中的中介者模式中介者模式世界上存在着各种各样的数据库,不同数据库有各自的应用场景,对于同一份数据,最开始可能使用关系型数据库(如MySQL)进行存储查询,使用Redis作为缓存数据库,当数据量较大时使用MySQL进行查询可能较慢,所以需要将数据同步到Elasticsea...

2018-10-26 01:03:40 5810 2

原创 设计模式 | 备忘录模式及典型应用

本文的主要内容:介绍备忘录模式示例备忘录模式总结备忘录模式备忘录模式经常可以遇到,譬如下面这些场景:浏览器回退:浏览器一般有浏览记录,当我们在一个网页上点击几次链接之后,可在左上角点击左箭头回退到上一次的页面,然后也可以点击右箭头重新回到当前页面数据库备份与还原:一般的数据库都支持备份与还原操作,备份即将当前已有的数据或者记录保留,还原即将已经保留的数据恢复到对应的表中...

2018-10-25 00:56:18 9502 4

原创 设计模式 | 观察者模式及典型应用

本文主要内容:介绍观察者模式微信公众号的发布/订阅示例观察者模式总结分析观察者模式的典型应用JDK 提供的观察者接口中的观察者模式Guava EventBus 中的观察者模式JDK 委托事件模型DEM中的观察者模式Spring ApplicationContext 事件机制中的观察者模式观察者模式观察者模式是设计模式中的 “超级模式”,其应用随处可见,我们以微信公众号...

2018-10-24 01:05:45 6005 3

原创 设计模式 | 策略模式及典型应用

本文的主要内容:介绍策略模式示例商场购物打折策略的实现策略模式总结源码分析策略模式的典型应用Java Comparator 中的策略模式Spring Resource 中的策略模式Spring Bean 实例化中的策略模式策略模式在软件开发中,我们也常常会遇到类似的情况,实现某一个功能有多条途径,每一条途径对应一种算法,此时我们可以使用一种设计模式来实现灵活地选...

2018-10-18 20:54:46 2131 3

原创 设计模式 | 迭代器模式及典型应用

本文的主要内容:介绍迭代器模式源码分析迭代器模式的典型应用Java集合中的迭代器模式Mybatis中的迭代器模式更多内容请访问我的个人博客:http://laijianfeng.org迭代器模式迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor)。迭代器模式是一种对象行为型模式。角色I...

2018-10-11 23:09:59 3986 1

原创 设计模式 | 模板方法模式及典型应用

本文的主要内容:介绍模板方法模式源码分析模板方法模式的典型应用Servlet 中的模板方法模式Mybatis BaseExecutor接口中的模板方法模式模板方法模式在程序开发中,经常会遇到这种情况:某个方法要实现的算法需要多个步骤,但其中有一些步骤是固定不变的,而另一些步骤则是不固定的。为了提高代码的可扩展性和可维护性,模板方法模式在这种场景下就派上了用场。譬如制作一节网...

2018-10-11 00:41:07 5212

原创 设计模式 | 组合模式及典型应用

本文的主要内容:介绍组合模式示例组合模式总结源码分析组合模式的典型应用java.awt中的组合模式Java集合中的组合模式Mybatis SqlNode中的组合模式更多内容可访问我的个人博客:http://laijianfeng.org推荐阅读设计模式 | 简单工厂模式及典型应用设计模式 | 工厂方法模式及典型应用设计模式 | 抽象工厂模式及典型应用设计模式 ...

2018-10-05 17:36:55 6811 6

原创 设计模式 | 享元模式及典型应用

文章目录享元模式角色示例享元模式总结源码分析享元模式的典型应用String中的享元模式Integer 中的享元模式Long中的享元模式Apache Commons Pool2中的享元模式推荐阅读享元模式享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共...

2018-09-25 01:27:18 5194 1

原创 设计模式 | 适配器模式及典型应用

适配器模式适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适...

2018-09-20 01:37:29 99293 31

原创 设计模式 | 装饰者模式及典型应用

前言本文的主要内容:介绍装饰者模式示例源码分析装饰者模式的典型应用Java I/O 中的装饰者模式spring session 中的装饰者模式Mybatis 缓存中的装饰者模式总结装饰者模式装饰者模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,增加对象功能来说,装饰模式比生成子类实现更为灵活。装饰模式是一种对象结构型模式。在装饰者模式...

2018-09-18 21:16:34 6661 1

原创 设计模式 | 外观模式及典型应用

前言本文的主要内容:介绍外观模式示例 自己泡茶到茶馆喝茶外观模式总结外观模式的典型应用 spring JDBC 中的外观模式Mybatis中的外观模式Tomcat 中的外观模式SLF4J 中的外观模式外观模式外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户...

2018-09-16 20:59:32 12681 1

原创 设计模式 | 原型模式及典型应用

前言本文的主要内容如下:介绍原型模式示例 Java语言的clone浅克隆与深克隆实现深克隆原型模式的典型应用原型模式原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式的工作原理很简单:将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象...

2018-09-15 00:49:41 2656

原创 设计模式 | 建造者模式及典型应用

本文目录 建造者模式角色示例建造者模式总结建造者模式的典型应用和源码分析java.lang.StringBuilder 中的建造者模式java.lang.StringBuffer 中的建造者方法Google Guava 中的建造者模式mybatis 中的建造者模式建造者模式建造者模式(Builder Pattern):将一个复杂对象的构建...

2018-09-12 14:05:21 3541 1

原创 设计模式 | 抽象工厂模式及典型应用

抽象工厂模式抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。在抽象工厂模式中,每一个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品。角色在抽象工厂模式包含如下几个角色:AbstractFactory(抽象工厂):它声明了一组用...

2018-09-11 15:12:30 1122 1

原创 设计模式 | 工厂方法模式及典型应用

工厂方法模式工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又简称为工厂模式(Factory Pattern),又可称作虚拟构造器模式(Virtual Constructor Pattern)或多态工厂模式(Polymorphic Factory Pattern)。...

2018-09-09 17:38:52 2297 1

原创 设计模式 | 简单工厂模式及典型应用

前言设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。本文主要介绍简单工厂模式及典型应用,内容如下:简单工厂模式的介绍简单工厂模式的典型应用及源码分析 Calendar 类获取日历类对象JDBC 获取数据库连接LoggerFactory 获取 Lo...

2018-09-07 23:30:40 3388 3

转载 zsh与/etc/profile

在 /etc/profile 中配置无效查看zsh的相关文档发现,zsh其实并不使用 /etc/profile文件,而是使用 /etc/zsh/ 下面的 zshenv、zprofile、zshrc、zlogin 文件,并以这个顺序进行加载。...

2018-09-07 18:24:06 3592 1

原创 Elasticsearch 6.3.2 启动过程

前言本文探究Elasticsearch 6.3.2的启动流程环境准备使用工具:IDEA,XMind关于ES调试环境的搭建,可以参考前面的文章 《教你编译调试Elasticsearch 6.3.2源码》然后通过设置断点,从 org.elasticsearch.bootstrap.ElasticSearch 的入口函数开始,一步一步调试上图为使用 IDEA 2018.2...

2018-09-01 20:54:36 2750

转载 并发工具类 CountDownLatch

本文转载自:码农历险记 CountDownLatchCountDownLatch介绍CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。CountDownLatch原理CountDownLatch 是通过一个计数器来实现的,计数器的初始...

2018-09-01 16:38:46 1492

java 学习路线图-2018最新

java 学习路线图-2018最新 以有趣和好理解的方式展示Java和Web的内容 设计一些略有挑战的练习 创造一些便于理解和消化知识点的方式,享受这个创造的过程

2018-10-01

JavaEE开发的颠覆者 Spring Boot实战源码

JavaEE开发的颠覆者 Spring Boot实战(作者:汪云飞)书籍的源代码。 在当今Java EE开发中,Spring框架是当之无愧的王者。而Spring Boot是Spring 主推的基于“习惯优于配置”的原则,让你能够快速搭建应用的框架,从而使得Java EE 开发变得异常简单。 《JavaEE开发的颠覆者: Spring Boot实战》从Spring 基础、Spring MVC基础讲起,从而无难度地引入Spring Boot 的学习。涵盖使用Spring Boot 进行Java EE 开发的绝大数应用场景,包含:Web 开发、数据访问、安全控制、批处理、异步消息、系统集成、开发与部署、应用监控、分布式系统开发等。 当你学完《JavaEE开发的颠覆者: Spring Boot实战》后,你将能使用Spring Boot 解决Java EE 开发中所遇到的绝大多数问题。

2017-09-24

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

TA关注的人

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