自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 一次简单的流量控制实现

场景分析 某个业务接口需要控制接口访问速度,访问速度包括每秒请求(qps)限制,单个用户/IP访问限制,以及其他类型等,因此在这种情况下,设计一个简单的流量控制实现。从控制来看,那么我们得知道三个必须的参数:服务名、接口名、用户唯一特征参数...

2022-05-24 22:46:21 424

原创 数据导出流程设计

导出流程设计

2022-04-14 00:57:48 2951

原创 使用新接口还是策略模式分析

业务背景:因业务需要制定一个新的聊天窗口,部分逻辑和原来的不同,在展示的数据体现在查询范围、个数显示、权限控制等有不同的地方,在通信方式机制上和原有逻辑保持一致。新老窗口显示分为多端,例如小程序、web端、APP端,小程序、APP端是利用版本区分(小程序、APP无法做到俩个聊天窗口并存),web端是利用权限控制(因为开了俩个页面)。用户群体包含用户(小程序、APP)、业务方(APP)、客服工作人员(web端)。业务分析:第一是数据展示,新老窗口查询的范围不一样,这...

2021-12-29 14:58:14 276

原创 数据使用Redis缓存还是类变量缓存分析

业务场景 业务方提出一个根据配置规则进行调查问卷信息推送的业务,有点类似QQ弹出的游戏调查问卷,问卷配置内容包括当日最大提醒次数、回答后不再提醒天数等一些配置参数信息。配置包括临时规则、默认规则。每天的订单数据平均有40W,实际符合规则的会在10W左右。数据会存在高峰期,大致为早上、晚上、凌晨三个时间段。需求分析 配置读取 1. 首先从数据量来看,当一次订单数据进来时,系统不能每次都去查数据库得到配置信息,然后去过滤当前订单是否满足推送规则。因此需要走缓存处理...

2021-11-13 22:51:12 1127

原创 磁盘不足导致内存溢出问题

工作时候测试环境出现大面积服务挂掉,当重启服务后(脚本判断服务挂了之后会定时重启),一段时间后服务又挂掉了,这时候查看测试环境内存使用情况,从图片可以看到内存只剩下200多M,buff缓存中的数据居然高达近19G,一开始以为是Redis占用了大量的缓存,因为数据是保存在内存中,进入redis中查看查看之后发现Redis使用内存只有10M,排除redis之后,再次使用top命令查看各服务占用系统内存情况从图片可以看出MySQL占用了近10%内存,这种情况有俩种情况导致,一是大量服务在进行数据查询或

2021-04-11 18:00:43 547

原创 LocalDate获取自定义日期

/** * 自定义年月日 * @param year 年 * @param month 月 * @param day 日 * @return LocalDate */ public static LocalDate getLocalDateByYearAndMonthAndDay(int year , int month , int day){ LocalDate nowDate = LocalDate.now(); //获取相差年份 int differYear ..

2021-02-22 11:11:26 1935

原创 Spring boot 利用Redis实现队列消息监听简单示例

我的应用场景:当某个业务系统接收到MQ消息需要按照顺序进行执行时,且收到的消息间隔时间过短时,可以把需要执行的消息放到队列里面进行逐个消费,因为对消息执行的代码加锁是不行的,因为消息间隔时间小,容易出错,只能对消息再进行一层封装,然后执行.,这种情况只适用于消息不是必须实时消费。1.Redis配置主要配置序列化和反序列化使用的方式.package com.example.demo.config;import com.fasterxml.jackson.annotation.JsonAutoDete

2020-06-29 17:17:15 4159 2

原创 list.Stream 方法笔记

举例类 User//获取某个元素集合userList.stream().map(user -> user.getName()).collect(Collectors.toList());//根据某元素进行分组userList.stream().collect(Collectors.groupingBy(User::getCreateDate));//获取元素MapuserList...

2020-04-02 09:38:24 679

原创 String俩种排序方式分析

public static void main(String[] args){ List<String> strList = getStrList(); System.out.println("方法一开始时间:" + System.currentTimeMillis()); List<String> strList2...

2019-11-04 16:31:13 1303

原创 利用数组实现获取俩个大整数相乘结果.

1.先看俩个数字是怎么相乘第一步为每个数字对应相乘,第二步为对应相加 ,第三步为进位.第一步中数字相乘相当于数组中每个数字对应相乘,并保存到相应的位置里面去.第二步对应相加是把第一步的结果相加保存,第三步则是进行进位处理,当前位置数字超过10则进位,进位原理为当前数字%10 保存到下一位置里面.具体实现代码如下 public static void main(Strin...

2019-10-25 14:17:25 588

原创 java.sql.SQLFeatureNotSupportedException问题原因及解决方法

闲着没事想写个demo,结果运行时候报这个错误一开始是以为类型转换错误,我在实体类里面的create_time 对应的是LocalDateTime类型,于是尝试利用mybatis的自定义类型转换解决问题, 代码是这样子的package com.example.demo.mybatisConfig;import java.sql.CallableStatement;import...

2019-09-08 17:53:36 37428 13

原创 获取俩个LocalDate中间所有的日期

/** * 从大到小 */public List<LocalDate> getDescDateList(LocalDate startDate,LocalDate endDate) { List<LocalDate> result = new ArrayList<>(); LocalDate tempDate = null;//用户存...

2019-09-04 10:54:50 3377 6

原创 MyBatis + MySQL + MultipartFile保存文件二进制数据到表里面

最近因为需求是把重要文件数据保存到表里面,不上传到文件服务器中,因此才想到这种做法注意事项1.实体类对象里面用于存储文件的字段类型必须为Object,因为存入表的时候数据类型时blob类型,读取出来的数据类型时byte[]数组2.表里面数据类型设置为Blob 或者longblob3.设置上传文件大小必须小于4M(byte.length < 4* 1024*1024...

2019-07-11 18:52:23 5274 4

原创 docker常用操作指令及注意事项

前言:希望看尚硅谷的Spring boot视频学习的同学在看到这篇文章时不会在docker上遇到麻烦.1.安装linux: a. 安装centOS 以及docker uname -r :查看版本信息 ,yum update :更新版本 安装完成后如果连接不上网请设置虚拟机网络 网卡+接入网线 注意事项: 使用文档中的镜像后,需要更新d...

2019-05-26 21:33:46 247

原创 权限控制的分类介绍

权限控制分类:数据权限、访问权限访问权限:访问权限从表面意思就可以看出是否有权限访问该功能,大部分访问权限通过菜单的URL来控制,通过用户关联不同的菜单来进行权限控制,这里主要有俩种实现方式,一是设置不同的角色,每个角色有不同的权限,用户关联角色,间接关联菜单的URL,二是直接通过用户关联菜单的URL进行控制。这俩种都能实现访问控制,但是第一种的扩展性更强,比如用户为系统维护员时,需要访问每一...

2018-08-22 23:25:12 4146

原创 oracle存储过程中ORA-01403: 未找到数据 问题解决方法

错误提示:ORA-01403: 未找到数据产生原因:当查询不到数据时,且把查询结果注入到定义的变量里面解决方法:            1.跳出此次存储过程: 可以写个错误提示:                 when not_data_found then --后面一般接错误的数据提示消息            2.不跳出存储过程:                 由于错误的根本原因是数据不存...

2018-04-19 11:33:40 27070 3

原创 java中如何提取多个字符串相同的字符

代码如下:package com.hp.test;import java.util.ArrayList;import java.util.LinkedHashSet;import java.util.List;/** * 提取多个字符串相同的字符 * @author HP * */public class StringTest{ ...

2017-12-22 16:30:43 7975

原创 利用decode函数实现按不同的选择条件 对数据进行分组统计

sql:SELECT        decode('id', 'division_id', tc.division_id,  'service_center_id', tc.service_center_id, 'id', tc.id,  tc.division_id) as choice,     sum(tc.totalFee) as totalFee,   max(tc.de

2017-12-13 11:15:33 3284

空空如也

空空如也

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

TA关注的人

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