自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lmy86263的博客

脱离环境谈问题的都是耍流氓

原创 Hadoop初次体验:各种坑以及解决办法

因为工作和以后课题方向的原因,开始涉及大数据的方向,在大数据的领域,Hadoop无论如何是绕不过去的话题,于是进入这个方向也是着手从Hadoop开始,但是从Hadoop开始,并不代表我们一定要采用它的解决方案,因为现在Hadoop自身各个组件的解耦做得已经才能够当好了,所以说我们可以把某一个组件单...

2017-09-10 21:41:34 1854 1

翻译 第七篇:单体应用重构为微服务

本文是构建微服务系列文章的第七篇,也是最后一篇。第一章介绍了微服务架构模式并讨论了微服务的利弊,之后的文章讨论了微服务架构的不同方面:API网关的使用,进程间通信,服务发现,事件驱动的数据管理以及微服务的部署。在本文中我们将探讨如何将单体应用迁移到微服务架构中。我(指作者)希望这一系列文章能有助于...

2017-08-27 00:43:24 2867 0

原创 关闭数据库外键约束

当向数据库中插入数据的时候,如果有表之间的关系十分复杂,尤其是是存在各种外键关系,这是需要暂时关闭这种针对外键约束的检查,本文针对以下三种数据库进行了一个总结

2017-08-06 19:54:27 5420 1

原创 为什么数据库连接很消耗资源

开发应用程序久了,总想刨根问底,尤其对一些有公共答案的问题。大家都能解释,但是追根究底,都解释不清。凡是都有为什么,而且用数字说明问题是最直观的。 本文主要想探究一下连接数据库的细节,尤其是在Web应用中要使用数据库来连接池,以免每次发送一次请求就重新建立一次连接。对于这个问题,答案都是一致的,建...

2017-07-26 21:19:19 8659 4

翻译 第六篇:微服务部署策略的选择

本文是构建微服务系列文章的第六篇。第一篇介绍了微服务架构模式并讨论了微服务的缺点和优点。之后的文章讨论了微服务架构的不同方面:使用API网关、进程间通信、服务发现机制和事件驱动的数据管理。本文继续了解微服务的部署策略。一、动机部署单体应用意味着要运行一个或者多个极其庞大、复杂的相同应用。一般要提供...

2017-07-23 12:12:52 4378 0

翻译 第五篇:事件驱动的数据管理

本文出自Event-Driven Data Management for Microservices,作者 Chris Richardson, 写于2015年5月19日本文是构建微服务应用系列文章的第五篇。 第一篇文章:介绍微服务架构并讨论了微服务架构的优点和缺点; 第二篇文章和第三篇文章:描述微...

2017-07-16 21:59:58 1902 0

翻译 第四篇:服务发现机制

本文出自Service Discovery in a Microservices Architecture,作者 Chris Richardson, 写于2015年5月19日这是本系列文章的第四篇。 第一篇文章:介绍微服务架构并讨论了微服务架构的优点和缺点; 第二篇文章和第三篇文章:描述微服务之间...

2017-07-15 13:58:45 10999 0

翻译 第三篇:进程间通信

本文出自Inter-Process Communication in a Microservices Architecture,作者 Chris Richardson, 写于2015年5月19日这是该系列的第三篇文章,第一篇文章介绍了微服务架构模式,以及与单体架构模式的比较,并讨论了使用微服务的利...

2017-07-13 23:45:12 2047 0

翻译 第二篇:使用API网关

写在前面的话,这些文章是在NGINX的官方博客中发现的。是关于微服务的一系列的文章,本着好东西共享一下,同时也丰富一下自己,把这些翻译成中文,但是后来发现国内已经有很多人翻译了,我只能说我的品位还不差,和各位大牛步调还算一致,虽然已经有人翻译了,但是本着“一千个读者就有一千个哈姆雷特”的想法继续了...

2017-07-10 22:40:07 4048 0

原创 关于MySQL数据库连接超时问题的分析与解决

操作系统 Windows 10 Enterprise,数据库 MySQL-5.5.16,c3p0-0.9.5.2 关于针对数据库的连接,之前没有特别注意过,直到遇到如下问题: Could not open JDBC Connection for transaction; nested exce...

2017-07-09 08:53:25 22017 2

翻译 第一篇:微服务介绍

写在前面的话,这些文章是在NGINX的官方博客中发现的。是关于微服务的一系列的文章,本着好东西共享一下,同时也丰富一下自己,把这些翻译成中文,但是后来发现国内已经有很多人翻译了,我只能说我的品位还不差,和各位大牛步调还算一致,虽然已经有人翻译了,但是本着“一千个读者就有一千个哈姆雷特”的想法继续了...

2017-07-03 21:35:25 2131 0

原创 MySQL中聚合函数count的使用和性能优化

本文的环境是Windows 10,MySQL版本是5.7.12-log 一、 基本使用count的基本作用是有两个: 统计某个列的数据的数量; 统计结果集的行数; 用来获取满足条件的数据的数量。但是其中有一些与使用中印象不同的情况,比如当count作用一列、多列、以及使用*来表达整行产生的效果是不...

2017-06-24 12:48:02 22709 0

原创 MySQL中distinct的使用方法

本文的环境是Windows 10,MySQL版本是5.7.12-log 一、基本使用distinct一般是用来去除查询结果中的重复记录的,而且这个语句在select、insert、delete和update中只可以在select中使用,具体的语法如下:select distinct express...

2017-06-22 23:13:39 34789 5

原创 还债系列之数据结构——栈和队列

三、栈还记得当初第一次学习编程的时候还是8051单片机中的汇编语言,现在还记得很清楚,当初遇到的一个简单的数据结构就是——栈,对应的汇编语言中的命令是push和pop。这个结构在生活中是有很多类似的例子的,比如水杯、碗等。该结构的特点如下: 最大特点是先进后出、后进先出; 使用一个指针标识栈中元素...

2017-06-12 23:03:18 431 0

原创 从懵逼到恍然大悟之Java中RMI的使用

此处讲的是Java中的RMI,而不是通用意义上的RMI,关于通用的RMI可以参考分布式之RPC的协议以及错误处理 这篇文章。一、Java RMI简介Java RMI用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过...

2017-05-21 10:43:34 56057 11

原创 Java Web基础知识之Servlet容器初始化(无web.xml)

在之前典型的Java Web程序中,部署描述符web.xml是必不可少的,在这里我们需要配置各种组件,包括Servlet、Filter和Listener等,如果使用过SpringMVC的话,应该会对在web.xml中配置org.springframework.web.servlet.Dispatc...

2017-05-08 22:33:03 4074 1

原创 Hibernate的hbm2ddl.auto=update的内幕

在使用Hibernate的时候我们一般都会配置hibernate.hbm2ddl.auto这个属性,而其中的常见的属性值包括: create create-drop validate update 而在使用的过程中,update是我用的比较多的,由于官方文档对于这个属性产生的效果和使用的范围没有做...

2017-05-06 21:47:39 10251 1

原创 maven中静态资源和字节码文件的过滤

本文的方法是针对Maven管理的Java Web工程 静态资源的过滤在maven中,静态资源的过滤使用基本上大家都知道,只需要在<build></build>中使用resources标签即可

2017-05-04 22:13:15 2757 0

原创 理解JMX之介绍和简单使用

近期在项目上需要添加一些功能,想把一个开源工程整合进来,虽说是整合,但是觉得跟开发有查不了多少,要让这个开源工程的编码风格和设计方式与我们的工程保持一致,其中涉及到应用程序的监控和管理,不可避免的要使用JMX,之前简单的了解过JMX,但是没有动力深入去了解其中的原理和编码,由于项目需要,这次针对J...

2017-04-30 23:46:08 43959 4

原创 Hibernate针对Java基本类型字段的映射策略总结

本文使用的数据库测试环境为: MySQL:Windows 10x64 5.7.12-log SQL Server:Windows 10x64 SQL Server 2012 Oracle:Oracle Database 11g Enterprise Edition Rel...

2017-04-29 13:49:24 1115 0

原创 Java Web中使用logback输出日志文件的路径问题

一个软件的日志有多重要,相信当软件出问题,你一行一行去找的时候才会意识到,Clean code, clean logs中提出了10个建议来有效的使用日志。从我自己的经验上来看,从根本不会考虑日志问题,到使用System.out.println(),再到使用slf4j和logback输出时日志到控制...

2017-04-23 13:01:06 19682 3

原创 还债系列之数据结构——数组和链表

读本科的时候,专业没有开数据结构这门课,但是也觉得无所谓,因为直接使用一些框架和Java内置的特性,所以不是很重视数据结构,没有直接面对数据结构的问题,但是随着遇到的问题越来越多,发现如果对数据结构不是很熟悉的话,很多都是无法理解的,甚至出现误解,比如MySQL的索引,简直懵圈!!

2017-04-23 11:16:59 313 0

原创 Hibernate中实体映射时的命名策略(2)

在Hibernate 5.x中,Hibernate将实体名称映射到数据库中时,将这个过程分成两个步骤: 第一个阶段是从对象模型中提取一个合适的逻辑名称,这个逻辑名称可以由用户指定,通过@Column和@Table等注解完成,也可以通过被Hibernate的ImplicitNamingStrateg...

2017-04-03 22:23:29 11188 1

原创 Hibernate结合MySQL数据库生成数据表失败分析

作为一个成熟的ORM框架,Hibernate对不同的数据库的支持可以说非常完美,但是在生成数据库的过程中还是会遇到各种各样的问题,今天在做数据表映射的时候,发现无法生成数据表,具体的开发环境如下:

2017-03-23 21:38:45 512 0

原创 MySQL中delete和truncate的区别和联系

从效果上来看,delete from tableA,与truncate table tableA的作用是一样的,如果delete后面不添加where条件过滤,而且与drop table tableA,接着create table tableA的效果也是相同的。但是本质上,两者是完全不同的。

2017-03-12 22:20:05 1876 0

原创 数据库分页的技巧和坑:SQL Server&MySQL

一直感觉数据库分页是一个很专业的术语,其实就是为了查看数据快一些,方便一些,而将数据库中的数据分批查询,同时也可以理解为在前端展示的时候,数据太多,无法全部展示,只能分成好几个页面展示。其实分页查询的实现不只是以下几种,下面只是自己容易记的方法,但是针对特定的场景性能可能不是最好的,因此需要多加考...

2017-03-12 00:16:58 2104 0

原创 Java中InputStream和String之间的转换方法

在Java中InputStream和String之间的转化十分普遍,本文主要是总结一下转换的各种方法,包括JDK原生提供的,还有一些外部依赖提供的。

2017-03-05 22:09:34 62970 7

原创 Java 运行时动态编译源代码原理和实现

编译,一般来说就是将源代码转换成机器码的过程,比如在C语言中中,将C语言源代码编译成a.out,,但是在Java中的理解可能有点不同,编译指的是将java 源代码转换成class字节码的过程,而不是真正的机器码,这是因为中间隔着一个JVM。虽然对于编译的理解不同,但是编译的过程基本上都是相同的。

2017-03-02 23:08:37 14925 3

原创 Unix中的IO模型:帮你弄清阻塞VS非阻塞、同步VS异步

对同步和异步、阻塞和非阻塞这些名词困惑了很久了,曾经相当然的认为阻塞就是同步、非阻塞就是异步,这也是典型的错误,后来从Unix网络编程卷1上才看到最全面的解析,下面主要的内容来自Unix网络编程,算是自己的一个学习笔记吧!

2017-02-18 21:54:52 1856 0

原创 设计模式——构建器(Builder)模式

在面向对象的编程中对象的创建是最基本的动作,但是创建对象的方法有很多种,但是归根结底都是直接或者间接使用类的构造器完成实例的创建,包括静态工厂方法、JavaBean方式或者下面的要说的构建器模式,但是对于不同的情况,使用这几种方法各有利弊,这里使用一个实际的问题来引出这种对比。【实际需求】对一个包...

2017-02-11 15:29:13 948 0

原创 Java并发实践:volatile的原理和使用

写这篇文章的缘由是因为之前师弟的一个问题,想要的实现停止线程执行的功能。【实际需求】点击一个按钮开始执行一个长期运行的任务,然后点击另外一个按钮则任务停止执行。【问题分析】看到这个问题的第一个想法就是通过线程去运行该任务,然后停止该线程,这可能是最直接的解决办法。但是如果强制一个正在运行的线程会将...

2017-01-15 15:32:18 420 0

原创 从nginx的运行联想到的Servlet和 CGI

今天看nginx的时候,虽然基本的配置和使用可以照着网上的教程即可,但是对于nginx的运行原理一直不是很理解,包括其中的概念,其中最困惑的就是FastCGI这一套东西,始终无法理解这套机制是怎么运行的?通过查资料发现,要理解`Fast`CGI首先要知道CGI是什么,“通用网关接口(Common ...

2017-01-07 21:39:20 2666 3

原创 Java并发实践: 显式锁之Condition使用

最近的开发遇到了多线程的问题,由于之前总是使用Synchronized这种方式,让人难以理解不说,而且这个字还不好记,真是反人类,最重要的是这种方式是Java 1.5 之前的方法,已经有很多人(我没统计过)证明这种方式在性能和使用上存在问题,关键是如果继续使用这种老技术,会被认为是不思进取的人(自...

2017-01-06 20:38:30 1099 0

原创 设计模式——适配器模式

关于适配器,我们生活中常见的许多东西都可以称之为适配器,比如Mac电源适配器(可是我没有!!),还有漏斗等,在设计模式中的意义是相同的。所谓适配器模式就是将一个类的接口转换成满足新需求的另一个接口,适配器让原本接口不兼容的类可以进行合作。

2016-12-24 19:01:03 300 0

原创 关于Java中的注解类型深入剖析

关于注解的使用,用过应该java的应该都不陌生,最著名的莫过于@Override,所以这篇文章主要是讲讲注解背后的那些事情,至于普通的使用等可以参考下面的相关文章。一、注解的基本内容做什么事之前我们首先要搞清为什么?那么注解的出现是为什么?如果你受够了Spring和Hibernate的配置文件中繁...

2016-12-22 22:55:32 370 0

原创 深入了解Java中的异常

虽然在编译时发现错误是最理想的情况,但是这种情况并不是很容易产生,大多数的错误是在运行期间发生的,Java中的异常就是为了在运行时能够检查程序的错误。通过异常,我们能够简化错误代码处理的逻辑,如果不使用异常,我们就要检查特定的错误,这样就会出现很多的if...else...语句,如果使用了异常机制...

2016-12-16 22:41:11 902 0

原创 org.xml.sax.SAXParseException: Premature end of file

当使用XML的schema去验证XML文档的时候曝出如题的错误,验证代码如下:public static boolean validateXml(String xsd, InputStream input){ boolean flag = true; SchemaFactory f...

2016-12-05 22:26:49 22419 0

原创 Mybatis中接口和对应的mapper文件位置配置深入剖析

首先要说明的问题是,Mybatis中接口和对应的mapper文件不一定要放在同一个包下,放在一起的目的是为了Mybatis进行自动扫描,并且要注意此时java接口的名称和mapper文件的名称要相同,否则会报异常,由于此时Mybatis会自动解析对应的接口和相应的配置文件,所以就不需要配置mapp...

2016-12-01 23:43:41 38876 18

转载 图解SQL的Join

对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文氏图 Ve...

2016-11-30 22:29:08 542 0

原创 关于Java 中Enum 的全方位剖析

如果你受够了如下这种写法,那么这篇文章正好适合你:setWeek(1); // ... private static final int MONDAY = 1; private static final int TUESDAY = 2; // ... setWeek(MONDAY);这种方法有如...

2016-11-30 00:04:30 436 0

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