自定义博客皮肤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的博客

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

  • 博客(113)
  • 资源 (1)
  • 收藏
  • 关注

原创 我还是重启了博客写作 - 新博客地址:https://lifehit.cn/

这里写自定义目录标题博客迁移了以前的博客为啥重启留下思考的legacy促进学习和交流以后的发展致谢博客迁移了博客迁移后的地址:新的博客地址以前的博客博客的写作已经停了很久了,至于当初是如何开始的,已经有点记不清了,不过有一点可以明确的是:当初写博客一半是为了记录技术的积累,一半是有一定的功利性的,就是能够在找工作时写到简历上。最后找到的工作不错,不知道这个有没有起作用。当初写博客时,由于是第一次,就直接在一个技术网站上开始了,这个网站,如果经常泡技术社区的人都会知道,CSDN,开始他提供了比较便捷

2021-11-18 22:32:58 551

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

因为工作和以后课题方向的原因,开始涉及大数据的方向,在大数据的领域,Hadoop无论如何是绕不过去的话题,于是进入这个方向也是着手从Hadoop开始,但是从Hadoop开始,并不代表我们一定要采用它的解决方案,因为现在Hadoop自身各个组件的解耦做得已经才能够当好了,所以说我们可以把某一个组件单独拿出来使用,或者和别的框架相结合,比如单单使用HDFS,但是因为采用的计算模型可能和我们实际的业务并不相同,所以说HDF

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

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

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

2017-08-27 00:43:24 4461

原创 关闭数据库外键约束

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

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

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

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

2017-07-26 21:19:19 13232 10

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

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

2017-07-23 12:12:52 5401

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

本文出自Event-Driven Data Management for Microservices,作者 Chris Richardson, 写于2015年5月19日本文是构建微服务应用系列文章的第五篇。第一篇文章:介绍微服务架构并讨论了微服务架构的优点和缺点;第二篇文章和第三篇文章:描述微服务之间的通信不同方面;第四篇:探索与服务发现紧密联系的有关问题;本文将会改变方向,了解一下微服务应用中产生的分布式数

2017-07-16 21:59:58 2702

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

本文出自Service Discovery in a Microservices Architecture,作者 Chris Richardson, 写于2015年5月19日这是本系列文章的第四篇。第一篇文章:介绍微服务架构并讨论了微服务架构的优点和缺点;第二篇文章和第三篇文章:描述微服务之间的通信的不同方面;本文我们继续探索与服务发现紧密联系的有关问题。

2017-07-15 13:58:45 14189

翻译 第三篇:进程间通信

本文出自Inter-Process Communication in a Microservices Architecture,作者 Chris Richardson, 写于2015年5月19日这是该系列的第三篇文章,第一篇文章介绍了微服务架构模式,以及与单体架构模式的比较,并讨论了使用微服务的利弊。第二篇文章阐述了应用如何通过API代理网关与微服务通信。本文我们将会了解一下系统中的服务之间如何进行

2017-07-13 23:45:12 2886 1

翻译 第二篇:使用API网关

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

2017-07-10 22:40:07 5452

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

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

2017-07-09 08:53:25 39738 4

翻译 第一篇:微服务介绍

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

2017-07-03 21:35:25 2914 1

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

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

2017-06-24 12:48:02 35558 2

原创 MySQL中distinct的使用方法

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

2017-06-22 23:13:39 59562 8

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

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

2017-06-12 23:03:18 729

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

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

2017-05-21 10:43:34 71948 12

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

在之前典型的Java Web程序中,部署描述符web.xml是必不可少的,在这里我们需要配置各种组件,包括Servlet、Filter和Listener等,如果使用过SpringMVC的话,应该会对在web.xml中配置org.springframework.web.servlet.DispatcherServlet十分熟悉。但是对于所有的配置文件都有的一个通病就是只有在程序部署的时候,一些配置项问

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

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

在使用Hibernate的时候我们一般都会配置hibernate.hbm2ddl.auto这个属性,而其中的常见的属性值包括:createcreate-dropvalidateupdate而在使用的过程中,update是我用的比较多的,由于官方文档对于这个属性产生的效果和使用的范围没有做详细的说明,只是提了一句会会更新数据库的schema,而且不建议在生产环境中使用,但是怎么更新,更新都包

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

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

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

2017-05-04 22:13:15 4428

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

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

2017-04-30 23:46:08 55622 6

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

本文使用的数据库测试环境为: MySQL:Windows 10x64 5.7.12-log SQL Server:Windows 10x64 SQL Server 2012 Oracle:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production 由于工程需要支持多种数据库,

2017-04-29 13:49:24 1353

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

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

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

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

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

2017-04-23 11:16:59 438

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

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

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

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

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

2017-03-23 21:38:45 663

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

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

2017-03-12 22:20:05 3202

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

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

2017-03-12 00:16:58 3526

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

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

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

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

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

2017-03-02 23:08:37 21870 5

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

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

2017-02-18 21:54:52 2408 1

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

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

2017-02-11 15:29:13 1661

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

写这篇文章的缘由是因为之前师弟的一个问题,想要的实现停止线程执行的功能。【实际需求】点击一个按钮开始执行一个长期运行的任务,然后点击另外一个按钮则任务停止执行。【问题分析】看到这个问题的第一个想法就是通过线程去运行该任务,然后停止该线程,这可能是最直接的解决办法。但是如果强制一个正在运行的线程会将程序的运行置于一个不确定的状态,虽然知道这一点,但是当时我没想到其他办法,写到这里就感慨自己的学艺不精啊

2017-01-15 15:32:18 540

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

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

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

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

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

2017-01-06 20:38:30 1526

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

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

2016-12-24 19:01:03 418

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

关于注解的使用,用过应该java的应该都不陌生,最著名的莫过于@Override,所以这篇文章主要是讲讲注解背后的那些事情,至于普通的使用等可以参考下面的相关文章。一、注解的基本内容做什么事之前我们首先要搞清为什么?那么注解的出现是为什么?如果你受够了Spring和Hibernate的配置文件中繁琐的配置,因为写错一个字母整个程序都运行不起来,那么你确实有理由去了解注解,它可以:

2016-12-22 22:55:32 614

原创 深入了解Java中的异常

虽然在编译时发现错误是最理想的情况,但是这种情况并不是很容易产生,大多数的错误是在运行期间发生的,Java中的异常就是为了在运行时能够检查程序的错误。通过异常,我们能够简化错误代码处理的逻辑,如果不使用异常,我们就要检查特定的错误,这样就会出现很多的if...else...语句,如果使用了异常机制则可以不必在方法实现中进行检查,而是通过异常机制进行捕获,这样可以将方法实现的具体逻辑和遇到问题时的解决

2016-12-16 22:41:11 1068

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

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

2016-12-05 22:26:49 37723 1

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

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

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

转载 图解SQL的Join

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

2016-11-30 22:29:08 664

flappy bird matlab 代码

一款经典的游戏 用matlab代码写成 风靡世界的游戏

2014-02-25

空空如也

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

TA关注的人

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