自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 资源 (3)
  • 收藏
  • 关注

原创 彻底理解Prometheus查询语法

写在前面主要参考:https://github.com/yunlzheng/prometheus-book本文档主要分为两部分,分别讲解PromQL和Grafana的基础使用,在阅读PromQL部分时,建议不要联想Grafana中要怎么使用这些查询表达式,又是怎么根据查询结果绘图的,因为PromQL对于Grafana来说和SQL并没有区别,都是查询出结果,然后根据各种指定配置进行绘图,所以阅读......

2020-04-28 20:53:22 67937 11

原创 comparing静态方法分析

【代码】comparing静态方法分析。

2024-04-03 18:23:40 144

原创 PagePlug多条件查询方案

使用Case When来编写查询条件。

2024-03-22 16:32:04 197

原创 Rule-Engine-Starter V1.0.0

Rule-Engine-Starter 是一个轻量级规则引擎,V1.0.0主要解决条件匹配问题。比如飞书文档,每个文档都可以设置访问权限,可以限制哪些人、哪些部门可以访问、是否对互联网用户公开等等,这些条件可以看成每个文档设置的访问规则,一个文档可以设置多个规则。校验一个用户是否能访问目标文档,只需要校验规则中的条件,可以使用SPEL等表达式来实现;但是如果想获取一个用户有访问权限的所有文档,如果再用SPEL实现岂不是需要遍历所有文档的所有规则,这种方案无疑是低效的。因此自研。

2023-10-10 16:16:42 441

原创 Optional简化NPE检查

【代码】Optional简化NPE检查。

2023-09-20 10:23:09 141

原创 UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only

事务提交时发现事务已被标记为回滚(rollback-only)。请求接口/test会复现UnexpectedRollbackException异常。原因是在调用TestService的事务方法test时,spring会创建一个事务,在调用DealService的事务方法deal时,spring默认传播Propagation_Required,即被调用时如存在事务则使用该事务,因为deal方法的事务和test方法的事务是同一个事务。

2023-08-09 17:47:10 785

原创 SpringSecurity5-教程5-前后端分离系统OAuth2授权登录后渲染指定页面

spring security

2023-03-24 19:49:43 667 1

原创 SpringSecurity5-教程4-Cookie单点登录

Cookie单点登录

2023-03-23 15:03:45 486

原创 SpringSecurity5-教程2-登出源码分析

可以看到有两个handler,分别是SecurityContextLogoutHandler和LogoutSuccessEventPublishingLogoutHandler,首先浏览器访问http://localhost:8035/,输入用户名root和密码root完成登录;学习,其实在之前教程中,在FilterChainProxy中看到过LogoutFilter,这个就是默认的登出Filter;可以看到只要是/logout请求,均判断为登出请求;可知默认重定向到/login?

2023-03-21 16:52:19 384

原创 SpringSecurity5-教程3-oauth2登录源码分析

spring-security

2023-03-20 09:43:49 1698

原创 SpringSecurity5-教程1-用户名密码登录源码分析

spring security

2023-03-16 11:04:13 925 1

原创 ThingsBoard-OAuth2登录-UI配置授权登录

thingsboard

2022-11-25 15:30:28 790

原创 ThingsBoard源码解析-规则引擎

thingsboard

2022-11-25 09:29:21 2126 8

原创 ThingsBoard源码解析-消息队列

tingsboard

2022-11-25 09:16:47 1201 1

原创 ThingsBoard-OAuth2登录-github

thingsboard

2022-11-24 22:11:46 289

原创 ThingsBoard源码解析-缓存

thingsboard

2022-11-24 17:24:16 624

原创 ThingsBoard源码解析-设备连接

ThingsBoard设备连接源码解析

2022-11-24 16:58:53 1758 1

原创 ThingsBoard源码解析-登录认证

TingsBoard登录源码解析

2022-11-24 15:46:37 1757 1

原创 ThingsBoard源码解析-WebSocket

源码解读

2022-11-23 11:03:27 1285

原创 IOT实战-基于MQTTX搭建物联网平台

物联

2022-11-08 16:49:59 2686

原创 补码的原理

计算机基础

2022-11-07 17:29:52 242 4

原创 maven依赖为什么没有传递呢?

d

2022-06-22 10:28:50 2445

原创 SQL Mybatis 多层foreach + uinon

表user:DROP TABLE IF EXISTS user;CREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (id

2022-05-09 19:33:57 375

原创 CPU飙升

1、故障现象客服同事反馈平台系统运行缓慢,网页卡顿严重,多次重启系统后问题依然存在,使用top命令查看服务器情况,发现CPU占用率过高。2、CPU占用过高问题定位2.1、定位问题进程使用top命令查看资源占用情况,发现pid为14063的进程占用了大量的CPU资源,CPU占用率高达776.1%,内存占用率也达到了29.8%[ylp@ylp-web-01 ~]$ toptop - 14:51:10 up 233 days, 11:40, 7 users, load average: 6.85,

2022-05-06 13:19:48 169

原创 源码分析Spring解决循环依赖问题

测试代码@Slf4j@Datapublic class A { B b; public void fun() { log.info("A fun"); b.fun(); }}@Slf4j@Datapublic class B { A a; public void fun() { log.info("B fun"); }}public class Test { public static void main(String[] arg

2022-04-13 15:55:06 109

原创 MYSQL order by 索引 为什么还全表扫描+文件排序?

有一张表:CREATE TABLE `t1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, `c` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `ic` (`c`(19)) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSE

2022-04-12 20:35:56 2013

转载 MYSQL or 导致索引失效

Mysql版本 5.6.50新建表:CREATE TABLE ttt (id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,a mediumint(8) unsigned NOT NULL DEFAULT ‘0’,b mediumint(8) unsigned NOT NULL DEFAULT ‘0’,PRIMARY KEY (id),KEY idx_a (a) USING BTREE,KEY idx_b (b) USING BTREE) EN

2022-04-11 15:07:26 2769

原创 慢SQL-mysql in + order by id + limit 导致的慢SQL

背景有通知表,建表SQL如下:CREATE TABLE `perf2_notice_info` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `notice_type` varchar(32) DEFAULT NULL COMMENT '通知类型: ALIWORK_TODO_TASK、EMAIL', `deal_status` varchar(32) DEFAULT 'NOT_START' COMMENT '

2022-04-10 00:57:08 2799

原创 慢SQL-处理思路

通过explain 分析原因type至少为range、ref、const,如果为all和index说明执行了全表扫描extra中如果出现using filesort 和 using temporary 则可能因为排序和或者使用临时表导致SQL性能差,使用using index(覆盖索引) 或者 using index conditon(索引下推)来提高性能。优化索引索引失效最左匹配索引:KEY `idx_shopid_orderno` (`shop_id`,`order_no`)SQL 语

2022-04-09 22:29:26 881

原创 fastJson深拷贝

在调用toJsonString时一定要指定打印类型信息(SerializerFeature.WriteClassName),否者反序列化时因没有具体类型导致信息丢失!比如:import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;import lombok.Data;import org.junit.jupiter.api.Test;/** * @author zhou

2022-03-29 21:49:03 1630 1

原创 抽象工厂模式

抽象产品类public interface AbstractProduct { /** * 返回产品名字 */ String getName();}抽象工厂类/** * 抽象工厂类 */public interface AbstractProductFactory { /** * 生产实例 */ AbstractProduct create(); /** * 动态返回工厂 */ static AbstractProductF

2022-03-28 22:10:21 193

原创 线上故障排查思路

思维导图MySQL 排查常用命令# 查询慢SQL查询是否开启show variables like 'slow_query_log';# 查询慢SQL的时间show variables like 'long_query_time';# 查看慢SQL存放路径,一般:/home/mysql/data3016/mysql/slow_query.logshow variables like 'slow_query_log_file';# 查看数据库的事务隔离级别,RDS:READ-COMMIT

2022-03-11 15:19:25 2181

原创 mybatis-plus select的坑

mybatis

2022-02-24 11:39:04 2843

原创 Stream 常用语法

flatMap 多个list/stream汇成一个steamList managerJobs = managerMap.values().stream().flatMap(Collection::stream).map(DocEmpInfoDO::getJob).collect(toList());

2021-09-24 17:26:00 181

原创 springboot 优雅停机

目前SpringBoot内置的四个嵌入式Web服务器(Jetty,Reactor Netty,Tomcat和Undertow)以及响应式和基于Servlet的Web应用程序都支持优雅关机。配置宽限期后,在关闭时,Web服务器将不再允许新请求(但是并不会立刻返回失败),并且将等待宽限期以使活动请求完成。Demo尝试1. SpringBoot版本大于2.3.0.RELEASE2. 在application.properties添加配置## 开启优雅停机, 如果不配置是默认IMMEDIATE,

2021-07-10 15:51:33 601 1

转载 Java 线程池的异常处理机制 错误使用submit导致异常被吞掉,导致UncaughtExceptionHandler不生效

一、前言线程池技术是服务器端开发中常用的技术。不论是直接还是间接,各种服务器端功能的执行总是离不开线程池的调度。关于线程池的各种文章,多数是关注任务的创建和执行方面,对于异常处理和任务取消(包括线程池关闭)关注的偏少。接下来,本文将从 Java 原生线程、两种主要线程池 ThreadPoolExecutor 和 ScheduledThreadPoolExecutor 这三方面介绍 Java 中线程的异常处理机制。二、Thread在谈线程池的异常处理之前,我们先来看 Java 中线程中的异常是如何被处

2021-05-25 15:04:24 3559

原创 spring ResponseBodyAdvice 消息转换器 消息转换失败

当Rest方法返回String类型响应时,如果ResponseAdvice对响应进行封装成对象则会报错!@Slf4j@RestControllerAdvicepublic class RestResponseBodyAdvice implements ResponseBodyAdvice<Object> { @Override public boolean supports(MethodParameter returnType, Class<? extends Htt

2021-05-19 17:27:27 1500 1

原创 BeanUtils getProperty的一个坑

背景介绍短信平台需要支持多种短信的发送,短信文案皆不相同,假设有以下类@Datapublic abstract class MsgBase { public static final String ALIBABA_GROUP = "阿里巴巴集团"; public static final String ANT_GROUP = "蚂蚁集团"; /** * 接收人手机号 */ private String receivePhone; /**

2020-12-24 13:27:51 2127

原创 为什么始终404 Page Not Found ?

现象:系统迁移到新环境后,APP能够正常访问系统,但是微信小程序始终却始终收到404错误。系统现状:APP / 微信小程序->公网IP->系统网关F5->系统网关->系统内部服务排查过程:猜测1:系统网关404错误码排查结果:查看网关日志并未返回该错误码,而且并没有接收到小程序的请求结论:F5全量url转发至系统网关,证明微信小程序请求未到达系统网关前的F5猜测2:网络路径不同,其中某个网络设备转发地址不正确造成排查过程:获取相关信息:APP及微信小程序的url及访问的

2020-11-02 17:31:30 15802

原创 内存使用率始终超过90%怎么办?

现象: POD内存使用率超过90%排查焦点:是否存在内存泄露?查看pod配置可知该pod共分配5g内存,通过 jstate -gcutil $(pid)命令可知1.年轻代大小是1g, 老年代大小是3g2.年轻代频繁ygc3.老年代目前fgc总次数是13次,当前老年代占用2g也就是说当前jvm中有1g内存是空闲的,换句话说jvm的fgc是有效的,并没有出现内存泄露。(如果出现则应该频繁的gfgc)pod内存使用率始终高达90%的原因是:jvm占用内存后就不会再释放内存了。随着服务运行,

2020-10-20 19:41:44 9555

kettle-pack镜像

kettle-pack镜像,修改数据库名为kettle_pack,数据库配置在kettle-pack/tomcat/webapps/ROOT/WEB-INF/classes/config.properties,编辑后保存镜像

2023-05-06

starter demo

starter demo

2023-04-25

websocket聊天室源码

运行后直接访问localhost:8080,一个页面模拟一个客户端

2022-11-18

springboot优雅停机实战demo

springboot优雅停机实战demo

2022-03-09

空空如也

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

TA关注的人

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