自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (14)
  • 收藏
  • 关注

原创 Spring 源码解析之DispatcherServlet源码解析(五)

Spring 源码解析之DispatcherServlet源码解析(五)前言本文需要有前四篇文章的基础,才能够清晰易懂,有兴趣可以先看看详细的流程,这篇文章可以说是第一篇文章,也可以说是前四篇文章的的汇总,Spring的整个请求流程都是围绕着DispatcherServlet进行的类结构图根据类的结构来说DispatcherServlet本身也是继承

2017-09-28 09:20:31 242

原创 Spring 源码解析之ViewResolver源码解析(四)

Spring 源码解析之ViewResolver源码解析(四)1 ViewResolver类功能解析1.1 ViewResolverInterface to be implemented by objects that can resolve views by name. View state doesn’t change during the running of

2017-09-28 09:19:20 427

原创 Spring 源码解析之HandlerAdapter源码解析(三)

Spring 源码解析之HandlerAdapter源码解析(三)前言这篇文章主要是解决上篇遗留的问题,主要是因为内容比较多Spring 源码解析之HandlerAdapter源码解析(二)遗留问题1. WebAsyncManager 和AsyncWebRequest 这些都是异步请求的管理?先来看看使用的方式上有什么不同 @Re

2017-09-28 09:18:26 214

原创 Spring 源码解析之HandlerAdapter源码解析(二)

Spring 源码解析之HandlerAdapter源码解析(二)前言看这篇之前需要有Spring 源码解析之HandlerMapping源码解析(一)这篇的基础,这篇主要是把请求流程中的调用controller流程单独拿出来了解决上篇文章遗留的问题getHandler(processedRequest) 这个方法是如何查找到对应处理的HandlerExec

2017-09-28 09:17:28 236

原创 Spring 源码解析之HandlerMapping源码解析(一)

Spring 源码解析之HandlerMapping源码解析(一)前言这个是spring源码解析的第一篇,全文围绕着DispatcherServlet进行展开,Spring 的初始化基本都是通过DispatcherServlet进行初始化的,Spring boot除外,Spring boot是先初始化一个容器之后再初始化的DispatcherServlet,本文首先介绍Spri

2017-09-28 09:15:58 403

原创 《Java虚拟机原理图解》 1.2.2、Class文件中的常量池详解(上)

NO1.常量池在class文件的什么位置?          我的上一篇文章《Java虚拟机原理图解》 1、class文件基本组织结构中已经提到了class的文件结构,在class文件中的魔数、副版本号、主版本之后,紧接着就是常量池的数据区域了,如下图用红线包括的位置:       知道了常量池的位置后,然后让我们来揭秘常量池里究竟有什么东西吧~

2017-09-27 14:32:01 441

原创 《Spring设计思想》AOP实现原理(基于JDK和基于CGLIB)

0、前言     在上篇文章《Spring设计思想》AOP设计基本原理 中阐述了Spring AOP 的基本原理以及基本机制,本文将深入源码,详细阐述整个Spring AOP实现的整个过程。    读完本文,你将了解到:1、Spring内部创建代理对象的过程2、Spring AOP的核心---ProxyFactoryBean3、基于J

2017-09-27 10:25:49 263

原创 Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)

class文件简介及加载     Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:      class字节码文件是根据JVM虚拟机规范中规定的

2017-09-27 10:21:03 211

原创 《Spring设计思想》AOP设计基本原理

0、前言Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Spring AOP。读完本文,你将了解到:1.    Java程序运行在JVM中的特征2.    Java程序的执行流【了解AOP、连接点(Join Poi

2017-09-27 09:50:28 235

原创 《Java虚拟机原理图解》 1.1、class文件基本组织结构

作为Java程序猿,我们知道,我们写好的.java 源代码,最后会被Java编译器编译成后缀为.class的文件,该类型的文件是由字节组成的文件,又叫字节码文件。那么,class字节码文件里面到底是有什么呢?它又是怎样组织的呢?让我们先来大概了解一下他的组成结构吧。NO1. 魔数(magic)      所有的由Java编译器编译而成的class文件的前

2017-09-27 09:16:08 216

原创 使用Spring Session和Redis解决分布式Session跨域共享问题

前言对于分布式使用Nginx+Tomcat实现负载均衡,最常用的均衡算法有IP_Hash、轮训、根据权重、随机等。不管对于哪一种负载均衡算法,由于Nginx对不同的请求分发到某一个Tomcat,Tomcat在运行的时候分别是不同的容器里,因此会出现session不同步或者丢失的问题。实际上实现Session共享的方案很多,其中一种常用的就是使用Tomcat、Jetty等服务器提供的

2017-09-26 10:38:43 358

原创 使用Redis存储Nginx+Tomcat负载均衡集群的Session

一、背景在使用Nginx+Tomcat实现负载均衡的时候,由于Nginx对不同的请求分发到某一个Tomcat,Tomcat在运行的时候分别是不同的容器里,因为会出现session不同步或者丢失的问题。二、Nginx安装与配置1、Nginx安装网上的资源对于安装Nginx的介绍比较多,例如最简单的为:(1) 获取nginx,在http://nginx.org/do

2017-09-26 10:34:52 274

原创 Centos7.0 安装Redis 3.2.1详细过程和使用常见问题

Redis的安装与启动这里我把Redis放在/home/xuliugen/software/下,所以在该目录下执行下列命令:$ wget http://download.redis.io/releases/redis-3.2.1.tar.gz$ tar xzf redis-3.2.1.tar.gz$ cd redis-3.2.1$ make1234至此Redis已经安装完

2017-09-26 10:23:25 307

原创 配置maven私服nexus

1、Nexus简介1.1 Nexus概述Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus使 用ExtJS来开发界面,利用Re

2017-09-26 09:08:52 342

原创 收集的MySQL的面试题分享给大家

1、如何登陆mysql数据库mysql -u username -p2、如何开启/关闭mysql服务service mysql start/stop3、查看mysql的状态service mysql status4、如何显示数所有数据库show databases5、如何获取表内所有字段对象的名称和类型describe tab

2017-09-26 09:07:20 233

原创 数据库语言分类DDL DCL DML 知多少?

DML(Data Manipulation Language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL(Data Definition Language): DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表

2017-09-26 09:06:21 333

原创 探索数据库的事务隔离级别

事务的基本要素先简单复习一下事务的四个基本要素:ACID原子性:整个事务中的操作,要么全部完成, 要么全部不完成(全部撤销)。一致性:事务开始之前和结束之后,数据库的完整性没有遭到破坏。隔离性:在同一时间,只允许一个事务请求同一数据。持久性:事务完成以后,该事务对数据库所做的操作持久化在数据库中,并不会被回滚。事务中经常出现的

2017-09-26 09:04:49 237

原创 Github进行fork后如何与原仓库同步

我们在进行Github协同开发的时候,往往会去fork一个仓库到自己的Github中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Github本身并没有自动进行同步的机制,这个需要我们手动去执行,现在我来演示一下如何进行自己的仓库和原仓库进行Gith同步的操作。(1)我使用终端 命令行的方式在Mac中来操作。首先在终端中配置原仓库的位置。进入项目目录,执行如下命令:查看你的远程

2017-09-25 19:59:06 241

原创 19个MySQL性能优化要点解析

1、为查询优化你的查询大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的示例:

2017-09-25 09:42:42 183

原创 大型网站应用之海量数据和高并发解决方案总结一二

一、网站应用背景开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访问性能,当然,也要考虑成本的问题。当问题的规模在经济条件下通过堆硬件的方式解决不了的时候,我们应该通过其他的思路去解决问题,互联网发展至今,已经提供了很多成熟的解决方案,但并不是都具有适

2017-09-25 09:39:26 434

原创 Nginx初探

一、 概念Nginx——Ngine X,是一款自由的、开源的、高性能HTTP服务器和反向代理服务器;也是一个IMAP、POP3、SMTP代理服务器;也就是说Nginx本身就可以托管网站(类似于Tomcat一样),进行Http服务处理,也可以作为反向代理服务器使用。Nginx 解决了服务器的C10K(就是在一秒之内连接客户端的数目为10k即1万)问题。它的设计不像传统的服务器那样使用

2017-09-25 09:29:31 320

原创 10K 问题的解决

10K 问题的解决:一个系统管理员如何管理 2000x 台服务器什么是 10K 问题?在 1999 年,Dan Kegel 向网络服务器提出了一个骇人听闻的难题:是时候让网络服务器去同时应对 10000 个客户端了,你觉得呢?毕竟网络已经变得很普及了。这就是著名的 C10K 问题。 通过改善操作系统内核

2017-09-25 09:22:08 3033

原创 Solr与MySQL查询性能对比

Solr与MySQL查询性能对比本文简单对比下Solr与MySQL的查询性能速度。测试数据量:10407608     Num Docs: 10407608这里对MySQL的查询时间都包含了从MySQL Server获取数据的时间。在项目中一个最常用的查询,查询某段时间内的数据,SQL查询获取数据,30s左右SELECT *

2017-09-25 09:19:03 732

原创 MySQL批量SQL插入各种性能优化

对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,每天花费在数据导入上的时间可能会长达几个小时或十几个小时之久。因此,优化数据库插入性能是很有意义的。 经过对MySQL innodb的一些性能测试,发现一些可以提高insert效率的方法,供大家参考参考。1、一条SQL语句插入多条数据。常用的插入语句如:INSERT INTO

2017-09-25 09:17:21 166

原创 在一个千万级的数据库查寻中,如何提高查询效率?

在一个千万级的数据库查寻中,如何提高查询效率?1)数据库设计方面: a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 b. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置

2017-09-25 09:15:19 262

原创 MySQL开发规范与使用技巧总结

1.命名规范1.库名、表名、字段名必须使用小写字母,并采用下划线分割。 a)MySQL有配置参数lower_case_table_names,不可动态更改,linux系统默认为 0,即库表名以实际情况存储,大小写敏感。如果是1,以小写存储,大小写不敏感。如果是2,以实际情况存储,但以小写比较。 b)如果大小写混合使用,可能存在abc,Abc,ABC等多个表共存,容易导致混乱。 

2017-09-25 09:11:31 236

原创 深入解读缓存(二)——一致性Hash算法

缓存策略常见的策略有求留余数法和一致性Hash算法。缓存的本质是一个内存Hash表,网站应用中,数据缓存以一对Key、Value的形式存储在内存Hash表中。计算KV对中Key的HashCode对应的Hash表索引,可快速访问Hash表中的数据。我们可以理解为:HashCode,就是该对象的唯一标识。求留余数法求留余数法,是最简单的一种计算策

2017-09-25 09:08:00 267

原创 深入解读缓存(一)——缓存的力量

应用服务器的性能优化,是网站开发最复杂,变化最多的地方。优化的手段,主要有:缓存、集群、异步等等。从今天起,我们就来讲讲缓存。首先,我们来看几个例子:1、淘宝卖家浏览的商品集中在少部分 成交数多、评价良好的商品上;2、百度搜索关键词集中在少部分热门词汇上;3、只有经常登录的用户才会发微博、看微博,而这部分用户也只占总用户数目的一小部分。缓存的基本

2017-09-25 09:04:35 332

原创 数据库索引的作用和优点缺点以及索引的11中用法

为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。 第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。 第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 第五,通过使用索引

2017-09-25 09:00:54 451

原创 数据库索引的实现原理

数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时

2017-09-25 08:59:37 279

原创 MySQL主从复制的常见拓扑、原理分析以及如何提高主从复制的效率总结

一、Mysql 主从复制的常用拓扑结构1.1、一主一从是最基础的复制结构,用来分担之前单台数据库服务器的压力,可以进行读写分离。1.2、一主多从一台 Slave 承受不住读请求压力时,可以添加多台,进行负载均衡,分散读压力。还可以对多台 Slave 进行分工,服务于不同的系统,例如一部分 Slave 负责网站前台的读请求,另一部分 Slave

2017-09-22 16:51:00 283

原创 使用Spring AOP实现MySQL数据库读写分离案例分析

一、前言分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量。在进行数据库读写分离的时候,我们首先要进行数据库的主从配置,最简单的是一台Master和一台Slave(大型网站系统的话,当然会很复杂,这里只是分析了最简单的情况)。通过主从配置主从数据库保持了相同的数据,我们在进行读操作的时候访问从数

2017-09-22 10:34:49 703

原创 使用mysqlreplicate命令快速搭建 Mysql 主从复制

MySQL的Replication(英文为复制)是一个多MySQL数据库做主从同步的方案,特点是异步复制,广泛用在各种对MySQL有更高性能、更高可靠性要求的场合。与之对应的是另一个同步技术是MySQL Cluster,但因为MySQL Cluster配置比较复杂,所以使用者较少。(可参考:http://blog.csdn.net/xlgen157387/article/details/5

2017-09-22 10:25:41 230

原创 数据库-面试题(持续更新)

1. MySQL查询时,只有满足联接条件的记录才包含在查询结果,这种联接是(内联接)。内联接:典型的联接运算,使用像 = 或 外联接:外联接可以是左向外联接、右向外联接或完整外部联接。 在FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:LEFT JOIN 或 LEFT OUTER JOIN 左向外联接的结果集包括 LEFT OUTER 子句中指定的左表

2017-09-22 10:15:42 433

原创 zookeeper 安装 windows环境

1.   概述ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。  2.   安装&配置在apache的官方网站提供了好多镜像下载地址,然后找到对应的版本,目前最新的是3.3

2017-09-22 09:07:29 406

原创 MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解

安装环境操作系统 :CentOS 6.5 数据库版本:MySQL 5.6.27主机A:192.168.1.1 (Master)主机B:192.168.1.2 (Slave)1234这里强调的数据库的版本,是因为MySQL在5.6之前和之后的安装方式是不一样的。 本人在进行配置的时候,也遇到了这个坑,这里提前说明,希望大家不要采坑。基本环境配置首先,

2017-09-21 10:10:25 446

原创 大型分布式数据库中间件MyCat的安装与使用

官网资料MyCat官网:http://www.mycat.io/MyCat权威指南:http://www.mycat.io/document/Mycat_V1.6.0.pdfMyCat下载地址:http://dl.mycat.io/MyCat下载下载之后解压为如下:MySQL环境搭建1、MySQL主机地址:192.168.1.235、

2017-09-21 10:05:13 200

原创 TCP的三次握手(建立连接)和四次挥手(关闭连接)详解

建立连接理解: 1、TCP的流量控制 2、TCP使用窗口机制进行流量控制 3、什么是窗口? 连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端接收方发送的确认信息中包含了自己剩余的缓冲区尺寸剩余缓冲区空间的数量叫做窗口 4、滑动窗口 5、TCP的流控过程(滑动窗口)  6、TCP(Transmission Control Prot

2017-09-21 09:40:15 1610

原创 Java面试题集(136-150)

136、给出下面的二叉树先序、中序、后序遍历的序列?答:先序序列:ABDEGHCF;中序序列:DBGEHACF;后序序列:DGHEBFCA。补充:二叉树也称为二分树,它是树形结构的一种,其特点是每个结点至多有二棵子树,并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树的遍历序列按照访问根节点的顺序分为先序(先访问根节点,接下来先序访问左子树,再先序访问右子树)、中序(先

2017-09-21 09:15:16 271

原创 Java面试题集(131-135)

131、请对以下Java EE中的名词进行解释答:容器:容器为Java EE应用程序组件提供了运行时支持。容器提供了一份从底层Java EE API到应用程序组件的联合视图。Java EE应用程序组件不能直接地与其它Java EE应用程序组件交互。它们通过容器的协议和方法来达成它们之间以及它们与平台服务之间的交互。在应用程序组件和Java EE服务之间插入一个容器,这允许该容器透明

2017-09-21 09:13:39 172

物流跟踪查询快递鸟

java实现物流跟踪查询。Demo写好了,测试方法有两个参数。1:物流公司的简称(SF),2:需要查询的物流单号。你们需要申请物流接口的商户Id和api key值,申请步骤word文档有详细介绍

2018-10-07

IKAnalyzer2012

IKAnalyzer2012_u3

2017-10-30

IKAnalyzer2012_u3

IKAnalyzer2012_u3

2017-10-30

sessionDemo.zip

用于测试Nginx分发请求的案例demo

2017-09-26

tomcat-redis-session.zip

使用tomcat-redis-session-manager开源框架实现使用Redis存储Nginx+Tomcat负载均衡集群的Session所需要的3个jar:tomcat-redis-session-1.0-SNAPSHOT.jar、jedis-2.7.2.jar、commons-pool2-2.0.jar

2017-09-26

HiJson 2.1.2_jdk64

json 离线格式化工具

2017-09-14

JAVA利用HttpClient进行HTTPS接口调用

JAVA利用HttpClient进行HTTPS接口调用

2017-09-14

Java数据结构和算法

Java数据结构和算法

2017-09-14

python-3.6.0-amd64.exe

python-3.6.0-amd64.exe

2017-09-13

jdk1.8中文api

jdk1.8中文api

2017-08-30

pcre-8.39.tar.gz

pcre-8.39.tar.gz

2017-08-18

mybatis-spring-1.3.1

mybatis-spring-1.3.1

2017-05-19

apache-activemq-5.9.0-bin.zip

apache-activemq-5.9.0-bin.zip

2017-05-16

TortoiseGit-1.8.14.0_64bit.

TortoiseGit-1.8.14.0_64bit

2017-05-16

空空如也

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

TA关注的人

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