
个人
文章平均质量分 52
土豆怎么做都好吃
这个作者很懒,什么都没留下…
展开
-
异步线程任务处理,主线程抛出异常事务回滚验证
且事务正常回滚,50个请求,只存储了3个,且请求不连续,因为被回滚掉了。1、将线程池参数调到最小,并将队列设置为0。线程池大部分拒绝,实际只处理了3个任务。2、设置拒绝策略为抛弃并抛异常。总结:想都是问题,做都是答案。jmeter设置50请求/s。原创 2023-10-10 15:58:51 · 386 阅读 · 0 评论 -
python+milvus实现一个以图搜图系统
当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。原创 2023-04-11 10:54:07 · 4665 阅读 · 4 评论 -
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 · 1250 阅读 · 0 评论 -
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 · 2367 阅读 · 3 评论 -
spring-webflux理解
了解spring-webflux之前,我们要先了解一个词,是一套反应式编程 标准 和 规范,如果 Publisher 发布消息太快了,超过了 Subscriber 的处理速度,那怎么办?这就是 Backpressure 的由来。Reactive Programming 框架需要提供 背压机制,使得 Subscriber 能够控制 消费消息 的速度其中,Subcriber 中便包含了上面表格提到的 onNext、onError、onCompleted 这三个方法。原创 2022-11-21 18:53:43 · 890 阅读 · 0 评论 -
mysql分页的sql性能优化
背景:因为公司的报表需求,需要批量统计数千万数据,单个sql无法满足使用场景,于是分页将数据查询出来并进行处理。原创 2022-09-09 14:46:04 · 597 阅读 · 0 评论 -
关于mysql的默认排序
为什么mysql的排序不是按照主键排序的呢原创 2022-09-08 15:11:57 · 1781 阅读 · 0 评论 -
common-pool2实现sftp连接池
ApacheCommonPool2是Apache提供的一个通用对象池技术原创 2022-07-26 18:32:17 · 2271 阅读 · 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 · 458 阅读 · 0 评论 -
多线程下实现SFTP上传下载
原代码:原创 2022-06-29 14:53:46 · 2067 阅读 · 0 评论 -
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 · 3853 阅读 · 0 评论 -
LogstashLayout日志模板简化
背景项目发布后Kibana展示的日志,过于繁琐,看的眼睛要瞎了,如下打开JSON发现,有这么多的key,希望能够只输出系统信息,便于查错。分析elk的流程,日志的输出到es是会有模板的,而模板应该是logstash定义的,找到这段配置, <layout class="net.logstash.logback.layout.LogstashLayout" > <includeContext>true</includeC原创 2022-05-13 18:06:13 · 941 阅读 · 0 评论 -
本地使用浏览器模拟跨域请求
浏览器模拟跨域请求随便写一个域名,然后在调试工具使用异步请求,保证请求的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 · 3302 阅读 · 0 评论 -
大数据量下如何排序的个人理解
需求有几千万数据订单,需要查出来,并且根据用户去重并且,筛选出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 · 862 阅读 · 0 评论 -
对比Mysql的流式查询和普通分页查询
背景最近有一个场景,需要大批量处理数据,大概1200w的数据,之前是按照分页查询的方式来处理,但是会导致查到最后越来越慢,想到流式查询和游标查询。游标查询的方式,可能对数据库性能影响比较大,本次测试就不考虑了。jvm参数设置由于本地测试,机器内存比较大,为了测试效果,于是将jvm设置小一点-ea -Xms512M -Xmx512m普通查询 @Test public void testCommonQuery(){ tmpFeeService.commonQuery原创 2022-05-04 14:32:05 · 3501 阅读 · 0 评论 -
EasyExcel转化为byte[]、inputStream或者OutputStream
Excel转化为流操作原创 2022-04-09 18:31:28 · 11684 阅读 · 10 评论 -
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 · 938 阅读 · 0 评论 -
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 · 612 阅读 · 0 评论 -
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 · 1788 阅读 · 0 评论 -
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 · 196 阅读 · 0 评论 -
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 · 320 阅读 · 0 评论 -
关于springcloud线程池隔离和信号量隔离
信号量信号量Semaphore是一个并发工具类,用来控制可同时并发的线程数,其内部维护了一组虚拟许可,通过构造器指定许可的数量,每次线程执行操作时先通过acquire方法获得许可,执行完毕再通过release方法释放许可。如果无可用许可,那么acquire方法将一直阻塞,直到其它线程释放许可。执行tryAcquire如果获取不不到就放弃。线程池线程池用来控制实际工作的线程数量,通过线程复用的方式来减小内存开销。线程池可同时工作的线程数量是一定的,超过该数量的线程需进入线程队列等待,直到有可用的工作线程原创 2021-12-12 21:19:52 · 1496 阅读 · 0 评论 -
Springboot自动装配源码理解
注解@SpringBootApplication@SpringBootApplication继承了 -@SpringBootConfiguration 继承 @Configuration ,声启动类是一个配置类 -@ComponentScan 包扫描范围 -@EnableAutoConfiguration 自动配置注解(重点)自动配置导入选择器获取自动配置类列表怎么获取的呢获取自动配置包下的spring.factories(不仅仅这里有,符合sprin原创 2021-12-12 18:18:03 · 344 阅读 · 0 评论 -
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 · 1202 阅读 · 0 评论 -
养成记录的好习惯
开发几年有余,没有养成记录的好习惯,这个习惯从今天开始。原创 2021-12-03 09:55:05 · 91 阅读 · 0 评论