自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(291)
  • 资源 (16)
  • 收藏
  • 关注

转载 mysql

InnoDB是事务安全的存储引擎,设计上借鉴了很多Oracle的架构思想,一般而言,在OLTP应用中,InnoDB应该作为核心应用表的首先存储引擎。InnoDB是由第三方的Innobase Oy公司开发,现已被oracle收购,创始人是Heikki Tuuri,芬兰赫尔辛基人,和著名的Linux创始人Linus是校友。InnoDB体系架构上面是InnoDB的一个简图

2017-09-01 15:36:28 597

转载 mybatis 原理

MyBatis是目前非常流行的ORM框架,它的功能很强大,然而其实现却比较简单、优雅。本文主要讲述MyBatis的架构设计思路,并且讨论MyBatis的几个核心部件,然后结合一个select查询实例,深入代码,来探究MyBatis的实现。一、MyBatis的框架设计        注:上图很大程度上参考了iteye 上的chenjc_it   所写的博文原理分析之二:框架整体设

2017-09-01 10:38:34 817

转载 fork出的子进程和父进程

一、fork后的父子进程由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程(子进程)的进程 id。将子进程id返回给父进程的理由是:因为一个进程的子进程可以多于一个,没有一个函数使一个进程可以获得其所有子进程的进程id。对子进程来说,之所以fork返回0给它,是因为它随时可以调用

2017-08-08 13:55:57 9615 1

转载 jit即时编译

WeiboGoogle+用电子邮件发送本页面JIT 是 just in time 的缩写, 也就是即时编译编译器。使用即时编译器技术,能够加速 Java 程序的执行速度。下面,就对该编译器技术做个简单的讲解。首先,我们大家都知道,通常通过 javac 将程序源代码编译,转换成 java 字节码,JVM 通过解释字节码将其翻译成对应的机器指令,逐条读入

2017-07-19 16:03:10 1317 1

转载 bio aio nio

转载请注明出处:http://blog.csdn.net/anxpp/article/details/51512200,谢谢!    本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解。    下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端。    代码的所有说明,都直接作为注释,嵌入到代码中,看代码时就

2017-07-18 13:53:17 1028

转载 redis存储结构

Base 2.8.7Redis是一个包含了很多Key-Value对的大字典,这个字典支持的Value非常丰富,可以为字符串、哈希表、列表、集合和有序集,基于这些类型丰富的value,扩展出了功能强大的操作,例如hmset、lpush、sadd等字典字典是Redis最基础的数据结构,一个字典即一个DB,Redis支持多DBRedis字典采用Hash表实现,针对碰撞问题,其采用的方

2017-06-19 19:05:41 1195

转载 美团推荐系统

沈国阳:美团推荐系统整体框架与关键工作http://www.csdn.net/article/2015-08-13/2825455摘要:美团推荐与个性化团队技术经理沈国阳来到CSDN在线视频分享平台,为我们深度解析美团本地生活服务推荐的工作经验,并与群友进行互动交流。沈国阳重点介绍了美团推荐系统的架构和特色,以及在排序层面的主要工作。8月11日晚20

2017-06-12 17:48:25 5579

转载 git detached 解决

HEAD DETACHED push origin失败问题先说HEADHEAD是一个头指针,通常情况下指向不同的分支,每个分支对应一个commit(准确的说,每个分支对应多个commit,但是只有一个顶层的commit,而commit之间是简单的线性关系。)git checkout 其实是修改HEAD文件的内容,让它指向不同的分支。下面是一个一般的情况:HEAD

2017-06-12 14:23:37 3681

转载 mllib 假设检验

Spark中组件Mllib的学习之基础概念篇 1解释 参考【4】的博文讲的比较清楚了,只是里面有些错误。 定义卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,卡方值越大,越不符合;卡方值越小,偏差越小,越趋于符合,若两个值完全相等时,卡方值就为0,表明理论值完全符合。(1)提出原假设: H0:总体X的

2017-06-02 13:47:21 529

转载 Scala 强大的集合数据操作示例

Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为例子,介绍常见的集合变换操作。一、常用操作符(操作符其实也是函数)++ ++[B](that: GenTraversableOnce[B]): List[B] 从列表的尾部添加另外一个

2017-05-31 13:55:08 1046

转载 log 输出日志

logback系列之一:输出日志到控制台 logback系列之二:输出日志到文件 logback系列之三:输出日志到文件(滚动) logback系列之四:输出日志到不同文件 为了方便查看和归档: 不同包的日志可能要放到不同的文件中,如service层和dao层的日志; 不同日志级别:调试、信息、警告和错误等也要分文件输出。 一、根据包输出,通过logger的

2017-05-27 16:58:42 5850

转载 spring boot注解及启动过程

转自http://blog.csdn.net/isea533/article/details/50278205点击打开链接Spring Boot 入门spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让Java开发也能够实现Ruby on Rails那样的生

2017-05-24 15:59:27 4419

原创 SpringBoot 启动解析

前面几章我们见识了SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏。所以这次博主就跟你们一起一步步揭开SpringBoot的神秘面纱,让它不在神秘。正文我们开发任何一个Spring Boot项目,都会用到如下的启动类@SpringBootApplicationpublic class A

2017-05-24 15:53:54 1504

转载 RabbitMQ和kafka从几个角度简单的对比

在应用场景方面,RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上。kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。1)在架构模型方面,RabbitMQ遵循AMQP协议,RabbitMQ的broker由Exchange,Bind

2017-05-22 11:45:15 1094

转载 linux 零拷贝

零拷贝技术的相关背景知识传统的 Linux 操作系统的标准 I/O 接口是基于数据拷贝操作的,即 I/O 操作会导致数据在操作系统内核地址空间的缓冲区和应用程序地址空间定义的缓冲区之间进行传输,这样做最大的好处是可以减少实际的物理磁盘 I/O 操作。但是数据传输过程中的数据拷贝操作却导致了极大的 CPU 开销,限制了操作系统有效进行数据传输操作的能力。简单一点来说,零拷贝就是一种避

2017-05-22 09:54:47 402

转载 分布式消息系统:Kafka

Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转。传统的企业消息系统并不是非常适合大规模的数据处理。为了已在同时搞定在线应用(消

2017-05-19 19:15:49 467

转载 kafka 理解

Apache Kafka与传统消息系统相比,有以下不同:它被设计为一个分布式系统,易于向外扩展;它同时为发布和订阅提供高吞吐量;它支持多订阅者,当失败时能自动平衡消费者;它将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。本文我将重点介绍Apache Kafka的架构、特性和特点,帮助我们理解Kafka为何比传统消息服务更好。

2017-05-19 17:55:35 1146

转载 kafka 理解

问题导读:1.zookeeper在kafka的作用是什么?2.kafka中几乎不允许对消息进行“随机读写”的原因是什么?3.kafka集群consumer和producer状态信息是如何保存的?4.partitions设计的目的的根本原因是什么? 一、入门    1、简介    Kafka is a distributed,partitioned

2017-05-19 17:41:45 416

转载 http协议深入理解

1. 基础概念篇1.1 介绍  HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。其中

2017-05-18 11:10:07 1099

原创 断点续传

一、web及网络基础 1、HTTP的历史 1.1、HTTP的概念: HTTP(Hyper Text Transfer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。 它是一个应用层协议,承载于TCP之上。由请求和响应构成,是一个标准的客户端服务器模型 1.2、HTTP的发展历史: 作为Web文档传输协议的HTTP,它的版

2017-05-18 10:14:17 561

转载 disruptor 解析

disruptor  实例代码:一个仅仅部署在4台服务器上的服务,每秒向Database写入数据超过100万行数据,每分钟产生超过1G的数据。而每台服务器(8核12G)上CPU占用不到100%,load不超过5。这是怎么做到呢?下面将给你描述这个架构,它的核心是一个高效缓冲区设计,我们对它的要求是:1,该缓存区要尽量简单2,尽量避免生产者线程和消费者线程锁3,尽量避

2017-05-17 14:07:10 2357

原创 spring data jps

从一个简单的 JPA 示例开始本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例;接着重构该示例,并引入 Spring 框架,这两部分不会涉及过多的篇幅,如果希望能够深入学习 Spring 和 JPA,可以根据本文最后提供的参考资料进一步学习。自 JPA 伴随 J

2017-05-17 11:12:29 934

转载 spring mvc 的jpa JpaRepository数据层 访问方式汇总

AppleFramework在数据访问控制层采用了Spring Data作为这一层的解决方案,下面就对Spring Data相关知识作一个较为详细的描述。 1.Spring Data所解决的问题 Spring Data :提供了一整套数据访问层(DAO)的解决方案,致力于减少数据访问层(DAO)的开发量。它使用一个叫作Repository的接口类为基础,它被定义为访问底层数据模型的超级接口

2017-05-17 10:27:29 650

原创 java new 内存分配

1.Java的内存机制 Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后(比如,在函数A中调用函数B,在函数B中定义变量a,变量a的作用域只是函数B,在函数B运行完以后,变量a会自动被销毁。分配给它的内存会被回收),

2017-05-16 14:40:41 6187 1

转载 netty 引用计数器 ,垃圾回收

从Netty 4起,对象的生命周期由它们的引用计数来管理,因此,一旦对象不再被引用后,Netty 会将它(或它共享的资源)归还到对象池(或对象分配器)。在垃圾回收和引用队列不能保证这么有效、实时的不可达性检测的情况下,引用计数以牺牲轻微的便利性为代价,提供了 另一种可选的解决方案。 最值得注意的类型是ByteBuf,它正是利用了引用计数来提升内存分配和释放的性能。这一节 将用ByteBuf来讲述引

2017-05-15 16:23:30 6794

转载 Netty系列之Netty高性能之道

阅读内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。1. 背景1.1. 惊人的性能数据事实上,我对这个数据并不感到惊讶,根据我5年多的NIO编程经验,通过选择合适的

2017-05-15 15:22:19 386

转载 Spring事务管理(详解+实例)

标签:写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你

2017-05-15 13:24:00 372

原创 spring 事务处理

一、事务的基本原理spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:获取连接 Connection con = DriverManager.getConnection()开启事务con.setAutoCommit(true/false);执行CRUD提交事务/回滚事

2017-05-15 11:51:38 319

原创 spring 事务

一、事务的基本原理Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:获取连接 Connection con = DriverManager.getConnection()开启事务con.setAutoCommit(true/false);执行CRUD提交事务/回滚事

2017-05-15 10:54:08 258

原创 Spring @Transactional

Spring事务的传播行为 在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。 Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这个例外是unchecked 如果遇到checked意外就不回滚。 如何改变默认规则: 1 让checked

2017-05-15 09:48:11 407

转载 cglib 使用及算理

一、原理      代理为控制要访问的目标对象提供了一种途径。当访问对象时,它引入了一个间接的层。JDK自从1.3版本开始,就引入了动态代理,并且经常被用来动态地创建代理。JDK的动态代理用起来非常简单,当它有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口的继承的类,该怎么办?现在我们可以使用CGLIB包。二、什么是cglib     CGL

2017-05-12 15:57:32 404

转载 JDK动态代理的实现及原理

动态代理,听上去很高大上的技术,在Java里应用广泛,尤其是在hibernate和spring这两种框架里,在AOP,权限控制,事务管理等方面都有动态代理的实现。JDK本身有实现动态代理技术,但是略有限制,即被代理的类必须实现某个接口,否则无法使用JDK自带的动态代理,因此,如果不满足条件,就只能使用另一种更加灵活,功能更加强大的动态代理技术—— CGLIB。Spring里会自动在JDK的代理

2017-05-12 15:35:15 1176

转载 classloader 深入理解

ClassLoader翻译过来就是类加载器,普通的Java开发者其实用到的不多,但对于某些框架开发者来说却非常常见。理解ClassLoader的加载机制,也有利于我们编写出更高效的代码。ClassLoader的具体作用就是将class文件加载到jvm虚拟机中去,程序就可以正确运行了。但是,jvm启动的时候,并不会一次性加载所有的class文件,而是根据需要去动态加载。想想也是的,一次性加载那么多j

2017-05-12 14:02:24 839

转载 classloader 原理分析

一、什么是ClassLoader?         大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件当中,所以经常要从这个class文件中要调用另外一个class文件中的方法,如果另外一个文件不存在

2017-05-12 11:18:34 239

转载 treemap深入理解

TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点:1、红黑树的基本概念。2、红黑树增加节点、删除节点的实现过程。3、红黑树左旋转、右旋转的复杂过程。4、J

2017-05-12 10:59:54 674

原创 HashTable深入理解

有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,value)方法保存起来,然后通过get(key)方法获取相对应的value值。一个是前面提到的HashMap,还有一个就是马上要讲解的HashTable。对于HashTable而言,它在很大程度上和HashMap的实现差不多,如果我们对HashMap比较了解的话,对Has

2017-05-11 17:35:02 744

原创 java提高篇(二四)-----HashSet

在前篇博文中(java提高篇(二三)-----HashMap)详细讲解了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素。所以如果对HashMap比较熟悉,那么HashSet是so easy!!一、定义[java] view plain copy public cl

2017-05-11 17:18:26 215

原创 Java集合---HashMap源码剖析

一、HashMap概述二、HashMap的数据结构三、HashMap源码分析     1、关键属性     2、构造方法     3、存储数据     4、调整大小     5、数据读取                      6、HashMap的性能参数                      7、Fail-Fast机制 一、Has

2017-05-11 17:01:40 317

原创 Collections Rotate详解

Collections类中常用算法之RotateCollections类简介Rotate方法使用Rotate方法源码分析小结Collections类简介Collections类是Java集合框架的一个类,其主要是一些通用的作用于Collection的 算法,如排序,求极值,混淆(shuffle)等。 引用Java官方文档的介绍The polymorp

2017-05-11 11:26:10 3369

原创 list set集合remove() ConcurrentModificationException 原因

方法一、 ArrayList list = new ArrayList();   list.add("one");   list.add("two");   list.add("two");   list.add("two");   list.add("two");   fo

2017-05-11 10:38:50 805

kafka 技术内幕 图文详解Kafka源码设计与实现

kafka 技术内幕 图文详解Kafka源码设计与实现 kafka 源码

2018-04-09

disruptor 实例

disruptor 缓冲队列 高效

2017-05-17

netty 架构剖析 和源码解读

netty 架构剖析 和源码解读

2017-05-16

zookeeper 分布式锁

利用zookeeper 实现分布式锁

2017-05-10

令牌桶Java实现

令牌桶 Java 源码 不限制桶大小

2017-05-05

turbine-web-1.0.0.war

hystrix turbine 服务监控 服务降级

2017-04-12

MySQL编译安装、主从复制的配置(CentOS-6.6+MySQL-5.6)

MySQL编译安装、主从复制的配置(CentOS-6.6+MySQL-5.6)

2017-01-06

Redis集群的安装、高可用测试、扩展测试---带源码

Redis集群的安装、高可用测试、扩展测试---带源码

2017-01-04

ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

ActiveMQ高可用+负载均衡集群的安装、配置、高可用测试

2017-01-03

ActiveMQ的安装与使用

ActiveMQ的安装与使用

2016-12-27

Hudson持续集成服务器的安装与配置

Hudson持续集成服务器的安装与配置

2016-12-27

SonarQube代码质量管理平台的介绍与安装

SonarQube代码质量管理平台的介绍与安装

2016-12-27

svn jsvnadmin 搭建 svn服务器

svn jsvnadmin 搭建 svn服务器

2016-12-27

tomcat 启动 重启 shell 脚本

tomcat 启动 停止 重启 shell 脚本

2016-12-27

redis 单点登录

tomcat redis session manager 实现session共享单点登录

2016-12-23

tika-app-1.0

tika-app-1.0.jar 用于lucene 解析文档

2015-11-09

空空如也

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

TA关注的人

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