
java
文章平均质量分 80
无意摘花
这个作者很懒,什么都没留下…
展开
-
基于MySQL的实时日志分析
最近公司要求对公共平台的接口,进行监控。对于用户敏感信息、用户登录信息,以及用户其他的附属信息的访问,做实时统计,例如敏感信息,按每小时统计访问了多少用户的敏感信息;ip访问敏感信息量TopN排行等。 数据来源于项目打印的debug日志,这些日志是由核心框架打印的标准日志,其中大概包含了原始ip,当前用户id与类型,访问接口的客户端,访问时间,接口入参等信息。 日志采用flume收集,并放入kafka中。 我们的系统接入kafka,消息日志数据。 刚开始定方案时,是将...原创 2020-06-14 16:41:31 · 634 阅读 · 0 评论 -
狂赞!海量数据迁移方案,免费送给你
一、背景在创业初期,为了快速把项目搭建运行起来,往往不会过多地去考虑系统是否可以支持未来更大的数据吞吐量,所以往往不会分表或分库。可当项目真正运行了一年两年之后,会发现原来的单表已经存储不了更多的数据了,或者查询性能受到影响,此时就要考虑分库或分表了。一般涉及到分库分表,数据迁移是必须要做的一个工作。那么接下来,笔者就以自己亲身实践过的一次数据迁移经验为依据,向大家介绍一下,当数据量过亿时,进行数据迁移,我们要做些什么,有哪些坑(限于保密协议,笔者会对表名及字段名做一定的脱敏,但不妨碍理解)。假原创 2020-05-09 12:05:30 · 754 阅读 · 1 评论 -
Session的隐式创建和销毁流程
上文通过源码,分析了session显式创建和销毁的流程,但有些时候,我们并没有亲自去创建session,但不代表它不存在,笔者将这种情况,称之为隐式创建和销毁。一、创建流程 这里介绍session隐式创建的一种情况,即jsp的执行过程。由于jsp内置9个对象,其中就有session,在不禁用session的情况下(<%@page session="false"%>...原创 2020-05-07 12:08:51 · 545 阅读 · 0 评论 -
Session的显式创建和销毁流程
Session的创建分为隐式创建和显式创建,隐式创建对开发者是透明的,我们不关心它的什么时候创建,什么时候销毁,也不知道他是如何使用的。但是显示创建却需要我们自己去维护它的生命周期。这很类似于Java的GC之于C语言的malloc和free。相似的,销毁也有显式销毁和隐式销毁之分。一、创建流程 Servlet的API给我们提供了两个接口,用以创建session。/** * R...原创 2020-05-07 11:52:38 · 842 阅读 · 0 评论 -
JVM的FullGC优化实战(二)
上一篇文章,分析了导致GC的原因:内存中持有了大量的session。当时查代码比较粗心,竟没有看到一些显式使用session的地方。业务是这样的:在请求到来时,根据用户请求信息(如ip),获取用户所在地区,然后将该dp信息放到session中,后面Controller直接拿来使用,不必在进行判断。 先看地区Filter:public class DqFilter implement...原创 2020-05-07 11:42:51 · 308 阅读 · 0 评论 -
记一次cpu跑满的故障解决过程
今天运维反馈,我们线上一个web项目,CPU负载非常高,导致其他项目都快不正常了,查看线上的cpu负载,看到cpu竟然被这个进程占用了800%以上,着实惊人。当时的CPU负载图:而正常状态下应该是:运维在服务器top查询的结果如下图所示:怎么回事呢?内存占用并不高,所以排除是内存漏洞或gc等问题,最有可能的原因,就是代码上有死循环。于是试着看代码。 看了半天后...原创 2020-05-07 11:12:33 · 2109 阅读 · 0 评论 -
ThreadLocal的使用与代码示例(译)
原文:http://java.dzone.com/articles/java-thread-local-%E2%80%93-how-use [翻墙看]Thread Local是一个有趣且实用的概念,却是很多开发人员不知如何使用的。在本篇文章中,我将给大家解释什么是ThreadLocal和如何使用,并附带示例代码。由于这个概念在开始有些难以理解,所以我将解释地尽可能简单(注:你不使用这段示翻译 2014-02-26 09:21:49 · 5176 阅读 · 0 评论 -
jdk Dynamic Proxy 动态代理
说到动态代理,首先介绍下静态代理,静态代理是指首先有一组对外开放的接口,已知A类实现了此类接口,那么现在代码一个代理类B同样实现了接口中的方法,这样在方法中调用被代理类A中相应的方法,在调用前后,可以加上一些处理代码,如日记记录,事务开启关闭等等。而动态代理,关键一点就是动态,即将这种代理关系,延迟到jvm运行是来实现。相同需要一组对外接口,代理类实现InvocationHandler接口并实原创 2014-02-26 14:37:24 · 6186 阅读 · 0 评论 -
CGLib 动态代理 及与JDK动态代理的不同
JDK动态代理适用于已实现一组接口的类的情况,但如果类没有实现接口,如何创建动态代理呢?那就使用CGLib代理,CGLib代理不再限制实现接口这一条件,它使用目标类,创建它的子类的方式,来实现代理,示例代码如下:public class LearnService { public void read() { System.out.println("read()..."); }}原创 2014-02-26 16:09:25 · 786 阅读 · 0 评论 -
springmvc中如何防止表达重复提交
问题描述:现在的原创 2014-08-28 12:53:21 · 62993 阅读 · 8 评论 -
接口性能优化
性能优化之接口优化(spring/java/http接口)这篇文章介绍了一些常用的接口性能优化工具,如CAT,放水系统。接口优化的依据。接口优化的具体措施原创 2016-01-12 22:26:32 · 5945 阅读 · 0 评论 -
JVM的FullGC优化实战(一)
下面的文章,介绍了如何使用MAT(Memory Analysis Tool)分析JVM内存泄漏问题JVM的FullGC优化实战(一)下面的文章,介绍了如何根据分析结果,查询代码,实验,最终解决GC 问题JVM的FullGC优化实战(二)JVM的FullGC优化实战(一)原创 2016-01-12 22:18:46 · 2214 阅读 · 0 评论 -
java 通过userAgent获取访问者的操作系统与浏览器
StringBuilder userAgent = new StringBuilder("["); userAgent.append(request.getHeader("User-Agent")); userAgent.append("]"); int indexOfMac = userAgent.indexOf("Mac OS X");原创 2015-10-28 23:01:16 · 10950 阅读 · 1 评论 -
jdbc连接各种数据库方式速查表
1、Oracle8/8i/9i数据库(thin模式)Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();String url=”jdbc:oracle:thin:@localhost:1521:orcl”; //orcl为数据库的SIDString user=”test”;String password=”t转载 2014-02-24 09:48:19 · 875 阅读 · 0 评论 -
struts2之json请求的异常处理方案
大家都知道,使用struts2的异常处理机制,几要几行配置,就可以在发生异常时,跳转到我们指定的页面,并显示出相应的异常信息,具体的使用操作过程如下:1)struts.xml ... login /WEB-INF/view/404.jsp /WEB-INF/view/500.jsp原创 2013-09-18 22:46:58 · 14798 阅读 · 4 评论 -
tomcat重启或关闭后,上传文件消失
今天我负责的活动模块出现了一个奇怪的问题,当tomcat服务器重启时,之前上传的活动图片就不见了,刚开始以为是发版脚本出了问题,后检查排除,再去找代码,看到在保存文件时,有一步出现错误:File file = new File("xxx");File dest = new File("xxx_new");dest.deleteOnExit();file.renameTo(dest);由于原创 2013-08-15 10:52:06 · 9032 阅读 · 0 评论 -
java读取注册表中的信息
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class GetReg { public static void main(String[] args) { try { Process ps = null; p原创 2012-09-20 15:02:56 · 5952 阅读 · 1 评论