自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zzyymaggie的专栏

向前一步

  • 博客(53)
  • 收藏
  • 关注

原创 PlayFramework+Maven+Eclipse

1.安装maven     假设您已经安装了JAVA。maven安装步骤如下:下载apache-maven-3.1.1-bin.zip。解压到安装目录,如C:\Program Files\Java\apache-maven-3.1.1设置环境变量maven_home=C:\Program Files\Java\apache-maven-3.1.1path变量末尾增加:%mave

2014-03-22 21:45:03 3178

原创 SpringCloud gateway与zuul1服务阻塞压测对比

一、背景我们在落地微服务网关的时候,采用的SpringCloudZuul,老大提了一个问题,如果网关在代码服务A阻塞的时候,是否会阻塞服务B/服务C/服务D…等。带着这个问题我进行了探索。二、测试过程2.1 SpringCloudZuul模拟服务阻塞测试可以看到服务2阻塞了。为了让测试效果更明显,我们增加并发用户数到400。tomcat maxThreads参数(请求处理线程的最大数量)为200,当并发请求个数超过200时,就需要排队。2.2 SpringCloudGateway模拟服务阻

2020-09-03 17:51:49 1220 2

原创 spring context源码解析之@Async

0.写在前面上一篇文章排查了@Async失效问题,于是就想弄清楚@Async实现原理,发现这篇文章对源码讲解比较清楚,于是参考它的源码分析思路,总结成自己可以理解的内容。1.背景大家项目中用到异步、多线程的场景很多,使用最多的场景还是主动对象模式,就是主线程开启一个线程池去任务分发,任务执行完成之后,关闭线程池,但是有的场景则需要部分代码异步执行的效果,简单的说就是有一个可以复用的线程池可以复用,直接new Thread当然也可以,不推荐,没有线程池的可靠性好,如果这个时候再创建一个线程池用完再关闭代

2020-08-20 01:02:29 182

原创 Spring @Async失效问题排查

1.现象 @Async变成同步了最近新接手的一个业务,发现@Async异步调用不能如预期。具体如下:taskId=107的任务在执行的过程中,taskId=108的任务到达,但是一直没执行,直到107执行完毕后,108才开始执行。通过日志分析:2020-06-16 17:16:48.465 [146232] [INFO] [getAsyncExecutor-1] [c.s.r.k.task.PublishKnowledgeTask.publishKnowledge():172] - PublishK

2020-08-19 15:27:24 1210

原创 BeanPostProcessor对类的实例化顺序的影响——@Value失效

背景springboot1.5.9集成JavaMelody的时候, https://github.com/javamelody/javamelody/blob/without-spring-boot-starter/javamelody-for-spring-boot/src/main/java/hello/JavaMelodyConfiguration.java#L110 发现这种集成方式的配置采用的硬编码方式,不能根据配置文件进行配置。因此我就想将配置方式修改为从配置文件读取,我的第一想法是采用@V

2020-08-08 21:46:45 748

原创 mysql表数据拷贝方案调研

最近看到一个帖子 因用了Insert into select语句,美女同事被开除了! 发现问题原因分析不够透彻,解决方案也不够严谨,因此自己又调研了一遍。思维导图如下:

2020-08-01 22:16:41 88

原创 频繁fullgc排查思路,再也不怕fullgc了

1.现象某业务方的网关服务上线2个月后,出现15分钟一次fullgc.2.触发fullgc的可能原因System.gc()方法调用代码里一般都禁用了,不可能。 ( X )老年代空间不足open-falcon上查指标 ,经核对,距离分配的空间还差很远就被回收了。 ( X )永生代(Metaspace不足)open-falcon上查指标,经核对,还未达到。堆中分配大对象(所谓大对象,是指需要大量连续内存空间的java对象,例如很长的数组,此种对象会直接进入老年代,而老年代虽然有很大的剩余空

2020-07-29 22:33:59 1106

原创 ONLY_FULL_GROUP_BY遇到的坑

上一篇文章 提到的需求上线后出现如下报错:org.springframework.jdbc.BadSqlGrammarException:… Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘

2020-07-01 15:45:37 241

原创 使用group by获取最大版本号问题记录

一、背景描述最近有一个需求是数据库自动升级平台,每次升级,记录了数据库版本,新版本升级的时候需要找到当前数据库的最大版本,再进行升级。表结构如下:CREATE TABLE `database_instance` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL COMMENT '数据库名称', `version` varchar(40) DEFAULT '0' COMMENT '版本号,格式:A.B.C'

2020-07-01 15:02:59 1045

转载 Tomcat(一):简介

最近在学习Tomcat网络模型,看到这篇文章对Tomcat的架构做了一个很好的阐述,忍不住转载到自己的博客,帮助自己梳理思路。以下为正文:一、概念Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。二、原理Tomcat结构图:T...

2020-04-18 13:54:44 641

原创 Java对象池

这里写自定义目录标题背景简介代码背景通过这篇文章学习了Java对象池基本原理和应用场景,以及造了一个简单的轮子,可是楼主代码写的不可运行,因此自己完善了一下代码,并添加了测试用例https://blog.csdn.net/shimiso/article/details/9814917。简介1.基本原理:对象池技术基本原理的核心有两点:缓存和共享,即对于那些被频繁使用的对象,在使用完后,...

2019-09-23 15:29:11 316

原创 《Java程序性能优化》第二章 读书笔记 II

常用的优化组件缓冲Buffer 原理:采用漏斗 解释得很形象 应用:IO的BufferedWriter等 NIO的Buffer类族都是典型的代表缓存(Cache) 原理:缓存的主要作用就是暂存数据处理结果,并提供下次访问使用。 应用:内存的一级Cache/二级Cache/三级Cache。 专门的Cache解决方案:Memcache、Redis等对象复用——“池” 原理:如果一个

2017-12-19 23:44:08 294

原创 《Java程序性能优化》第二章 读书笔记 I

第二章 设计优化 2.1 善用设计模式 这本书归纳总结了一些经典的与性能有关的设计模式。并没有涵盖所有的设计模式。1.单例模式使用场景:它可以确保系统中一个类只产生一个实例。 好处: a.对于频繁使用的对象,可以省略创建对象所花费的时间,这对于重量级对象而言,是非常可观的一笔系统开销。(比如数据库连接) b.由于new操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,

2017-11-22 23:13:22 267

原创 Code Review for Java code

Code Review的意义在于提升代码质量,分享项目知识、明确责任,最终达到构建更好的软件、更好的团队。那么有哪些关注点来帮助我们进行Code Review呢?

2017-11-12 17:18:46 577

原创 面向对象设计的SOLID原则

背景面向对象编程强调的是可扩展性,那么我们要怎么设计才具有更好的扩展性呢? SOLID原则是类级别的,面向对象的设计理念,它们与测试工具一起帮你改进腐坏的代码。SOLID由程序员们最喜欢的大叔 Robert C. Martin(Bob大叔)提出,它其实是五个其他缩略词的组合——SRP, OCP, LSP, ISP, DIP。单一职责原则(SRP)从面向对象角度解释这个原则为:”引...

2017-11-12 17:02:01 351

原创 Java中double[]和Double[]内存占用分析

在编写java算法时将Map的value从double[]修改为Double[]发现内存增长了很多,因此对double[]和Double[]内存占用情况进行了分析。double数组内存占用为24+8N, Double对象数组内存占用为24+36N,可见当数据量大时,Double[]所占内存为double[]的4.5倍,因此当数据量大时采用Double[]会导致数据量暴涨。

2017-07-30 22:04:11 7992

原创 将iPhone短信完整迁移到安卓系统上的方法

家人想把信息从苹果6迁移到华为手机,应用很容易迁移,通讯录采用QQ同步助手同步,但是短信就是没办法迁移,他采用itools迁移短信,但是只能导入一条信息到华为手机,于是向我求助。我经过一些探索终于将iPhone短信完整迁移到安卓系统上,这里把方法记录下来,方便别人使用。

2017-07-02 17:22:35 189147

原创 《演讲的力量》读书笔记

我在阅读《演讲的力量》这本书的时候是把它当做工具书来读的,所以我的总结可能不具有通用性,而是总结我为什么要读这本书,我想通过它来解决什么问题。关键词:主线到结构、如何准备、演讲的复兴

2017-06-10 11:40:38 2139

原创 git-svn — 让git和svn协同工作 【命令行】

svn作为一个优秀源码版本的管理工具,可以适合绝大多数项目。但是因为它的采用中心化管理,不可避免的存在本地代码的备份和版本管理问题。也就是说对于尚未或暂无法提交到Subversion服务器的本地代码来说,存在着被误删除和版本更新无法回退两大情形。git作为一个分布式版本管理工具,可以很好的解决这个问题。因为它的大多数操作是在本地进行的。这里要说的是git是如何做到既可以管理好本地代码又可以

2016-10-14 17:20:09 1591

原创 git-svn — 让git和svn协同工作 【工具版】

My company is using SVN to be code management tool. I have no rights to commit, and I must export the different files to my leader to commit. For my local work conveniently , I need a local repository

2016-10-14 17:14:02 3185

转载 恢复 git reset -hard 的误操作

git的历史记录是不可修改的,也就是说你不能更改任何已经发生的事情。你做的任何操作都只是在原来的操作上修改。也就是说,即使你删除了一个分支,修改了一个提交,或者强制重置,你仍然可以回滚这些操作。

2016-09-26 16:36:42 495

原创 eclipse安装jetty插件

搜集方法在网上找了一些安装jetty插件的方法,找到3种。 1. 添加jetty server adapter 2. 安装run-jetty-run插件 3. 从Marketplace安装Eclipse jetty在国内网络环境下仅第三种方法可行。

2016-07-28 11:36:47 600

原创 PDF解密器下载和使用

背景有一些pdf做了加密功能,可以阅读,但是不能编辑和打印。刚好一个朋友遇到了这个问题,请我帮忙,搜索了一下,国内网站下载的好多PDF解密器都含有病毒,然后就放弃了,于是乎google了一下,发现AP PDF Password Recovery这个软件最靠谱。安装和破解 如果使用试用版,最多只能转换25页,所以还是破解后实用。官网的下载地址可以google之,我把下载好的软件共享在百度网盘里。

2016-07-12 10:58:51 638

原创 利用jxcell创建excel下拉菜单

在excel, 下拉菜单是通过数据有效性来生成的。数据有效性的生成有两种方式。一种是通过字符串输入,总字符个数必须小于256;另一种是通过公式在表格上选择数据源。

2016-07-09 16:49:00 598

原创 ZSS 支持excel的JDK分析

zss xlsx jar包分析 支持excel的JDK实际是apache的poi开源包。 这里要支持xlsx,而xlsx是采用OOXML格式,与xls不同,因此引入的包也不同。红色标注的zss支持excel加载的jar包,因为它要支持xlxs加载,编辑等。

2016-07-01 17:08:01 813

原创 ZK框架学习(二)——ZK Spreadsheet

ZK SpreadSheet简介 ZK SpreadSheet,简称ZSS。它是唯一可嵌入的Java Web应用程序的Ajax组件。它是ZK框架的一个组件,专门用于处理excel文件,加载、生成、编辑、下载等。

2016-07-01 15:31:34 3432 1

原创 ZK框架学习(一)

我们要了解一项新技术,一般都是先去了解它是干什么的,使用场景,然后就是跟着手册去建立一个工程,运行起来,再看它的工作过程是怎样的。

2016-06-23 12:58:59 5202 1

原创 ZK框架简介

ZK is a component-based UI framework that enables you to build Rich Internet Application (RIA) and mobile applications without having to learn JavaScript or AJAX. You can build highly-interactive and responsive

2016-06-22 17:53:28 12013 1

原创 HttpClient4.3 超时时间设置

背景采用线程池实现了HttpClient,为了避免每次请求都去创建一个新的线程池,我采用了单例的方式初始化了一个CloseableHttpClient,配置了超时时间,后来由于需求调整,需要部分请求配置更少的超时时间,最开始采用了笨办法解决,根据不同的超时时间建立不同的HttpClient。但是这样随着不同超时时间增加,httpclient版本越来越多,不利于代码维护。RequestConfig d

2015-04-11 17:22:52 4422

原创 httpclient4.3 线程池超时问题解决

之前采用Httpclient4.3写了一个抓取服务,突然有一天线上出现了很多这样的报警Read time out 和 ConnectionPoolTimeoutException: Timeout waiting for connection使用连接池的原因是:没有连接池的话,多少次请求就会建立多少个IO,在访问量巨大的情况下服务器的IO可能会耗尽。1 检查连接是否关闭EntityUtils.con

2015-04-11 17:05:28 3008

转载 Spring AOP 代理机制

来源:http://www.cnblogs.com/hustyangli/archive/2008/09/01/1281319.htmlSpring Framework reference 2.0.5 参考手册中文版 6.6. 代理机制 中是这样写的 Spring AOP部分使用JDK动态代理或者CGLIB来为目标对象创建代理。(建议尽量使用JDK的动态代理)

2015-03-06 14:57:41 320

原创 cURL模拟POST请求

cURL以application/x-www-url-encoded方式POST表单,实现类似于浏览器表单登录:curl -c ck.txt -d "name=user&pw=password" "http://www.haiyun.me/login.php"以multipart/form-data二进制数据上传文件,-F为提交的表单参数:curl -i -b qi.txt -F

2015-03-04 20:20:45 617

原创 正则表达式探究

正则表达式解析器http://regexper.com/ 可视化分组的效果很不错,经验证,不一定正确,需要自己分析。正则表达式基本语法http://deerchao.net/tutorials/regex/regex.htm 这里有正则表达式的基本语法,按照这些进行联系,就能学会常用的正则表达式了。高级语法分组构造https://msdn.microsoft.com/zh-cn/library/

2015-02-11 00:10:22 325

原创 怎么设计高并发网站?

一、大纲怎么设计高并发网站?这不是由一个环节决定的。比如我们说nginx支持高并发,但是如果只有nginx,不能支撑整个网站的高并发。那么我的思路如下:1.要实现高并发需要从一个网络请求的过程来思考,参考《从输入URL到页面加载完成的过程中都发生了什么事情?》,如何保障每个环节的高并发?上下游是怎么相互配合的?2.扩容和容错,保证能应付更大量的请求。二、高并发高流量

2015-02-07 21:14:49 948

原创 《从输入URL到页面加载完成发生了什么》学习过程

1.从网上搜索到一篇高质量的相关课题文章《从输入URL到页面加载完成的过程中都发生了什么事情?》,进行阅读,分解,画图,讲解给自己听。通过阅读,确定第2~5步是需要关注的,了解每一步的原理。发现自己有以下几个问题不理解。a. 数据在路由器之间是传输的?b. TCP工作原理。对于其他步骤,虽然不了解具体细节,但是了解大概的工作原理。比如第4步服务器的处理,可以类比现有业务的架构;

2014-12-26 20:22:07 490

原创 从输入 URL 到页面加载完成的过程中都发生了什么事情?

阅读文章 http://fex.baidu.com/blog/2014/05/what-happen/?qq-pf-to=pcqq.group心得:执行第5步之前,服务端处理完请求后,结果将通过网络发回客户端的浏览器。这个过程是怎样的?是否需要再经历一遍路由查询,最后返回数据给客户端。

2014-12-04 01:03:48 479

原创 使用httpclient4心得

最近项目中使用httpclient4,发现总是存在http请求未关闭情况,因此找了

2014-11-21 00:29:49 934

原创 使用Maven创建项目工程

使用Maven创建项目工程有两种方案,如下:一、使用eclipse的maven插件生成采用eclipse的maven插件m2clipse创建maven工程,这样的好处就是可以自动加载pom.xml配置的jar依赖包。二、使用命令行创建项目1. 使用Archetype生成项目骨架 如果是Maven3,运行: mvn archetype:generate 如果是Ma

2014-11-21 00:04:55 618

转载 Spring事务的隔离级别

在Spring中定义了5中不同的事务隔离级别: 1. ISOLATION_DEFAULT(一般情况下使用这种配置既可) ;这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别。 2. ISOLATION_READ_UNCOMMITTED 4 p" L. I' F; k1 {) a. D( E5 ?: V这是事务最低的隔离级别,

2014-11-09 23:49:19 406

原创 HTTP缓存模型研究

1、文档过期Cache-Control与Expires的作用一致,都是指明当前资源的有效期,控制浏览器是否直接从浏览器缓存取数据还是重新发请求到服务器取数据。2.新鲜度计算

2014-11-09 23:39:39 853

空空如也

空空如也

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

TA关注的人

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