自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 spring boot2配置Prometheus

spring boot2配置Prometheus&Grafanamicrometermicrometer简介Springboot2在spring-boot-actuator中引入了micrometer,对1.x的metrics进行了重构,另外支持对接的监控系统也更加丰富(Atlas、Datadog、Ganglia、Graphite、Influx、JMX、NewRelic、Pro...

2019-09-27 15:34:42 573

原创 netty总结

IO网络相关I/0 操作 主要分成两部分① 数据准备,将数据加载到内核缓存② 将内核缓存中的数据加载到用户缓存I/O的四种模型Synchronous blocking I/OSynchronous non-blocking I/OAsynchronous blocking I/OAsynchronous non-blocking I/O...

2019-03-04 00:45:13 132

原创 rabbitmq简介

基础简介基本概念AMQPAMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。RabbitMQ是一个开源的AMQP实现,服务...

2019-03-03 19:31:35 160

原创 线程和并发(三)阻塞队列和线程池

concurrent之atomic相关概述java.util.concurrent.atomic原子操作类包里面提供了一组原子变量类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个另一个线程进入,这只是一种逻...

2019-03-02 22:05:43 187

原创 线程和并发(二)lock锁相关

concurrent包概述concurrent包结构concurrent包类图结构concurrent包综述综述: 在整个并发包设计上,Doug Lea大师采用了3.1 Concurrent包整体架构的三层结构 补充: 并发包所涉及的内容笔者会陆续推出对应番进行阐述,敬请期待(进度视笔者的忙碌程度而定)1.底层-硬件指令支持综述:并发包最底层是依赖于硬件级...

2019-03-02 12:39:07 420

原创 zookeeper总结

ZK简介zk背景zookeeper实际上是yahoo开发的,用于分布式中一致性处理的框架。最初其作为研发Hadoop时的副产品。由于分布式系统中一致性处理较为困难,其他的分布式系统没有必要费劲重复造轮子,故随后的分布式系统中大量应用了zookeeper,以至于zookeeper成为了各种分布式系统的基础组件。著名的hadoop、kafka、dubbo 都是基于zookeeper而构建。...

2019-03-01 00:34:06 94

原创 Linux基础(一)

Linux基础用户模式和内核模式MS-DOS等操作系统在单一的CPU模式下运行,但是一些类Unix的操作系统则使用了双模式,可以有效地实现时间共享。在Linux机器上,CPU要么处于受信任的内核模式,要么处于受限制的用户模式。除了内核本身处于内核模式以外,所有的用户进程都运行在用户模式之中。内核模式的代码可以无限制地访问所有处理器指令集以及全部内存和I/O空间。如果用户模式的进程要享有...

2019-02-28 09:38:44 322

原创 java基础(二)

反射反射的原理基本原理java的反射(java.lang.reflect)其实就是为了解决java自身作为静态语言的不足之处,它允许用户在运行时期动态的生成对象并且访问对象的成员,因为作为java语言本身而言通常情况下是在代码进行编译的时候生成相应的class文件,class文件反应的就是java类内部执行的流程和包涵的成员,java虚拟机加载的就是class文件,new一个对象也就是...

2019-02-26 21:27:08 94

原创 java 基础(一)

java语法抽象类和接口的区别抽象类和接口的对比 什么时候使用抽象类或接口如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。 如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。 如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要...

2019-02-26 09:15:27 485

原创 分布式事务

分布式事务相关概念背景一般来说,数据库事务正确执行的四个基本要素的缩写(ACID):原子性(Autmic):一个原子事务要么完整执行,要么干脆不执行。也就是说,工作单元中的每项任务都必须正确执行,如果有任一任务执行失败,则整个事务就会被终止并且此前对数据所作的任何修改都将被撤销。 如果所有任务都被成功执行,事务就会被提交,那么对数据所作的修改将会是永久性的 一致性(Consiste...

2019-02-21 23:39:26 158

原创 Spring总结

基础概述概述Spring是一个轻量级的Java开源框架,是为了简化企业级系统开发而诞生的。Spring的核心是控制反转(IOC)和面向切面编程(AOP)。主要有以下几个特点:轻量:从大小和开销两方面而言Spring都是轻量的 控制反转:应用IOC,一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象 面向切面:Spring将业务逻辑从系统服务中分离...

2019-02-20 21:34:13 277

原创 线程和并发(一)

线程基础知识线程基本概念进程进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销。Linux系统函数fork()可以在父进程中创建一个子进程,这样的话...

2019-02-17 11:09:29 650

原创 Redis总结

Redis概述什么是redisredis(REmote DIctionary Server)是一个由Salvatore Sanfilippo写key-value存储系统,它由C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value类型的数据库,并提供多种语言的API。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、li...

2019-02-14 20:27:38 210

原创 JVM理解(三)类加载

类加载过程我们把Java的类加载过程分为三个主要步骤:加载、链接、初始化。链接阶段又包括验证、准备、解析三个过程。上图中,加载、验证、准备、初始化、卸载这个5个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班的开始,而解析阶段则不一定,它在某种情况下可以在初始化阶段之后再开始,这是为了支持Java语言的运行时绑定(也称为动态绑定或者晚绑定)。加载阶段(Lording)它...

2019-02-13 15:52:24 118

原创 JVM理解(二):垃圾回收

目录堆内存结构堆内部结构新生代老年代永久代总结堆外内存分层编译(-XX:+TieredCompilation)OOM垃圾回收四种引用类型强引用软引用弱引用幻象引用(虚引用)判定对象是否存活的方法引用计数算法可达性分析算法垃圾回收算法标记-清除算法复制算法标记-整理算法分代收集算法垃圾回收器Seria...

2019-02-12 01:28:09 171

原创 JVM理解(一):JVM概述

JVM概述什么是JVMJRE(JavaRuntimeEnvironment,Java运行环境),也就是Java平台。所有的Java 程序都要在JRE下才能运行。JDK(Java Development Kit)是程序开发者用来来编译、调试java程序用的开发工具包。JDK的工具也是Java程序,也需要JRE才能运行。为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是 ...

2019-02-11 21:15:02 237

原创 HBASE(三)

客户端高阶API用法过滤器略协处理器用来实现存储过程功能的终端程序(EndPoint)和用来实现触发器功能的观察者(Observers)协处理器家族的关系如下图所示:观察者(Observers):RegionObserver:针对Region的观察者,可以监听关于Region的操作 RegionServerObserver:针对RegionServer的观察者,可...

2019-02-11 01:59:03 241

原创 HBASE (二)

存储结构宏观架构Master: 负责启动的时候分配Region到具体的RegionServer, 执行各种管理操作,比如创建表、修改列族配置、Region的分割和合并。 RegionServer: 存储Region. Region: HBase是一个会自动分片的数据库。一个Region 相当于关系型数据库中表的一个分区。 HDFS: HBase底层的数据载体。 Zookeepe...

2019-02-10 10:30:09 180

原创 ElasticSearch(四)

ElasticSearch管理发现模块(discovery)发现模块有两个作用:选主节点和发现集群的新节点。发现模块配置发现模块可以有多种实现,Zen为默认的实现,它默认使用组播来发现节点。该方式虽然方便,但是在生产环境下可能也会带来一些问题: 1. 可能会有意外节点的加入 2. 组播会产生大量不必要的通处于以上问题,Zen允许使用单播模式。当使用单播时,集群外的节点会...

2019-02-09 17:44:28 137

原创 ElasticSearch(三)

底层索引控制底层存储目录(store directory)该模块主要用来控制索引数据的读写方式,Lucene所有在磁盘上的操作都是通过store模块来处理的。simplefs:最简单的一种实现(基于Java中的RandomAccessFile),对于简单的应用,该store类型足够了,但是该种类型的瓶颈主要在多线程读写.对于负责的应用,性能会很糟糕。 在Elasticsearch中,通...

2019-02-09 10:39:05 1569

原创 ElasticSearch(二)

目录ElasticSearch基础ElasticSearch工作流程启动流程故障检测查询DSL进阶检测模型布尔检测模型tf-idf检测模型向量空间模型概率检索模型查询改写过滤器过滤器的作用工作原理性能考量后置过滤和过滤查询查询的分类查询方法基本查询组合查询无分析查询全文检索查询模式匹配查询支持相似度查询...

2019-02-03 22:05:43 252

原创 Java中泛型T和Class<T>的理解

Class类Class类的实例表示Java应用运行时的类(class ans enum)或接口(interface and annotation)(每个Java类运行时都在JVM里表现为一个Class对象,可通过类名.class,类型.getClass(),Class.forName("类名")等方法获取Class对象)。数组同样也被映射为为Class对象的一个类,所有具有相同元素类型和维数的...

2019-02-01 12:50:04 6301 1

原创 强引用、软引用、弱引用、幻象引用

在java语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象。不同的引用类型,主要体现的是对象不同的可达性(reachable)状态和对垃圾收集的影响。强引用(Strong Reference):最常见的普通对象引用,只要还有强引用指向一个对象,就能表明对象还活着,垃圾收集器不会碰这种对象。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域,...

2019-02-01 12:47:57 53

原创 activiti工作流简介

 工作流简介工作流定义工作流:    就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。工作流管理系统(Workflow Management System, WfMS):    工作流管理系统是一个软件系统,它完成工作量的定义...

2019-02-01 12:45:50 15755

原创 二叉堆/二项堆/斐波那契堆

二叉堆二叉树二叉树:是树的一种,主要的特点是二叉树的所有节点最多只有两个叶节点。除此之外没有别的要求 完全二叉树:就是在二叉树当中,除了最后一层之外,所有层的节点都有满的,且最后一层的节点也是从左到右的。优先填满左边的节点。 满二叉树:又是一种特殊的完全二叉树,满二叉树的最后一层也是满的。也就是说,除了最后一层的节点外所有的节点都有两个子节点,满二叉树的第i层节点数量为2^(i-1...

2019-02-01 12:44:38 5212 1

原创 TiDB和Mysql的sql差异总结

简介根据网上一些使用案例列出目前TiDB和mysql在使用上的区别和目前的遇到的常见问题及解决方案,当然具体的使用问题还需要大量的线下测试才能确认。 问题类型 问题描述 原因及解决办法 DDL 在一个 DDL 里不能对多个列或者多个索引做操作。 ADD/DROP INDEX/COLUMN 操作目前不支持同时创建或删除多个索引或列, 需要拆分单...

2019-02-01 12:42:49 16890 1

原创 TiDB学习(一)

TiDB基本介绍组件TiDB 集群有三大组件构成:TiDB Server、PD Server、TiKV Server(图 1)。 其中各个组件的功能如下: TiDB Server,可以理解为 SQL Layer,负责接收 SQL 请求,处理 SQL 解析、SQL 优化等相关逻辑,并通过 PD 与底层 TiKV 交互来获取或变更数据; PD Server,可以视作...

2019-02-01 12:02:27 2009

原创 spring cache学习

缓存简介工作机制是:先从缓存中读取数据,如果没有再从慢速设备上读取实际数据(数据也会存入缓存);缓存什么:那些经常读取且不经常修改的数据/那些昂贵(CPU/IO)的且对于相同的请求有相同的计算结果的数据。如CPU--L1/L2--内存–磁盘就是一个典型的例子,CPU需要数据时先从L1/L2中读取,如果没有到内存中找,如果还没有会到磁盘上找。还有如用过Maven的朋友都应该知道,我们找依...

2019-02-01 12:01:16 100

原创 Mysql学习(一)

MySQL逻辑架构基本架构  如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器。下图展示了MySQL的逻辑架构图。MySQL逻辑架构整体分为三层,最上层为客户端层,并非MySQL所独有,诸如:连接处理、授权认证、安全等功能均在这一层处理。  MySQL大多数核心服务均在中间这一层,包括查询解析、分析、优化、缓存、内置函数(比如:时间...

2019-02-01 12:00:00 227

原创 HBASE简介(一)

 HBASE简介(一)关系型数据库的不足不擅长的处理:1. 大量数据的写入处理2. 为有数据更新的表做索引或表结构(schema)变更3. 字段不固定时应用4. 对简单查询需要快速返回结果的处理 NoSQL数据库NoSQL数据库通常不支持Join处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写...

2019-02-01 11:58:40 218

原创 ElasticSearch(一)

ElasticSearch简介基本介绍Elastic search 是一个基于Lucene(一个开源的全文搜索引擎工具包)构建的开源、分布式、RESTful接口全文搜索引擎。es还是一个分布式文档数据库,可以扩展至数以百计的服务器存储和处理PB(1024TB)级的数据。Elasticsearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(...

2019-02-01 11:56:19 666

转载 1 Java引用介绍

Java引用总结--StrongReference、SoftReference、WeakReference、PhantomReferenceJava引用总结--StrongReference、SoftReference、WeakReference、PhantomReference  1 Java引用介绍   Java从1.2版本开始引入了4种引用,这4种引用的级别由

2017-05-14 11:11:40 215

转载 JavaIO总结

JavaIO总结  版本修改内容日期修改人V1.0原始版本2013-02-24skywang      1 Java IO版本Java库的IO分为输入/输出两部分。早期的Java 1.0版

2017-05-14 10:55:06 207

转载 二叉树的常见问题及其解决程序

二叉树的常见问题有如下几个,如果解决好了,就跟链表一样轻松:唯一不一样的是,二叉树是非线性结构。常见的问题如下:二叉树的问题    二叉树的问题      1.二叉树三种遍历(traversal)方式:      2.怎样从顶部开始逐层打印二叉树结点数据      3.如何判断一棵二叉树是否是平衡二叉树      4.设计一个算法,找出二叉树上任意两个节点的最近共同父结

2017-05-14 10:09:42 911

转载 面试中的二叉树问题总结【Java版】

面试中的二叉树问题总结【Java版】2014-10-16 13:42 3718人阅读 评论(0)收藏举报本文章已收录于:分类: 数据结构(6) 作者同类文章X•二叉树的常见问题及其解决程序•hash_set哈希集合容器•list和vector有什么区别?•经典面试题:设计包含min函数的栈,O(1)

2017-05-14 10:08:30 785

转载 java 链表、栈、队列、树的实现

最近无意中翻到一本书,闲来无事写几行代码,实现几种常用的数据结构,以备后查。一、线性表(链表)1、节点定义[java] view plain copyprint?/**链表节点定义  * @author colonel  *  */  class Node {      public int data;      Node next=null

2017-05-14 10:07:17 253

转载 深入浅出Zookeeper

能找到的一些zookeeper的资料一上来不是扯一通paxos算法就是一大坨一大坨的代码。很多人对zookeeper更多的是听过,所以这一篇文章就尝试用尽可能用精简的语言科普zookeeper。zookeeper是什么网上的定义:zookeeper作为一个开源的分布式应用协调系统,作为一个正常人我看完这句话之后是——懵逼。理解一个工具最好的办法是问它解决什么问题的,举个例子:微服...

2017-05-12 17:19:21 435

转载 Paxos算法与Zookeeper分析

Paxos算法与Zookeeper分析2013-09-02 21:31 39608人阅读 评论(9)收藏举报本文章已收录于:分类: ZooKeeper(10) 作者同类文章X分布式应用(3) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。

2017-05-12 16:03:44 238

转载 二阶段提交,三阶段提交,Paxos

二阶段提交,三阶段提交,Paxos标签: 分布式一致性算法 2017-02-08 10:17 242人阅读 评论(0)收藏举报本文章已收录于:分类: 分布式一致性算法 目录(?)[+]    2PC 分布式事务    准备阶段    提交阶段    3PCCanCommit阶段Pre

2017-05-12 15:44:07 827

转载 ORACLE事物隔离级别

1、Read committed (Default)Oracle最低的隔离级别是Read committed,它有如下特性:这是ORACLE缺省的事务隔离级别。事务中的每一条语句都遵从语句级的读一致性。保证不会脏读;但可能出现非重复读和幻像。可能有些人会奇怪,Oracle最低的隔离级别怎么不是Read uncommitted呢?因为Oracle有undo,它

2017-05-12 15:32:53 257

空空如也

空空如也

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

TA关注的人

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