- 博客(85)
- 资源 (1)
- 收藏
- 关注
原创 EasyExcel的追加写入(新增POI、CSV)
2.将已有的excel通过FIleInputStream流读出来,加载到内存当中,然后获取对应sheet页的行数,进行追加操作。总结:目前市面上流行的2中EasyExcel和POI都不是真正的对物理excel文件进行追加导入。1.for循环查询数据,将数据写入缓存,最后一次性写入excel。唉~别急,我再写个POI的。
2024-01-05 17:41:29
7046
4
原创 @FeignClient注解,fallback和fallbackFactory
对比参考:https://blog.youkuaiyun.com/weixin_44285713/article/details/133018382
2023-11-09 15:57:24
446
原创 redis查看执行的命令+配置文件命令
Slowlog 只会记录执行时间超过指定阈值的命令,默认阈值是 10 毫秒。同时,Slowlog 的记录是有限的,当记录数量达到设置的最大限制后,旧的记录会被新的记录替代。这个参数定义了 Slowlog 的最大长度,即 Slowlog 中可以记录的最多命令数量。当 Slowlog 中的记录数量达到这个值时,旧的记录会被新的记录替代。这个参数定义了一个执行时间的阈值,单位是微秒(μs)。你可以使用 SLOWLOG GET 命令来获取第 n 条记录的详细信息,其中 n 是记录的索引(从 0 开始)
2023-08-16 18:39:50
841
原创 rocketMQ知识点
8.RocketMQ的主从同步机制是怎样的?如何保证主从同步的可靠性?3.RocketMQ的消息消费模式有哪些?如何保证消息消费的可靠性?10.RocketMQ如何实现分布式事务消息?如何保证事务的一致性?4.RocketMQ的消息发送流程是怎样的?如何保证消息的可靠性?5.RocketMQ的消息队列数量如何设置?6.RocketMQ的消息过滤机制是什么?2.RocketMQ的消息存储方式是什么?7.RocketMQ如何处理消息的重复发送和重复消费问题?9.RocketMQ的延迟消息如何实现?
2023-04-26 17:56:30
172
原创 Dubbo负载均衡的源码流程(2022.5.30)
默认负载均衡策略:RandomLoadBalance(随机策略)在 Dubbo 3.0 中,负载均衡策略存在以下几种:1.RandomLoadBalance (随机)2.RoundRobinLoadBalance (轮询)3.ShortestResponseLoadBalance (最短反馈)4.LeastActiveLoadBalance (最少活跃)5.ConsistentHashLoadBalance (一致性 hash)..................
2022-05-27 15:33:24
589
原创 eden区分配至s0、s1
1.eden如何分配给s0、s1由此图看出,eden区做第一次YGC时,放入s0、s1时是随机的。2.是否内存泄漏FGC次数很少,占用时间很少,YGC很频繁,但是每次清理完,eden区几乎为0,达到预期效果,没有内存泄漏问题......
2022-05-11 14:54:03
1106
转载 JAVA去除括号及里面的内容(正则表达式 && 代码算法)
转载:https://www.cnblogs.com/diehuacanmeng/p/13223334.htmlprivate static String clearBracket(String context, char left, char right) { int head = context.indexOf(left); if (head == -1) { return context; } else {
2022-05-06 11:20:34
4649
3
原创 重构项目(mq消费业务)
上周历时2个月,重构完了一个以消费mq为主的项目,一开始花了半年的时间来吃透该项目的业务逻辑,在重构的过程中,对业务类进行优化,封装工具类,移除没有必要的私有方法,引入两个线程池,一个主要进行mq业务消费,一个进行末尾的解耦业务操作(主要是mq推送),减少DB的调用,全部准备数据在业务开始时通过多线程进行准备,后续业务即拿即用,解决一些隐藏隐患,提升模板模式的覆盖率,引入xxl-job,定时拉取mq消息(这里没有用推送方式,是因为该项目一天的消费量是在4-5千万级别,但是线上只部署了3台,为了让其在周末以及
2022-04-28 14:57:54
555
原创 nginx配置(相关字段含义)
########### 每个指令必须有分号结束。##################user administrator administrators; #配置用户或者组,默认为nobody nobody。#worker_processes 2; #允许生成的进程数,默认为1#pid /nginx/pid/nginx.pid; #指定nginx进程运行文件存放地址error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,serv
2022-04-28 11:34:12
399
原创 加盐密码校验
过完年,因为业务,需要对采购单进行改价限制,通过密码去修改价格,做了一个加盐的方式,进行密码校验,现在刚好有时间进行整理,列举一下接口,和底层的代码逻辑。Controller/** * 密码 */@RestController@RequestMapping("/api/rest/password")@Api(tags = "密码")@Slf4jpublic class PasswordController { @DubboReference(version="0.1", time
2022-04-26 18:05:37
2892
原创 从spring容器中获取自动装配的bean
第一种:最常见工具类import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component;@Componentpublic class AppBea
2022-04-26 16:41:15
243
原创 使用Java 8的DateTimeFormatter取代传统的SimpleDateFormat
SimpleDateFormat和Calendar等传统日期类存在多个设计缺陷,以至于在Java中处理日期经常需要用到JodaTime等第三方工具库。Java 8已经提供新的日期工具类,和JodaTime是同一个作者,吸收了JodaTime的经验,基本涵盖了JodaTime的所有功能,所以不需要再引入JodaTime也不需要再使用传统日期工具类.Java8的java.time package主要提供了下面的类:● Instant:表示格林威治时间(UTC)开始的时间点,初始时间为1970-01-01 0
2022-04-15 18:07:46
3532
转载 搭建java脚手架
转载:https://www.cnblogs.com/sun-flower1314/p/15098057.html一、创建脚手架1.创建maven项目,引入脚手架依赖 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-archetype-plugin</artifactId
2022-03-17 17:28:45
3017
原创 @FeignClient 实现简便http请求封装
我们一般在代码中调用http请求时,都是封装了http调用类,底层自己定义请求头,在写的时候,也是需要对返回的值进行json解析,很不方便。name:name属性会作为微服务的名称,用于服务发现url:host的意思,不用加http://前缀decode404:当发生http 404错误时,如果该字段位true,会调用decoder进行解码,否则抛出FeignException使用流程:(1)创建接口类(FeignApi),来统一规范需要调用的第三方接口@FeignClient(name =
2022-02-18 16:14:45
1429
原创 Identify and stop the process that‘s listening on port 11104 or configure ...
项目引入xxl-job,对应配置文件端口为11104,Application启动项的端口也为11104,即报错。修改默认端口即可。
2021-12-02 14:25:38
1005
原创 设计模式学习
设计模式单例模式单例模式定义:保证一个类只有一个实例,并且提供一个全局访问点。场景:重量级的对象,不需要多个实例,如线程池,数据库连接池。1.懒汉模式:延迟加载,只有在真正使用的时候,才开始实例化。1)线程安全问题2)double check 加锁优化3)编译器(JIT),CPU有可能对指令进行重排序,导致使用到尚未初始化的实例,可以通过添加volatile关键字进行修饰。2.饿汉模式:类加载的初始化阶段就完成了实例的初始化。本质上就是借助jvm类加载机制,保证实例的唯一性。3.静态内部类
2021-06-29 17:06:21
121
原创 多线程学习
在 java 中实现多线程有四种方式,如下:1.继承 Thread 类2.实现 Runnable 接口3.使用 FutureTask4.使用 Executor 框架
2021-06-22 16:54:09
716
原创 JVM学习
1.内存结构图2.类加载过程(1).(2).(3).(4).解析:可以通过javap -v Math.class > Math.txt 反编译成字节码文件,看看执行流程,会展示引用的操作方式。(5).3.类加载器
2021-06-18 13:43:45
241
原创 Docker学习
我选择了在linux安装,使用的系统是CentOS,下面先安装这个docker。一、安装CentOS(7|8)下载地址: https://mirrors.aliyun.com/centos/7.9.2009/isos/.1.有个得说一下,就是VM配置网关,先找到这个子网IP和子网掩码。2.以root身份进入虚拟机,输入以下命令:3.设置网络,wq保存退出。4.重启下即可,然后连xshell就行了,xshell就不讲了。二、安装docker官网教程: https://docs.docke
2021-06-15 23:04:05
210
原创 springboot日志使用笔记(logback,log4j2.log4j,jul)(slf4j,jcl)
springboot自动集成了logback,jul,log4j,并用logback-classic桥接器、jul-to-slf4j适配器、log4j-to-slf4j适配器集成与门面slf4j-api。
2021-06-12 22:19:33
1141
原创 mqsql底层实现及索引优化
数据结构可视化网站:链接: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html.索引数据结构:·二叉树·红黑树·Hash表·B-Tree
2021-06-12 22:18:58
543
2
原创 idea Springboot热部署
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional></dependency>1.setting2.Ctrl + Shift + Alt + / 勾选后,关闭即可修改项目等待即
2021-06-10 22:55:28
76
原创 Springboot清除缓存(2021-06-08)
maven:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency>注入:@SpringBootApplication@EnableCachingpublic class CacheApplication {
2021-06-08 12:50:26
3440
原创 写报表时,对生成数据进行阶梯式的计算方式(2021-06-04)
需求:一个产品有不同的订单,交付日期不同,现把所有的订单按照交付日期的先后依次展示出来,并找出此产品的库存,依次进行满足,将能满足的标记出来。预期样式:思路:红色方框标记的列是不存在的,是需要通过计算出来的,注意需要库存总数这列,是累加的。1.创建表,插入原始数据// 1.1创建产品库存表CREATE TABLE product_inventory( product_name varchar(20), inventory int(11))// 1.2插入产品及库存数据INSERT IN
2021-06-04 16:08:31
315
原创 ETL思想(2021-05-31)
工作中,接触到了数据处理,不过并没有直接使用到ETL在市面上的工具,部门中的一个小组基于kettle开发了一个可视化的便捷平台,我使用平台来进行数据的处理。1.定期需要清理的数据,写好sql脚本,定时任务去清理。2.不同库的数据,比如mysql,sybase,vector这三个数据库,我需要他们各自的数据,来做一个报表,这时推荐将临时表建于mysql中,因为mysql语法相对而言比较流行,更多的被熟知。3.需要进行逻辑运算的数据,要将数据做成一个报表,有一些情况是不需要写code,直接用临时表和sql
2021-05-31 15:29:35
172
原创 sql调优例1(当数据量大时,对WHERE条件进行分割)
今天对一个视图进行优化,数据量有百万以上,一共关联了7张表,其中有一张表 JOIN 了两次(假设为 a 和 b ),且两次 ON 的判断条件不一样,这就导致了会用到不同的索引,而且在 WHERE 条件的时候,a 用到了3个条件判断,b用到了4个条件判断,这样导致了sql执行的时候消耗过多,时间变慢。调优后查询时间从30s变为了6s,达到预期要求。假设上面说的jion两次的表为test表,看如下SQL:SELECT DISTINCT t.a, t.b, t.c, a.name, b.carF
2020-12-07 17:47:10
639
原创 JPA注解写sql语句(@Query(nativeQuery = true, value =...... )
创建实体类Log,接口LogService,接下来写具体代码说一下逻辑,这代码是对数据做删除,输入时间days,从当前时间开始,往前+days的时间,在这个期间外的数据,进行删除.public interface LogService extends JpaRepository<Log, Integer> { @Transactional @Modifying @Query(nativeQuery = true, value = "delete from DB.
2020-10-13 11:30:00
2737
原创 求jpa批量更新时,不先select再update的解决办法
jpa原生方法如下: jpa.saveAll();当我需要实现批量更新时,jpa会先去执行select一条一条的查询完,再一条一条的update,效率太低,请问有没有别的方法?(逻辑不变,框架不变)
2020-09-18 09:27:13
1146
6
原创 快俩月没更(2020.08.06)
这一个半月天天在搬砖,了解业务,学习了以下的技术:1.查询数据库的方式:(1)jpa(spring data)(2)JDBC2.发送请求(POST、GET)3.写单元测试,Mock这些,添加断言,预测响应结果。4.docker 启动项目,人造数据,给自动化测试提供数据。5.jenkins 将提交的业务代码和自动化测试代码一起build,验证代码可行性。6.搬砖搬砖,还是搬砖。有时间我打算把单元测试写一下,溜了溜了。...
2020-08-06 17:51:30
131
原创 Jmeter的压测报告展示在Grafana图形化界面的安装教程(安装window10版本的docker、配置influxDB)(2020.06.19)
最近在入门性能测试,首选的是jmeter的压测,想对其产生的报告进行一个图形化界面的展示,需要用到docker容器、influx数据库、grafance图形化界面。说一下总的流程:在jmeter里面进行接口的压测,然后设置后端监听器,指定influxDB运行的端口,将压测数据传至influxDB,然后grafance从influxDB中获取数据,进行图形化展示。influxDB和grafance都需要运行在docker容器中。1.jmeter这个直接去官网下载解压包,点击 /bin目录下的 jme
2020-06-19 13:42:14
982
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人