自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 异步线程任务处理,主线程抛出异常事务回滚验证

且事务正常回滚,50个请求,只存储了3个,且请求不连续,因为被回滚掉了。1、将线程池参数调到最小,并将队列设置为0。线程池大部分拒绝,实际只处理了3个任务。2、设置拒绝策略为抛弃并抛异常。总结:想都是问题,做都是答案。jmeter设置50请求/s。

2023-10-10 15:58:51 232

原创 nacos监听更新bean和apollo的区别

总结:先说结论nacos使用起来不如apollo,很多奇怪的问题,比如密码不能用一些特殊字符(客户端1.2.1),和logback的加载有优先级问题,可能会导致logback的配置出错,这些都需要去解决,如果只是用配置中心的话,建议apollo。中配置它,by the way遵循nacos默认规则不配置shared-configs无法做到监听,我这里监听了ExtensionConfigs(),因此我配置了它。这是一个map数据,我在配置里将其配置成了String,通过字符串的形式进行切割。

2023-07-18 11:06:09 144

原创 skywalking排除端追踪端口

skywalking部分旧版本没有对请求的method做区分,只写路径就行,比如。才可以将端口排掉,具体看一下自己的端口具体地址,如下图此版本需要带method。在agent安装目录下,将**此版本便不需要Method。下面新建一个配置文件。

2023-07-18 10:51:03 326 2

原创 mybatis-plus动态分表使用ThreadLocal未remove引起的问题

每次请求,tomcat线程会分配线程池进行处理,请求线程任务结束后,线程并不会销毁,而是回收到线程池,线程数据也随之留存,因为在使用threadlocal时,尽量要remove,当然如果是非线程池也可以不remove,但是也会有threadlocal溢出风险。

2023-05-17 18:52:22 379

原创 理解mysql架构和执行流程

之所采用这种双写方式,是因为buffer在写入dbfile时使用了随机io,效率较低 ,因此采用写入redolog的方式,这种方式采用的是顺序io,速度比较快,最大可能避免数据丢失。buffer-pool将数据同步到logbuffer,然后logbuffer再同步到redoLog,这样避免Bufferpool存入dbfile时产生丢失后无法恢复。数据在查询到buffer之后,会对undolog进行同步,记录数据的初始状态,以进行回滚。用于数据的具体存储和查询,索引的管理,直接和磁盘交互。

2023-04-14 11:28:44 123 2

原创 python+milvus实现一个以图搜图系统

当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。

2023-04-11 10:54:07 2853 4

原创 apache-common-pool2简单使用和源码分析

至此apache-common-pool2的部分关键代码分析完毕,对连接池有了更多的理解,个人使用案例参考之前做过另一篇笔记。

2023-03-21 18:18:29 1292

原创 TCP/IP的理解!

但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,“你发的FIN报文我收到了”。为了这种情况: B向A发送 FIN = 1 的释放连接请求,但这个报文丢失了, A没有接到不会发送确认信息, B 超时会重传,这时A在 WAIT_TIME 还能够接收到这个请求,这时再回复一个确认就行了。这个字段实际上是指出了 TCP 报文段的首部长度 ,它指出了 TCP报文段的数据起始处 距离 TCP报文的起始处 有多远。包首部就像协议的脸。

2022-12-12 14:09:31 1090

原创 apache doris+cannal+mysql实践

使用canal同步mysql数据到doris参考:官方快速开始下载安装包:https://github.com/alibaba/canal/releases或者wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz这里我只安装服务端,可以满足场景,客户端有机会再探索下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.1.5 版本为例解

2022-12-07 16:10:47 1931 2

原创 spring-webflux理解

了解spring-webflux之前,我们要先了解一个词,是一套反应式编程 标准 和 规范,如果 Publisher 发布消息太快了,超过了 Subscriber 的处理速度,那怎么办?这就是 Backpressure 的由来。Reactive Programming 框架需要提供 背压机制,使得 Subscriber 能够控制 消费消息 的速度其中,Subcriber 中便包含了上面表格提到的 onNext、onError、onCompleted 这三个方法。

2022-11-21 18:53:43 781

原创 mysql分页的sql性能优化

背景:因为公司的报表需求,需要批量统计数千万数据,单个sql无法满足使用场景,于是分页将数据查询出来并进行处理。

2022-09-09 14:46:04 521

原创 关于mysql的默认排序

为什么mysql的排序不是按照主键排序的呢

2022-09-08 15:11:57 1685

原创 common-pool2实现sftp连接池

ApacheCommonPool2是Apache提供的一个通用对象池技术

2022-07-26 18:32:17 1877 1

转载 深入分析 ThreadLocal 内存泄漏问题

势必会被回收,这样一来,ThreadLocalMap中就会出现key为null的Entry,就没有办法访问这些key为null的Entry的value,如果当前线程再迟迟不结束的话,这些key为null的Entry的value就会一直存在一条强引用链ThreadRef->Thread->ThreaLocalMap->Entry->value永远无法回收,造成内存泄漏。的生命周期,可能导致的内存泄漏(参考ThreadLocal内存泄露的实例分析)。的弱引用作为key,如果一个。......

2022-07-25 18:18:48 407

原创 一次linux搭建Sftp问题排查

根据资料搭建sftp后,第一次登陆成功,再次登陆报错查找资料显示是因为网络配置问题,于是重新改了一下配置,加了心跳连接等,依然无效。仔细检查配置发现,配置sftp根路径带有匹配符号,拷贝过来的,忘记修改,总结:网络查询资料时,一定要理解,不然你都不知道你拷贝的是什么东西,特别是csdn,可能连作者自己都不知道。.........

2022-07-10 00:16:23 1288

原创 多线程下实现SFTP上传下载

原代码:

2022-06-29 14:53:46 1676

原创 MyBatis-Plus(主键策略、UUID、Sequence)

1,ASSIGN_ID(雪花算法)如果不设置 type 值,默认则使用 策略(自 3.3.0 起)。该策略会使用雪花算法自动生成主键 ID,主键类型为 Long 或 String(分别对应 MySQL 的表字段为 BIGINT 和 VARCHAR)提示:该策略使用接口 IdentifierGenerator 的方法 nextId(默认实现类为 DefaultIdentifierGenerator 雪花算法)。2,ASSIGN_UUID(不含中划线的UUID)如果使用 策略,则会自动生成不含中划线

2022-06-10 14:58:06 3566

原创 LogstashLayout日志模板简化

背景项目发布后Kibana展示的日志,过于繁琐,看的眼睛要瞎了,如下打开JSON发现,有这么多的key,希望能够只输出系统信息,便于查错。分析elk的流程,日志的输出到es是会有模板的,而模板应该是logstash定义的,找到这段配置, <layout class="net.logstash.logback.layout.LogstashLayout" > <includeContext>true</includeC

2022-05-13 18:06:13 826

原创 本地使用浏览器模拟跨域请求

浏览器模拟跨域请求随便写一个域名,然后在调试工具使用异步请求,保证请求的IP和域名不一致,即可实现跨域请求js代码var xhr = new XMLHttpRequest();xhr.open('OPTIONS', 'http://127.0.0.1:8090/crossFilter');xhr.send();xhr.onload = function(e) { var xhr = e.target; console.log(xhr.responseText);}...

2022-05-09 15:34:21 2637

原创 大数据量下如何排序的个人理解

需求有几千万数据订单,需要查出来,并且根据用户去重并且,筛选出10大消费客户,想到之前归并排序,这里参考了归并排序的思想,每批排出10个最大客户,最终将这些10个一批的用户继续排序。关键代码如下这里是一批的的数据排序方式 List<User> users = new ArrayList<>(); users.add(new User("1",new BigDecimal("10.00"))); users.add(new User

2022-05-05 12:33:14 805

原创 对比Mysql的流式查询和普通分页查询

背景最近有一个场景,需要大批量处理数据,大概1200w的数据,之前是按照分页查询的方式来处理,但是会导致查到最后越来越慢,想到流式查询和游标查询。游标查询的方式,可能对数据库性能影响比较大,本次测试就不考虑了。jvm参数设置由于本地测试,机器内存比较大,为了测试效果,于是将jvm设置小一点-ea -Xms512M -Xmx512m普通查询 @Test public void testCommonQuery(){ tmpFeeService.commonQuery

2022-05-04 14:32:05 2968

原创 EasyExcel转化为byte[]、inputStream或者OutputStream

Excel转化为流操作

2022-04-09 18:31:28 9517 10

原创 多线程下mysql的死锁问题

版本5.7数据隔离级别默认RRDB如下:CREATE TABLE `tenant_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `created_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `updated_time` timest.

2022-03-21 14:54:47 2506

原创 关于SpringMvc中HttpMessageConverter的理解

版本springboot-2.2.6HttpMessageConverter在SpringMVC中的作用最近通过configureMessageConverters重写HttpMessageConverter时候,通过浏览器请求出现了乱码,响应头也从Content-Type :application/json 变成Content-Type: text/html,下面是代码片段 // 字符串 StringHttpMessageConverter stringHttpMess

2022-01-27 01:45:20 717

原创 springboot实现注解获取登录参数

创建一个注解/** * 登录信息获取注解 * * @author zh * @date 2022/1/12 16:58 */@Target({ ElementType.PARAMETER })@Retention(RetentionPolicy.RUNTIME)public @interface LoginUser {}解析方法参数,并做业务处理@Slf4jpublic class LoginUserHandlerMethodArgumentResolver impl.

2022-01-20 10:16:20 848

原创 springcloud-nacos-config的基本使用

客户端配置server: port: 9002spring: servlet: multipart: max-file-size: 5MB application: name: vlms-user profiles: active: dev cloud: nacos: discovery: server-addr: ${common.nacos.server-addr} group: ${co.

2022-01-20 10:03:32 563

原创 springcloud-gateway中基本的请求日志打印

定义一个业务的过滤器public class AuthFilter implements GlobalFilter, Ordered { private static final Logger log = LoggerFactory.getLogger(AuthFilter.class); @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain ch.

2022-01-20 09:57:48 1569

原创 Druid连接错误无限重试的分析

目前有一个场景,动态切换数据源,但是切换的数据源有可能会连接失败,连接失败时,会无限报错,希望能够捕捉这个错误,防止日志爆满。2022-01-14 15:45:01.170 ERROR 21920 --- [Create-45539238] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://10.118.9.50:3306/vlms_dev?useUnicode=true

2022-01-14 15:56:23 4942 1

原创 HashMap源码理解

下标计算:https://blog.csdn.net/weixin_41046681/article/details/100850318?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blo

2021-12-12 23:31:57 173

原创 ArrayList的源码理解

ArrayList的源码解读使用无参构造初始化时,初始化容量为0 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; }当开始add添加元素时,初始化容量为DEFAULT_CAPACITY = 10因为第一次添加时elementData.length为0,所以会走grow(), elementData = Arrays.copyOf(elementData, newCa

2021-12-12 22:24:58 287

原创 关于springcloud线程池隔离和信号量隔离

信号量信号量Semaphore是一个并发工具类,用来控制可同时并发的线程数,其内部维护了一组虚拟许可,通过构造器指定许可的数量,每次线程执行操作时先通过acquire方法获得许可,执行完毕再通过release方法释放许可。如果无可用许可,那么acquire方法将一直阻塞,直到其它线程释放许可。执行tryAcquire如果获取不不到就放弃。线程池线程池用来控制实际工作的线程数量,通过线程复用的方式来减小内存开销。线程池可同时工作的线程数量是一定的,超过该数量的线程需进入线程队列等待,直到有可用的工作线程

2021-12-12 21:19:52 1305

原创 Springboot自动装配源码理解

注解@SpringBootApplication@SpringBootApplication继承了 -@SpringBootConfiguration 继承 @Configuration ,声启动类是一个配置类 -@ComponentScan 包扫描范围 -@EnableAutoConfiguration 自动配置注解(重点)自动配置导入选择器获取自动配置类列表怎么获取的呢获取自动配置包下的spring.factories(不仅仅这里有,符合sprin

2021-12-12 18:18:03 318

原创 mysql间隙锁导致死锁

建表语句CREATE TABLE `aaa_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf-8_mb4;产生死锁的场景sessionA1、start TRANSACTION;

2021-12-09 18:10:40 1133

原创 养成记录的好习惯

开发几年有余,没有养成记录的好习惯,这个习惯从今天开始。

2021-12-03 09:55:05 58

原创 关于Union all的debug

关于Union all 使用注意事项:字段数量、数据类型、顺序必须相同

2019-06-04 10:35:02 110

空空如也

空空如也

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

TA关注的人

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