- 博客(34)
- 资源 (5)
- 收藏
- 关注
原创 ArrayList在添加元素时报错java.lang.ArrayIndexOutOfBoundException
ArrayList在并发场景下添加元素发生数组越界
2024-01-31 10:49:16 1037
原创 mysql存在10亿条数据,如何高效随机返回N条纪录,sql如何写
1.使用ORDER BY RAND():LIMIT 1;这将随机排序表中的所有行,并且通过LIMIT 1仅返回第一行,从而返回一个随机记录。然而,对于大型表来说,ORDER BY RAND()可能会导致性能问题,因为它需要对整个表进行排序。
2023-10-27 11:14:31 596 2
原创 java使用正则提取数据
结合正则的分组模式$1、$2可以提取,但是在实际java开发中,字符串格式发生了变化,字符串多了空格和换行等,因此需要再完善正则表达式。需要对一个json结构做数据的提取,提取label和value的值,组成新的结构,西瓜:0、苹果:1、草莓:2。最终调试改为如下正则写法,三种情况的json字符串都可以匹配。只能匹配变种1,原始json字符串和变种2不适应,原始json字符串如下格式。
2023-09-22 10:44:01 1686
原创 apache benchmark(ab) 进行压测
一、apache benchmark使用PS D:\installed-software\Apache24\bin> ./ab.exe -helpUsage: D:\installed-software\Apache24\bin\ab.exe [options] [http://]hostname[:port]/pathOptions are: -n requests Number of requests to perform -c concurrency Numbe...
2022-05-17 20:02:45 922
原创 mysql update多个关联表查询字段
首先查看2个表关联查询字段SELECT uk.create_time, up.end_time FROM table_uk uk INNER JOIN table_up up on uk.id = up.user_id and up.status = 1 where uk.name != '';2个表关联查询,把A表某字段更新到B表,这里用传统的写法,而不能inner join、left join写法update table_uk uk, table_up up set uk.create_time
2021-07-02 14:31:49 731
原创 解决mysql where条件查询emoji表情出现数据重复问题
1、背景查询emoji萝卜这个表情时,把其他的表情也关联查出来了2、解决 2.1、在where查询字段添加binary关键字,BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写 eg:select name from table where binary name = ???? 2.2、把字段的COLLATE 改为utf8mb4_bin...
2021-04-12 11:41:54 1054 1
原创 使用Navicat快速生成MySQL数据字典
转载地址:https://www.cnblogs.com/lukefan/p/10445285.html1、通过information_schema.COLUMNS表查询该表可得到所需字段信息SELECT * FROM information_schema.COLUMNS;如下图所示2、示例SQL语句如下SELECT t.TABLE_SCHEMA AS 库名, t.TABLE_NAME AS 表名, t.COLUMN_NAME AS 字段名, t.COLUM.
2021-04-09 15:37:53 393 1
原创 被private修饰的变量没有set函数也能赋值
众所周知,被private修饰的变量,只能在本类访问 访问权限 本类 本包的类 子类 非子类的外包类 public 是 是 是 是 protected 是 是 是 否 defau
2021-02-22 20:13:41 1272
转载 ES索引写入性能优化
1、用bulk批量写入你如果要往es里面灌入数据的话,那么根据你的业务场景来,如果你的业务场景可以支持让你将一批数据聚合起来,一次性写入es,那么就尽量采用bulk的方式,每次批量写个几百条这样子。bulk批量写入的性能比你一条一条写入大量的document的性能要好很多。但是如果要知道一个bulk请求最佳的大小,需要对单个es node的单个shard做压测。先bulk写入100个document,然后200个,400个,以此类推,每次都将bulk size加倍一次。如果bulk写入性能开始变平缓
2020-10-20 16:55:27 460
原创 生产环境内存溢出(OOM)排查
背景1:系统通过MQ接受数据,经过业务处理,调用第三方推送SDK api2:系统上线后(使用腾讯skd),线程数达到15K(1w5个线程)3:报错:java.lang.OutOfMemoryError: unable to create new native thread,内存溢出排查1:查看tcp状态1.1:establish状态有4k,在系统高峰并发下,这么多建立连接可以理解为正常1.2:close_wait达到了13w, 说明是服务端(推送sdk服务端)主.
2020-09-01 14:25:03 1670
原创 使用arthas修复线上代码
# 反编译$ jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java不指定输出/tmp路径,默认是当前路径(通过pwd命令查看路径)# 修改文件$ vim /tmp/UserController.java# 查找加载的 ClassLoader$ $ sc ...
2020-02-24 17:33:12 676 1
原创 搭建apollo配置中心
推荐使用源码自己构建部署,适合需要自定义自己的环境环境,如test1,test2等进入scripts目录,执行build.sh完,每个模块的target会出现zip压缩包。一、安装agent端apollo-configservice1:创建数据库,执行apolloconfigdb.sql脚本2: 解压apollo-configservice-1.5.1-github.zip压缩包3:进...
2020-01-19 15:05:29 382
原创 aop多个切面的访问顺序
spring涉及切面编程,aop提供@Order的注解,存在多个的情况下,order的值越低优先级越高切面包括before、after、around、afterReturning、afterThrowing请求方法 -> order(1) -> order(2) -> order(3) -> 目标方法 -> 响应(正常响应或异常)...
2020-01-08 14:45:14 511
原创 springboot整合LogstashTcpSocketAppender日志保存到ELK
1:安装elasticsearch2:安装kibana3:安装logstash 配置logstash springboot-logstash.conf文件如下: input { tcp { mode => "server" host => "127.0.0.1" port => 4560 ...
2019-12-27 19:35:06 15927 1
原创 ELK6.8版本整合filebeat和kafka收集springboot日志
一、系统流程图二、统一springboot的日志格式<!--最新的格式,以[]包装--> 方便logstash 已中括号过滤用<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.cla...
2019-12-26 19:47:19 2254
原创 一分钟理解netty.pipeline执行顺序
例如,假设我们创建了以下管道:@Overrideprotected void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast("1", new InboundHandlerA()); p.addLast("2", new Inb...
2019-10-18 18:09:13 2047
原创 wrk 性能测试带参数的接口
wrk在使用带参数的接口进行压测时,参数会被过滤掉比如:http://127.0.0.1:8080/benchmark?name=1&userId=1&sex=1 这个接口执行压测命令如下./wrk -t5 -c5 -d30s http://127.0.0.1:8080/benchmark?name=1&userId=1&sex=1若这样直接执行,/benc...
2019-10-12 11:52:26 2302 2
原创 java实现连续签到(打卡)天数
业务上需要开发一个获取连续签到(打卡)天数的功能,修修改改多次后发现了规律,可以减少代码量,使程序更简洁明了。核心是getContinuousSignInDay方法的逻辑,每次用当前时间去比较,规律是比较的天数是递增的(连续签到的情况下)。这份代码脱去了业务上的逻辑,只有签到的功能demoimport lombok.Data;import java.text.ParseExcep...
2019-08-15 18:01:30 13375 4
原创 hibernate 延迟加载 二级缓存 注解配置问题
Hibernate 延迟加载:如果不延迟加载时,系统在加载(load,get)一个对象时,与它所管理的实体或者集合都是立即加载出来放在内存中,这样的话,就会影响到系统的性能,如果运用延迟加载,就不会立即加载有关的实体或者集合,等到要用它这些关联的实体或对象时才会去加载 Hibernate 二级缓存 查询缓存:一般来说一级缓存是放在session中,如果去load一个对象,(使用缓存)如果此
2013-07-05 10:33:40 2074
apollo压缩包.zip
2020-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人