- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 JAVA高性能并发插入+并发读取队列设计
背景:1.公司需要开发统一审计中台,基本功能是收集其他各系统的操作日志,基本原理是提供SDK嵌入至其他业务系统,通过AOP注解截取方法入参出参上传至收集接口。难点:1.SDK通过AOP拦截方法,日志上传通过RPC调用会产生一次网络IO,势必会增加被注解修饰的方法的执行时间。而且网络环境波动,审计平台宕机等各种不稳定因素,会对被嵌入的系统产生致命影响。所以SDK必须要做异步日志上传,先在内存中缓存日志,然后由定时线程池取缓存中的日志上传。2.因为是并发插入,故内存缓存使用的数据结构必须是线程安全的,目
2022-03-11 15:19:08 1795
原创 自己简单实现一个redis分布式锁:可重入锁、非公平锁。
redis分布式锁:可重入锁、非公平锁。基于redis实现的分布式锁,主要利用了redis单线程的特性,注释非常全了,不需要别的描述了。package com.xxxx.utils;import java.util.Collections;import java.util.HashMap;import java.util.Map;import java.util.UUID;import org.apache.commons.lang.StringUtils;import org.spri
2021-06-21 14:05:40 865
原创 log4j2单独打印sql日志配置
前两天系统要求业务逻辑日志和数据库sql日志分开打印。项目日志用的log4j2,架构为SSM架构,代码结构遵循MVC模式即每个业务模块都有单独的包结构,每个业务包下都有serivce、dao等包结构,要单独打印sql日志就要筛选出每个业务包结构下的dao包里的日志,但糟糕的是log4j2没有通配符,包路径不能com.**.dao.**这样写,所以需要用到自定义过滤器实现日志过滤,下面是我增加的l...
2019-07-16 15:41:58 3870
原创 面向对象与面向过程的区别
我看到了一张桌子:面向对象脑子里想:这个桌子是木头做的,有一个桌面,有四条腿,可以和凳子组成一套桌椅供人们吃饭,打牌等。面向过程脑子里想:我要作这个桌子,我需要先拿着锯去山上砍树,然后把看下的树运回来,然后一顿劈砍加精雕细琢,做好桌子腿和桌面,最后用胶一粘就作成功了。...
2019-07-15 16:03:09 273
原创 mycat最简要的配置实现oracle读写分离
系统到了数据库瓶颈了,cpu load值居高不下,报表sql过多,故要做读写分离,mycat中间件说白了就是把多个物理库外面包装了一层逻辑库,对外表现为单个数据库服务,但是功能还是很强大的像sql优化,分区分片,负载均衡,读写分离等等,但要说的是mycat目前还不是很稳定,有不少bug会造成内存突然爆满,尤其是使用mysql之外的其他物理数据库。话不多说,上代码:下载网址:http://ww...
2019-07-11 17:59:07 3317 1
原创 java以字符串格式存储密钥的RSA非对称加密工具类
简要加密说明rsa即非对称加密算法,生成的密钥为一对,一个叫公钥一个叫私钥,私钥可以解密公钥加密的密文,公钥可以解密私钥加密的密文。网上的一般都是以密钥文件格式存储的使用起来很不方便,所以自己写了个字符串格式存储的工具类。RSA较AES对称加密算法安全性高,但是性能较差。如果想要安全和性能两者兼得,可以两者配合使用,就像https加密算法一样,通信数据用AES加密,AES的密钥用RSA加密进行传...
2019-07-11 16:57:38 738
原创 Java获取去年同月份相同星期的日期算法
前段时间同事做报表,需要与去年同时期的数据做比较,同时期的规则就是:比如今天是今年2月份的第二个星期三,则要获取去年的2月份的第二个星期三是几月几号。下面是我给她写的算法,已经过测试可实现相应需求。import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class......
2018-11-12 10:12:07 2842
原创 Ajax设置为同步(async:false)后不生效的问题
首先上一段问题代码及执行结果:$.ajax({ type : "post", url : "${contextPath}/experience/checkClassStatus", async:false, data : { "classCode":classCode }, ...
2018-09-21 14:17:40 16390 5
原创 SQL UNION ALL 多个结果字段合并顺序
从图中可以看出结果集1与结果集2 union后的结果集是按照字段顺序合并的,而并不是匹配两个结果集的字段名。(亲测mysql与oracle一样,其他数据库未涉及)...
2018-09-19 17:44:24 6608
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人