自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 我的红包分配算法

数字较均匀 /** * 将数值随机分成N份,数字较均匀,采用先算平均值,再在平均值基础上增减 * @param num 基数 * @param n 份数 * @param scale 波动范围 * @return */ public static int[] randDivide(int num, int n, int scale){ if(n < 1){ n = 1; }

2020-05-20 17:46:21 274

原创 WEB请求转发

背景在做业务系统时,后端有多个系统服务,但是面向用户只开放一个系统做入口,做登陆校验鉴权和转发用户请求等请求请求请求请求请求客户端服务转发系统服务1服务2服务3服务...在开发服务转发系统时,通常会新写controller,请求参数接收类等拦截器转发请求import com.douyu.wsd.framework.common.json.JsonUtils;import com.dou...

2020-04-04 23:00:18 253

原创 REDIS执行LUA脚本整理

在处理高并发业务数据的时候,经常把使用REDIS作为数据载体,以提高接口响应速度。在复杂业务场景下,一次请求可能会涉及大量的redis操作,为了保证数据一致性,再使用MULTI/EXEC命令就不太合适了。2.6版本后,REDIS开始支持LUA脚本(将客户端的LUA脚本存入REDIS服务端,然后再执行)在REDIS内部保证脚本操作数据时的一致性。redis执行 lua命令redis主要通过e...

2020-01-12 20:46:00 1137

原创 DUMP文件查看笔记

在win10系统上,生成dump文件,并查看1 生成dump文件在cmd窗口,通过【jps】命令查看jvm中启动的进程,此命令会附带上main函数所在类名。譬如springboot中的启动类AppLauncher,查看时会有如下图所示的LVMID对应数据。然后通过【jmp】命令生成dump文件,一般dump文件格式是hprof2 查看dump文件eclipse中marketpl...

2019-10-13 09:36:45 2976

原创 java中thread执行任务取消

Futrue.cancel()举例在执行一些耗时较长的逻辑时,经常会通过创建新线程异步处理来减少程序响应时间,但一些特殊场景下由于种种原因,用户希望能够取消本次提交的任务。这里使用thread的interrupt方法配合一些具体业务代码,来实现取消任务的功能。先看如下代码,通过ExecutorService和Callable处理任务提交@Slf4j@Servicepublic c...

2019-08-03 13:54:39 856

原创 LAMBDA与环绕执行及简单应用

环绕执行代码简化1 概述 在业务开发中,经常会碰到一些类似的业务逻辑,它们都要走相似的步骤,具体的入参出参和执行过程不同。因而在代码落地时,会有很多重复,譬如发送HTTP请求,读取EXCEL文件等等。 在java8推出来后,针对环绕执行模式(即资源处理时,常见的模式是打开一个资源,做一些处理,然后关闭资源。这些准备和清理资源阶段总是很类似,并且会围绕执行...

2019-06-03 11:58:46 242

原创 ZSET在订单支付与统计中的应用

场景1 延迟支付在购买高铁票时,用户下单会有一个30min内支付都有效的情景,如果超过30min未支付或主动取消,会释放占座信息解决方案:使用ZSET保存下单信息,订单号作为key,下单unix时间戳作为score1 可以方便获取订单下单时间,计算还剩多少有效支付时间2 用户在30min内支付或主动取消订单,可以快速移除订单3 释放占座定时任务,只需获取zset中的第一条记录,...

2019-01-11 23:43:06 364

原创 rocketmq学习笔记

参照http://rocketmq.apache.org/docs/rmq-arc/画的架构图如下。mq中部分类关系,主要分为三个部分:1消息发送;2消息存储;3消息消费上图

2018-12-15 16:16:43 178

原创 redis in action学习手记

redis 模型redis总体模型redis的对象都继承自redisObject,其中type包含常用的5种数据结构,encoding是存储数据的编码方式,当对象的refcount为0时(refcount=1时再执行decrRefCount方法)会释放对象占用内存。typedef struct redisObject { unsigned type:4; //对象的数据类型,...

2018-11-09 10:44:15 206

原创 领域对象之参数校验

引子        在做java web服务端时,经常要处理http请求传入参数的校验。从最开始的源生代码校验到校验方法的封装再到使用注解封装校验逻辑等,目的是在完成校验任务的基础上简化校验部分代码工作量。@GetMapping("test")public ResultInfo testInfo(TestBean demo){ if(demo.getId() == null |...

2018-11-03 16:10:34 669 1

原创 easyui treegrid 异步加载

主要通过控制onBeforeExpand和onClickRow事件来实现1 这里每次只加载一个层级的数据。初始化时,默认树节点的状态是closed2 通过点击事件(onClickRow)获取下一层级树节点,如果有子节点,则append到当前节点;如果没有子节点则设置当前节点为叶子。需要注意的是append方法执行时,还会调用loadFilter,对数据进行过滤。3 有一个缺陷是,第一次加载子节点时...

2018-03-13 10:40:37 2007 2

原创 tomcat websocket连接

tomcat7(或8)中实现websocket连接,服务端建立有两种方式:1. 注解@ServerEndpoint(value = " ") 2. 继承Endpoint然而多数情况下是注解实现,继承实现较少。1package com.socket;import javax.websocket.OnClose;import javax.websocket.OnMessage

2015-07-29 16:37:47 10105

利用dtree创建树

含有直接利用dtree创建树,和从数据库中读取树结点信息然后创建树。

2012-06-20

空空如也

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

TA关注的人

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