自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql百万级数据保存方法对比

主键采用雪花ID, 测试数据量1kw, 每次保存2w, 表属性27个, 6个组合索引。

2023-04-09 21:42:44 245

原创 mysql百万级数据删除方法对比

主键采用雪花ID, 最小ID 1630961122999455744, 最大ID 1631593704371969722测试数据量600w, 每次只删除5k条数据。

2023-04-09 21:38:18 1171

原创 【问题排查】Servlet path match failed

服务异常日志排查

2022-06-09 15:27:11 4423

原创 Mac M1 安装node-sass报错

由于Mac M1对node-sass兼容不够, 所以在使用 npm i 的时候经常报错将node-sass 替换成 sass 即可将package.json依赖里面的node-sass去掉卸载node-sassnpm uninstall node sass报错也不影响直接安装sassnpm install sass重新安装依赖npm install启动项目npm run dev如果启动报错出现 /deep/ 之类的, 全文替换成 ::v-deep, 再启动就行

2022-04-27 13:30:58 1618

原创 【clickhouse】Maximum number of arguments for aggregate function with Nullable types is 8

Maximum number of arguments for aggregate function with Nullable types is 8当聚合函数存在可能为空的参数时,只允许输入8个参数解决方案对参数使用assumeNotNull函数,标识该参数转化非空类型

2021-11-12 19:17:42 824

原创 油猴子脚本

个人使用// ==UserScript==// @name B站显示真实用户数// @namespace http://tampermonkey.net/// @version 0.1// @description try to take over the world!// @author You// @match *://*.bilibili.com/*// @icon https://www.google.c

2021-08-30 23:21:24 950

原创 【打怪升级之路】kafka容器化到自动化的升级记录

安装docker## 1. 安装yum-utilsyum install -y yum-utils## 2. 配置阿里云源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo## 2.1 解决problem with installed package podman-1.6.4-10.的报错yum erase podman buildah## 3. 安

2021-08-05 10:35:17 568

原创 【实战】多属性校验唯一性解决方案

【前言】最近在优化一个导入功能,导入6w条数据居然花了1天的时间,当时我就惊呆了O.O后面检查了一下代码,主要的问题在于for循环走创建接口,没用到多线程,所以耗时比较久,这还只是校验数据可用性的阶段,后面还有一个校验唯一性的阶段,这个阶段需要21个属性均不重复来校验唯一性(原来有25个属性,有几个属性的校验是多余的,被优化了),旧表没有索引且所有属性列均没有设置非空和默认值,导致sql里有一堆的判空处理<choose> <when test="attr == null

2021-07-12 16:11:29 1442

原创 【Redis】删除Redis的key带有特殊字符的缓存

起因用户登录时如果是手机号登录,key会带国际区号和空格,格式:user_detail::+86 15659810000

2021-06-01 18:04:21 1910

原创 【Mysql】记一次springboot启动卡在初始化Druid的问题

自己无聊手撸了一个springboot项目然后在启动时卡在[ main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource这个地方,常见的就是在代码中打了断点,会导致启动特别慢但我并没有打断点晚上基本上都是这个问题直到我检查连接配置原来是端口写错了当时看走眼,看到编码去了,实际端口是3306后面把端口改正确后就正常启动了结尾: m...

2021-01-08 00:42:15 5549

原创 【Redis】还在用scan替代keys解决cpu飙高的问题?误人子弟!

【问题】11号早上10点左右redis的cpu突然飙高,过一会儿部分节点突然因为连接超时而被熔断掉一看到服务名立马就意识到前几天刚用scan替代keys的服务2020-12-11 10点redis的cpu突然飙高到100%,过一会儿部分节点突然因为连接超时而被Hystrix熔断并服务降级了2020-12-11 10点12分 运维人员在群里问谁操作redis了,我登上去看了一下阿里云Redis的慢日志,没看到任何慢日志查询, latency:eventloop 是阿里云redis的内置任务.

2020-12-14 11:18:14 4573 9

原创 【Redis】@CacheEvict 部分源码解读

源码地址:org.springframework.cache.interceptor.CacheAspectSupportorg.springframework.cache.interceptor.AbstractCacheInvokerimmediate属性就是beforeInvocation, 即是否立即删除, cache.clear() 则是执行删除缓存, cache.invalidate()最后也会执行clear方法beforeInvocation默认在@Cac.

2020-12-14 10:25:16 1729

原创 【MyBatis】<if test=“param != ‘‘“>标签param传0为何不能正确判断, 深入源码解析

【前言】mybaits使用的是Ognl表达式, 当传入的参数为0时会影响判断,具体代码<if test="state != ''"> and state = #{state}<if>当state=0时,state != '' 返回的是false,导致不会渲染 and state = 0【深入源码】ExpressionEvaluator.class 解析表达式的类, test语句会执行到该类的 evaluateBoolean 方法,进而判断表达式的结果

2020-12-09 17:21:25 1098 1

原创 【学习】MybatisPlus + ShardingSphere 分表对象使用updateById方法自动补齐分表属性

问题: 当使用ShardingSphere进行分表时,在使用MybatisPlus的iService扩展的updateById方法会导致报错异常信息:Can not update sharding key, logic table [表名],column[属性名]异常来源:ShardingUpdateStatementValidator.class#validate原因:当执行update操作时,如果涉及分表对象,则会执行分表属性校验,校验的原理是判断where条件里是否包含分表属性...

2020-12-03 11:22:07 5700 5

原创 【踩坑日记】阿里云内容安全

批量请求时单词请求最大任务数100公共错误码 错误代码 HTTP 状态码 描述 OK 200 请求成功。 PROCESSING 280 任务正在执行中,建议您等待一段时间(例如5s)后再查询结果。 BAD_REQUEST 400 请求有误,通常由于请求参数不正确导致,请仔细检查请求参数。 NOT_ALLOWED 401 请求失败,通常是由于使用了不安全的图片、视频、语音链接地址。 FORBIDDEN 403 .

2020-10-26 10:25:22 607

原创 【踩坑日记】阿里云表格存储

1. 禁用主键列的自增列功能!禁用主键列的自增列功能!!禁用主键列的自增列功能!!!重要的事情要说三遍2.自增列一旦设置,无法人为填充,只能依赖表格存储的自增功能,所以建议使用自定义发号器3. 多元索引只能根据预定义列和主键列设置,不支持后续新增的属性做多元索引4. 建议通过类似ES的别名方式获取表名和索引名,一旦写死,只能通过改代码来指向新的表和索引,我是通过Redis实现类似ES的别名功能5....

2020-09-03 21:46:01 346

原创 【Elasticsearch实战】boost权重使用注意事项

当存在排序条件时,boost权重会失效

2020-08-13 15:38:26 777 1

原创 【Redis实战】批量模糊删除(适用生产环境)

目前在网上看到的大部分文章都是通过keys 进行模糊匹配并删除的下面介绍3种删除方法,建议使用linux去操作,可以结合xargs(点击查看介绍)命令进行操作参数说明:[ip]: ip地址, 参数名 -> -h[port]: 端口号, 参数名 -> -p[password]: 密码, 参数名 -> -a, 没有密码则不输入 -a [password][index]: 缓存所在的库, 参数名 -> -nredis-cli -h [ip] -p [port..

2020-08-07 14:56:02 2541 1

原创 【Redis实战】之从0到0.1的评论功能

普通的评论功能就是直接使用Redis的List结构,然后不断的往这个List的列表里面去推评论简单暴力的方式就是每次直接把所有id拿到本地进行计算创建评论时往左边插入,然后读取评论时直接从左往右读取,计算偏移量...

2020-07-30 17:24:32 2124 2

原创 ShardingProxy插入Emoji表情报错

版本号: 4.1.1报错:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1经过万能的排除法后,发现当insert操作时,属性里包含emoji的话会报错,然后进而影响之后的所有update操作也会跟着报错但是如果没有insert操作的话,直接upd.

2020-07-11 21:09:13 672

原创 阿里云表格存储日志解析

最近在内网测试阿里云的表格存储功能会时不时出现延迟秒级以上的情况通过日志查看发现了一些延迟比较高的日志抓起核心日志信息TotalTime:1202 {FirstExecution,1592553578139} {IntoHttpAsyncClient,1592553578831} {RequestSent,1592553579259} {ResponseReveived,1592553579314} {Completed,1592553579341}TotalTime:1125 {Fi

2020-06-19 17:38:11 391

原创 【Elasticsearch实战】平滑重启

粗糙一点的做法就是直接进程杀死并重启ps -ef|grep elasticsearch # 查看es的进程号kill -9 ${pid} # 直接杀死es进程cd ${elasticsearch}/bin # 进入es的bin目录下./Elasticsearch -d # 启动ES服务但是这样做会导致节点丢失,节点变成Yellow状态,数据不一致等问题,而且要求每个索引文档都必须要...

2020-03-28 16:37:57 1378

原创 OAuth2 备忘录

gb_oauth:client:details::${clientId}gb_oauth:refresh:${refreshToken}gb_oauth:refresh_auth:${refreshToken}gb_oauth:refresh_to_access:${refreshToken}// removeAccessToken删除以下缓存gb_oauth:client_i...

2020-03-27 10:21:00 174

原创 编码区域

0000-007F:C0控制符及基本拉丁文 (C0 Control and Basic Latin)0080-00FF:C1控制符及拉丁文补充-1 (C1 Control and Latin 1 Supplement)0100-017F:拉丁文扩展-A (Latin Extended-A)0180-024F:拉丁文扩展-B (Latin Extended-B)0250-02...

2019-08-28 16:22:46 266

原创 千万级别数据去重思路

只是提供自己想的解决方案,如果大家有更好的方法,欢迎评论交流,谢谢!1.前景概要发生较多重复数据的是一个笔记同步接口导致的,由于判断数据是否入库只根据数据是否有主键来判断,有则更新,无则创建导致的结果就是可能因为网络问题或其它因素导致手机端没有拿到同步结果,并激活了重试机制每次同步就是当前这本书的所有笔记重新在走一遍同步步骤,最后导致数据库数据直接飙升表数据有3kw+,由于历史...

2019-07-30 19:36:43 4343

原创 java.lang.OutOfMemoryError: unable to create new native thread 问题排查

场景重现由于之前第三方登录会直接存头像地址,而h5网页会出现跨域的问题,然后接到任务是将第三方头像地址转存到七牛云上使用的多线程池Executors.newFixedThreadPool,不然速度太慢了// 获取空闲进程数int processors = Runtime.getRuntime().availableProcessors();// 创建多线程池ExecutorSe...

2019-07-03 22:11:09 6025

原创 ELK + log4j2 简单的配置进行日志追踪

一、如果直接设置服务器的hostName则可以在log4j2配置文件里直接使用${hostName}二、否则设置环境变量,并使用监听器,因为log4j2默认取的配置信息是使用System.getProperty()方法,而环境变量则需要通过System.getenv()方法获取参数① 设置环境变量,注意jdk启动的用户是,需要在/home/jdk启动用户/.bachrc文件里设置环境变...

2019-06-26 16:39:34 1977

原创 SpringCloud + Eureka 微服务优雅下线

先附上网上解决方案:https://www.jianshu.com/p/14c0b6c389f0https://blog.csdn.net/hunger_wang/article/details/87722129网上清一色基本都是这几种方法下面介绍我自己的方法① 注入ApplicationInfoManager管理器,可用于获取当前微服务的状态或者修改微服务状态impo...

2019-05-27 15:31:49 1814

原创 【Elasticsearch实战】目录

移动分片平滑过渡脚本批量操作使用Java API 根据查询条件进行批量更新某个属性

2019-04-18 16:50:36 123

原创 【Elasticsearch实战】移动分片

① 设置副本数为0PUT student/_settings{ "number_of_replicas": 0}② 移动分片POST _cluster/reroute{ "commands": [ { "move": { "index": "索引", "shard": 分片序号, "from_node...

2019-04-15 20:06:02 461

原创 【Elasticsearch实战】平滑过渡

ES官网的介绍真的超级详细!关于分片和副本我们公司用的3台64G 32核的阿里云服务器,所以分片3个,副本2个设置3个分片原因: 因为是3台机器,当集群比较大时则要用冷热等方式将数据隔离开设置2个副本原因: 每个分片会产生2个副本,而产生的副本是不允许放在父级分片下的,所以产生2个副本放在其它2个分片下关于数据初始化使用bulk,单次插入条数2W,单次插入条数要看整个对象有...

2019-04-15 20:00:35 359

原创 阿里云MNS工具 java-messaging-lib 之万恶的System.out.prinln

不知是哪位阿里程序猿在代码里写上System.out.prinln 且没有删除掉导致日志里疯狂在刷消费的信息,瞬间就把日志文件刷到十几G以上之前有写过一篇文章禁用System.out的方法之重定向但是这种方法治标不治本,且在高并发下会导致内存不足抛出异常java.lang.OutOfMemoryError: Java heap space后来用了旁门左道的方式解决了第一种...

2019-04-13 22:29:17 584

原创 SpringCloud + MyBatis + Druid + ShardingSphere 整合之分库分表

对ShardingSphere做了一层包装,让它可以支持分库分表的同时也可以支持没有分库分表的数据表,由于我这边公司用的是阿里云的mysql自带的读写分离,所以关于读写分离的部分我没写版本:<!-- SpringCloud --><dependency> <groupId>org.springframework.cloud</group...

2019-03-20 17:48:27 7088

原创 【Elasticsearch实战】脚本批量操作

批量更新某个字段POST 索引/mapping/_update_by_query{ "script": { "lang": "painless", "inline": "ctx._source.属性名 = 新的属性值" }, "query": { // 查询条件 }}批量删除某个字段POST 索引/mapping/_updat

2019-03-13 20:10:22 768

原创 【Elasticsearch实战】使用Java API 根据查询条件进行批量更新某个属性

Elasticsearch版本:&lt;dependency&gt; &lt;groupId&gt;org.elasticsearch&lt;/groupId&gt; &lt;artifactId&gt;elasticsearch&lt;/artifactId&gt; &lt;version&gt;6.3.2&lt;/version&gt;&lt;/depe

2019-03-02 00:01:13 3928

原创 【头脑风暴】基于redis的单点登录,退出登录清空token,token续期

之前我做了基于redis的单点登录和token续期,现在分享下我的经验先说下几个关键属性userId: 用户IDxinge: 用的是信鸽推送,单点登录踢人用的,redisKey为 user:xinge:用户IDtoken: 用户token,redisKey为 user:token:用户ID 一丶单点登录在用户登录校验密码通过时,判断redis上的信鸽号与用户传过来的是否...

2019-02-26 23:49:37 4928

原创 禁用System.out的方法之重定向

业务场景使用阿里巴巴的MNS,但是因为MNSMessageProducer 类中有system.out.prinlin,所以导致频繁在日志中打印信息日志文件分分钟就1GB解决思路重定向system.out, 并输出空字节代码import org.springframework.boot.ApplicationArguments;import org.springf...

2019-02-15 15:11:04 1616 1

原创 win7 flash 提示加载失败

1. 运行 cmd, 打开命令操作提示窗口2. 进入系统flash目录# 32位系统cd C:\windows\system32\macromed\flash# 64位系统cd C:\windows\syswow64\macromed\flash# cd命令下,进入目录不用区分大小写3. 通过 regsvr32.exe 重新注册 flash, 完成!regsvr32 f...

2019-02-07 14:56:41 2344

原创 记一次FileSystemResource的巨坑

return ResponseEntity .ok() .headers(headers) .contentLength(contentLength) .contentType(MediaType.APPLICATION_OCTET_ST...

2019-01-16 00:10:20 7694

原创 七牛云 无效图片过滤

import lombok.Cleanup;import okhttp3.OkHttpClient;import okhttp3.Protocol;import okhttp3.Request;import okhttp3.Response;import javax.swing.filechooser.FileSystemView;import java.io.*;import ...

2019-01-03 23:04:19 491

空空如也

空空如也

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

TA关注的人

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