自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 【设计模式】你不了解的单例模式

什么是单例模式?单例模式:一个类有且只能有一个对象(实例)。单例模式的 3 个要点:外部不能通过 new 关键字(构造函数)的方式新建实例,所以构造函数为私有:private Singleton(){}只能通过类方法获取实例,所以获取实例的方法为公有、且为静态:public static Singleton getInstance()实例只能有一个,那只能作为类变量的「数据」,类变量为静态 (另一种记忆:静态方法只能使用静态变量):private static Singleton instance

2021-08-17 15:58:25 80

原创 【Java基础】反射-invoke包

什么是MethodHandle?从Java 7开始提供了另一套API MethodHandle 。其与反射的作用类似,可以在运行时访问类型信息,但是据说其执行效率比反射更高,也被称为Java的 现代化反射。官方对其定义如下:A method handle is a typed, directly executable reference to an underlying method, constructor, field, or similar low-level operation, with

2021-08-10 19:56:38 317

原创 【数据库】SQL执行原理

一条SQL语句有几部分组成?执行一条SQL时各部分是按照什么顺序执行的?带着这些问题我们一起学习一下。首先看一下标准的SQL的组成,标准的SQL有下面10部分组成。有两张表student,score步骤一执行from语句。from后跟的表,如果1张表,该表的全部数据作为该步骤的临时表V1;如果from后有2张表,则取两张表的笛卡尔积作为该步骤的临时表V1(12条记录);步骤二执行on语句。在上一步的临时表V1的基础上根据on后面的条件过滤掉不符合的数据行得到临时表V2步骤三执行j

2021-07-19 16:09:46 594 1

转载 【数据库】MySQL索引下推

MySQL 联合索引仅支持按「最左匹配」原则使用索引。在遇到范围查询情况时,会停止利用后面的索引字段。本文针对这一问题对联合索引原理进行说明,并引出官方对这种情况下的优化方案:ICP 索引下推机制。注:联合索引,又称复合索引,英文为Multiple-Column Indexes或Composite Indexes联合索引存储原理index (a,b)的联合索引结构如上图(出自《MySQL技术内幕-InnoDB存储引擎》),观察到每个节点中均同时包含a,b两个字段信息,且字段a全局有序,字段b局部有

2021-07-12 23:23:52 277

原创 【Java基础】反射-reflect包

Java反射

2021-07-03 10:23:11 137

原创 【源码分析】并发容器-ConcurrentHashMap

/** * Moves and/or copies the nodes in each bin to new table. See * above for explanation. */private final void transfer(Node<K,V>[] tab, Node<K,V>[] nextTab) { //扩容前原table的长度,stride是每个线程复制数据的步长(table元素个数),默认 //MIN_TRANSFER_STRI

2021-04-12 14:17:35 161 1

原创 【大数据】clickhouse系列二创建表及导入数据

创建本地表create table if not exists t_profile_local(user_id String,content String) ENGINE = MergeTree() ORDER BY tuple()SETTINGS index_granularity = 8192;以上语句只在客户端本地节点创建表t_profile_local,所以称之为本地表,创建复制表create table if not exists t_profile_replica ON CLUSTER

2021-02-03 14:31:02 2618

原创 【大数据】clickhouse系列一安装篇

Clickhouse安装第一步:下载安装包第二步:检查操作系统是否支持第三步:安装zookeeper第四步:创建用户clickhouse第五步:解压并安装第六步:修改配置第七步:验证集群这里准备了4台机器,配置为16C32G500Gck01ck02ck03ck04第一步:下载安装包下载地址:https://repo.clickhouse.tech/tgz/stable/下载以下三个安装包clickhouse-client-20.10.2.20.tgzclickhouse-server-2

2021-02-02 16:12:20 676

原创 Sparkstreaming读取Kafka消息经过spark处理写入hive表

spark-streaming-kafka-demo使用Springboot框架,Sparkstreaming监听Kafka消息,Redis记录已读Kafka偏移量,Spark统计单词出现次数,最后写入Hive表。代码参考:https://github.com/JunjianS/spark-streaming-kafka-demo注意事项版本信息Kafka:2.12-2.3.0S...

2019-08-14 09:13:03 6780 1

原创 【码艺杂谈】Java中的相同与不同

Java中有很多场景需要判断两个对象或者两个值,那么 判断是否相同的依据是什么? - [ ] 如何判断是否相同呢?为了解释这个问题,我们从Java语言的根说起,那Java语言的根在哪里?我们知道Java是一种面向对象的编程语言,对象是类的实例,所有的类都隐式继承Object类,那Object类就是所有类的父类,也就是我们所说的根。 Object类中方法不多,其中有两个方法,一个叫equa...

2018-07-13 10:37:07 253

原创 【源码分析】JUC一Exchanger

Exchanger是一种线程间安全交换数据的机制。当线程A调用Exchange对象的exchange()方法后,他会进入阻塞状态,直到线程B也调用了exchange()方法,然后以线程安全的方式交换数据,之后线程A和B继续运行。 这里先提出两个疑问,带着疑问我们分析一下源码:可不可以多个线程之间进行数据交换?两个线程交换的数据是不是必须类型一致呢?调试进去,你会发现Exchange...

2017-08-25 17:16:19 685

原创 Spring原理(四)AOP的实现

spring aop的实现原理及源码分析

2016-12-06 19:35:04 683

转载 zookeeper原理(二)集群选主和同步

一、基本概念 zookeeper的核心是原子广播,这个机制保证了各个server之间的同步,实现这个机制的协议叫做zab协议。zab协议有两种模式: 分别是恢复模式和广播模式。恢复模式,zookeeper配置为集群模式时,系统启动或者是当前leader崩溃或者是当前leader丢失大多数的follower,zk进入恢复模式,恢复模式需要重新选举出一个新的leader,当领导者被选举出来,且大多数

2016-11-21 19:12:21 15231 4

原创 Spring原理(二)IoC容器的初始化过程之ApplicationContext

上一篇已经介绍了BeanFactory的初始化过程,这一篇介绍一下ApplicationContext的初始化。ApplicationContext有很多实现,这里以常见的FileSystemXmlApplicationContext为例来说明一下ApplicationContext的初始化过程。启动ApplicationContext 以下代码就初始化了一个IoC容器,FileSyst

2016-10-10 18:08:55 2032

原创 【Springboot原理】

springboot原理

2021-10-18 11:26:35 138

原创 【Java虚拟机】类加载机制

类加载机制

2021-09-08 20:16:40 148

原创 【系统设计】领域驱动设计

什么是领域驱动设计?

2021-08-31 16:59:06 150

原创 【Redis原理】数据分区

redis数据分区

2021-08-23 15:52:57 100

原创 【Java基础】反射-UnSafe

如何正确创建UnSafe实例Long offset = Unsafe.getUnsafe().objectFieldOffset(nameField);unsafe.compareAndSwapObject(this,offset,name,"this is unsafe");[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6WcFdrp5-1628667545948)(/Users/tim/Desktop/截屏2021-08-11 上午10.27.16.png)]查

2021-08-11 15:43:17 315

原创 【Java基础】ThreadLocal

ThreadLocal是啥ThreadLocal并不是新生事物,早在JDK 1.2的版本中就已经出现了。JDK 1.2发布于1998年12月,距今已经有22年的历史。JDK 1.2是Java发展史的一座里程碑,涌现了很多开创性的功能,例如本文要说的ThreadLocal。ThreadLocal为解决多线程程序的并发问题提供了一种新的思路,使用这个工具类可以很简洁地编写出优美的多线程程序。但是,ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个

2021-08-04 15:17:53 104

翻译 【大数据】clickhouse系列三权限控制

1. 基于配置文件的权限管理配置文件目录/etc/clickhouse-server主配置文件config.xml中关于用户配置,推荐在users.d目录下针对不同的用户配置不同的文件,比如这里为test用户配置了test.xml文件,这样配置灵活不相互影响。<user_directories> <users_xml> <!-- Path to configuration file with predefined users. -->

2021-07-23 11:47:01 1116

原创 【Java基础】代理

代理是什么?

2021-06-30 23:49:03 75

原创 【Java基础】注解

注解注解是什么?​ 对于很多初次接触的开发者来说应该都有这个疑问?Annontation是Java5开始引入的新特征,包含在 java.lang.annotation 包中,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方

2021-06-30 18:55:26 65

原创 Flume

大数据-Flume环境Flume-ng 1.9.0source TAILDIRchannel memorysink hdfs一、性能测试针对以下场景对Flume进行性能测试场景1:一个channel,采用lzo压缩场景1:一个channel,不压缩场景1:两个channel,采用lzo压缩场景1:两个channel,不压缩配置文件# Name the componen...

2020-03-31 14:22:40 397

原创 【源码分析】容器类-HashMap

一、HashMap基本原理 HashMap采用Entry数组来存储key-value对,每一个键值对组成了一个Entry实体,Entry类实际上是一个单向的链表结构,它具有Next指针,可以连接下一个Entry实体,依次来解决Hash冲突的问题,因为HashMap是按照Key的hash值来计算Entry在HashMap中存储的位置的,如果hash值相同,而key内容不相等,就用链表来

2017-12-18 18:54:02 308

原创 分布式技术(一)分布式锁

分布式锁的实现方式有多种,根据具体的需求不同选择使用不同的实现方式,没有最好的,只有最适合的。本文简要介绍一下几种主要的方式,数据库锁、缓存锁、Redlock、Zookeeper分布式锁、Curator 。

2017-06-03 10:27:49 502

原创 FastDfs (四) Fastdfs安装

下载所需包libfastcommon-master.zip zlib-1.2.11.tar.gz pcre-8.40.tar.gzlibevent-2.0.21-stable.tar.gz nginx-1.10.3.tar.gzFastDFS_v5.07.tar.gz fastdfs-nginx-module_v1.16.tar.gz安装基本工具(已安装可以跳过此步骤):

2017-05-19 18:45:02 458

原创 FastDfs (三) Nginx整合Fastdfs模块

下载所需包 libfastcommon-master.zip zlib-1.2.11.tar.gz pcre-8.40.tar.gz libevent-2.0.21-stable.tar.gz nginx-1.10.3.tar.gz FastDFS_v5.07.tar.gz

2017-04-28 10:44:31 680

原创 Redis(一)Centos环境下集群安装配置

Redis3之后才支持集群(采用数据分片的方式),这里选择redis版本3.2.3。这里我们用三台机器h1,h2,h3 ,每台机器上启两个节点端口分别为6379,6380。这样就有6个节点,redis集群启动之后会默认选择其中三个节点为主节点,其余三个节点分别为三个主节点的从节点。为以下是redis集群需要的环境依赖。 ruby:2.3.1 rubygems:2.6.6 redi

2017-03-17 12:54:41 651

转载 Spring MVC原理(二)请求处理流程源码分析

springmvc处理流程图 •前端控制器 DispatcherServle •映射处理器 HandlerMapping •处理器适配器 HandlerAdapter •视图解析器 ViewResolver核心架构的具体流程步骤如下:用户发送请求——>DispatcherServletDispatcher作为统一的访问点,进行全局的流程控制。  前端控制器收到请求之后自己不进行处理,而

2017-02-08 13:58:53 582 1

原创 Spring原理(三)bean实例化

列表内容

2016-11-23 15:38:09 2125

原创 Spring原理(一)IoC容器的初始化过程之BeanFactory

IoC容器的初始化过程 IoC容器的启动过程包括BeanDefinition的Resource定位、载入和注册三个基本过程。 但spring是把这三个过程分开的,并用不同的模块来完成,比如ResourceLoader、 BeanDefinitionReader、这种设计具有很高的灵活性,用户可以根据不同的需要组合出适合自己的初始 化过程。 第一个过程是R

2016-09-22 19:17:36 3981

原创 Git-分布式版本管理系统

定义 分布式版本管理与控制系统与传统的集中式(中心化)管理相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,即使没有网络你也可以提交变动到版本库(因为本地就有一个完整的版本库),git的中心库和SVN等传统版本控制系统不同,它不是一切的中心(大脑),而仅仅也是一个副本,它的存在只是为了方便协作开发,大家方便提交变动和同步变动。但是这里说的不依赖网络,并不是完全不依赖网络

2016-08-07 18:41:29 1429

原创 Shiro (一) 上下文环境初始化

1. 初始化过程的类图2. 初始化过程2.1 首先需要在web.xml中专门负责接入shiro的filter: <!-- shiro 安全过滤器 --><filter> <filter-name>shiroFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterPro

2016-08-03 19:40:57 3445 2

原创 Centos环境制作Docker Tomcat镜像

安装Docker yum install docker-io测试安装是否成功 docker version 制作Dockerfile文件 Dockerfile有自己的语法,包含创建镜像所需要的全部命令,用于简化镜像和容器创建过程,从而简化部署。具体语法参考 Dockerfile 语法页 注意事项:(1)事先下载jdk包和tomcat包到当前目录下,也可以修改Dockerfi

2016-06-24 18:39:44 881

原创 Mycat 学习笔记

Mycat 简介 1.1 什么是Mycat 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 一个新颖的数据

2016-05-19 11:11:54 1352

原创 Mysql Proxy环境搭建

服务器环境: 三台centos6服务器: 192.168.1.1 192.168.1.2 192.168.1.3 mysql版本:mysql-5.6.29-1.el6.x86_64.rpm mysql-proxy版本:mysql-proxy-0.

2016-04-16 18:16:59 605

原创 Mysql主从环境搭建

1. Mysql安装    这里的服务器环境是 centos 6.7,可以去mysql官网下载相应的版本,centos可以选择 redhat enterprise版本。分别在master和slave上安装好。2. 操作Mysql     启动:/etc/init.d/mysqld start;     重启:/etc/init.d/mysqld restart;     关闭:

2016-03-09 09:20:19 705

原创 Mysql“集群”和”主从“两者的区别

之前一直用oracle数据库,而且只是用,没有关心过数据库的架构,现在的项目使用mysql数据库,而且要自己设计数据存储架构。所以研究了一下mysql的集群(cluster)和主从(master/slave)这两个概念。两者非常容易混淆,特别是对于菜鸟来讲。Mysql cluster: share-nothing,分布式节点架构的存储方案,以便于提供容错性和高性能。需要用到mysql cluste

2016-02-17 19:49:34 28526 4

原创 FastDfs (二) Nginx 整合 Fastdfs

简单概述 Fastdfs本身具有http模块,但是自带的http模块比较弱,而且,由于同一group的storage之间会相互复制数据,复制数据是需要时间的,这时就会存在之前提到的同步延迟的问题,所以一般情况下,fastdfs和nginx搭配使用,在storage server上面安装nginx以及 nginx fastdfs module,nginx会分配访问的storage server,一般

2016-01-19 17:09:43 543

分布式锁原理讲解视频资料

分布式锁的原理、实现方式、应用场景,经典学习视频。

2018-09-19

java五子棋源程序

java五子棋源程序 网络版 java五子棋源程序 网络版

2010-10-21

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

TA关注的人

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