- 博客(302)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 Spring Cloud Gateway动态路由及路由插件实现方案
性能问题:Zuul基于线程隔离,一个请求需要一个线程处理,而Gateway基于事件驱动,少量线程即可支持大量并发(仅仅是并发度和吞吐量,并不能提高业务处理效率),在性能不是很好的服务器上,太多的线程数反而会降低并发度。流行度:Zuul在后期的SpringCloud版本中将不会再继续集成,所以有必要更换为Gateway。
2024-08-18 16:07:42
1207
原创 UNION ALL 在单个子查询中排序不生效问题
因此,在这种情况下,ORDER BY通常与LIMIT结合使用,以确定要为SELECT检索的选定行的子集,即使它不一定影响最终UNION结果中这些行的顺序。所以,当在子查询中加上limit后,不得不进行排序,如果不排序,那这个子查询本身的语义就是错误的,即。有两张表:表A,和表B,需要对A中数据按排序字段排序,对B表也按排序字段排序,然后返回并集。初看似乎没什么问题,数据被筛选出来了,且数量正确,但是,排序却没有按照如期的顺序排列。当让,如果不需要局部有序,而是结果集整体有序,则再套一层后在外层排序即可。
2024-08-06 16:43:05
906
原创 数据库结构差异对比工具
前几年写了一个数据库对比工具,但是由于实现方式的原因,数据库支持有限,所以重新设计了一下,便于支持多种数据库,并且更新了UI。
2023-08-20 12:33:51
1447
原创 Tauri应用开发(四):前后端通信
tauri作为客户端应用,使用rust作为后端,我们可以使用rust来编写后端功能。然而rust的学习成本相对来说还是比较高的,并且我们希望不是所有的功能都在客户端实现,所以我们还是需要和后端程序(Java、Node应用等)进行通信。本文使用第二种方式,因为对于客户端应用,访问后端服务时,如果使用axios存在跨域问题,如果在后端不允许跨域或者不方便配置跨域时,tuari提供的API便可以很好的解决这个问题。
2023-05-21 21:26:21
2850
2
原创 Tauri应用开发(二):创建第一个Tauri应用
接下来就可以愉快的开发了,开发过程中如果没有涉及到和tauri后端通信,则无需关注rust部分,完全使用Vue开发即可。提示:tauri创建的前端工程,默认使用vite,如果你更熟悉webpack,也是可以更换的。💡注意:请确保Node.js和Rust已经正确安装。,任选一个即可,这里选择JavaScript。在创建过程中,需要根据提示选择配置项。
2023-05-21 18:14:11
1281
原创 Tauri应用开发(三):自定义拖拽区域
tauri默认的顶部可拖拽,有时候我们不需要这个拖拽,或者需要自定义拖拽区域时,就需要通过tauri提供的属性来自定义拖拽区。![在这里插入图片描述](https://img-blog.csdnimg.cn/de155809350d4f3ba39cc4078b7e593d.png接下来我们就实现一个美化过后的拖拽区。我们定义一个Vue组件,名为Header,添加如下代码,需要注意的,在需要拖拽的区域需要添加属性,但仅仅添加这个属性是不够的,因为当div嵌套多层时,
2023-05-21 18:13:33
2351
原创 Tauri应用开发(一):前言
Hi~,欢迎阅读tauri系列的文章。这是一系列关于tauri开发的内容,其中总结了自己在开发过程中遇到的问题以及解决方案,如果你正在学习或准备使用tauri进行客户端应用的开发,则可以参考本系列文章。
2023-05-21 18:13:30
491
原创 【sim-storage-client】SpringBoot集成Minio与本地存储
sim-storage-client提供文件上传和下载功能,并集成了FTP、Minio以及本地存储,统一上传、下载接口,也支持自定义扩展存储方式。
2022-09-27 12:28:57
720
原创 【Java基础系列】循环与迭代
基本for循环增强for循环增强for循环适用于对集合类和数组的循环。对于集合类,本质上,它是基于Collection的迭代器(iterator)的简便写法。对于数组,编译后,依然是基本的for循环。
2022-09-20 12:19:51
1279
原创 【Java基础系列】基本数据类型及包装类
Java共有8中基本数据类型:byte、boolean、char、short、int、float、long、double。对应的包装类分别为:Byte、Boolean、Character、Short、Integer,Float,Long,Double。
2022-09-18 23:03:28
2061
原创 Ribbon自定义负载策略实现灰度路由
这是一个基于Ribbon实现的微服务灰度路由,实现了以下功能:动态修改ribbon负载策略随机权重的灰度路由(流量切分)指定Header匹配的灰度路由指定Cookie匹配的灰度路由指定请求参数的灰度路、整体流程如下:ribbon本质上是一个客户端负载工具,支持多种负载策略,并且支持自定义负载策略,因此我们就可以重写它的负载规则,并在运行时,动态修改规则,从指定位置(Header、Cookie等)获取参数,判断是否需要访问灰度服务,达到灰度路由的目的。 public static
2022-03-28 00:31:50
1322
原创 Element UI Table表格封装
说明针对Element UI table进行了简单封装,目的是减少代码量,主要封装内容如下:pagination:是否分页,默认truecolumns:列配置(支持复杂表头)data-url:获取数据的url,GET方法page-size:每页显示条数,默认10current-page:当前页码optionColumn:操作栏列show-loading:是否展示loading,默认trueload-data:加载数据,返回固定结构的Json(优先级高于data-url)完整代码:h
2021-05-20 20:51:42
1675
2
原创 【Flink】Flink与Nacos集成
1. 集成原因在传统的开发中,我们通常将系统配置保存在数据库中,供程序访问;在微服务中,我们通常将系统配置保存在分布式配置中心,以便程序能够在运行时动态的获取配置而不用重启程序。同样的,在Flink程序中,我们也可以将配置存储在固定的配置中心进行统一的管理。Flink本身提供了ParameterTool工具类来从启动参数、properties文件以及系统环境变量等位置获取配置信息,但由于ParameterTool依赖Flink的任务节点,必须在每个任务节点上都保存一份配置,很不方便,所以我们需要把配置保
2021-01-11 22:51:01
3047
1
原创 【Flink】关于ParameterTool
本篇文章简单了解一下Flink的工具类ParameterTool的使用。1. ParameterTool简介ParameterTool是Flink提供的读取程序启动参数、配置文件、环境变量以及Flink自身配置参数等配置的的一个工具类。在开发时也经常使用到它。2. ParameterTool使用示例2.1 从启动参数中或者配置程序启动时,传入参数--name hello。获取参数:ParameterTool parameterTool = ParameterTool.fromArgs(args
2021-01-11 21:36:37
5569
原创 【Flink】构建一个简单的flink应用
本篇文章,主要通过Flink来实现“Hello Word”、批处理的“Word Count”以及流处理的“Word Count”来体验一下Flink.1. 版本说明本系列文章所使用的flikn版本为最新的1.12.0(截至2021年1月)Flink:1.12.0Java:1.8Maven:3.6.32. 一个最简单的Flink程序:Hello Word在学习任何一门语言或者框架的时候,我们总是以“Hello Word”开始。//JavaSystem.out.println(
2021-01-10 21:55:30
1071
原创 【Flink】Flink环境搭建
1. Flink安装1.1 下载地址Flink版本列表:https://archive.apache.org/dist/flink/最新版1.12.0下载地址:https://archive.apache.org/dist/flink/flink-1.12.0/flink-1.12.0-bin-scala_2.12.tgz1.2 安装Flink下载1.12.0版本:wget https://archive.apache.org/dist/flink/flink-1.12.0/flink-1.
2021-01-10 21:46:52
2218
原创 链接生成工具anurl的使用
自己用空闲时间做的一个链接生成工具anurl,可以生成付费链接,用户支付后跳转到指定的页面以获取资源。地址:https://anurl.net欢迎有需要的小伙伴来体验,并指出bug。使用场景:付费资源生成一个链接,用户支付一定费用后,可跳转到原始链接获取资源网盘付费生成一个链接,并指链接类型为“提取码”,用户在支付后可显示网盘验证码获取用户联系方式,进行线下推广生成一个链接,并指定资源获取方式为“手机验证”或“邮箱验证”来获取用户联系方式,可进行线下推广等场景目前支持的
2020-12-13 01:21:10
4431
10
原创 【小笔记】2020-11月月度总结
1、事务超时的默认处理方式场景oracle sql执行完成,程序未见异常,但是数据库中没有数据,即间歇性的丢失数据。mysql不存在这个问题。原因mysql与oracle对事务超时后的处理方式不同2、Spark读取hive分区表报错场景spark读取hive某个hive表的分区错误Input path does not exist: hdfs://hdp6.tydic.com:8020/apps/hive/warehouse/hi_tydic_lable.db/contact_result/
2020-11-29 00:00:57
247
原创 【小笔记】2020-10月月度总结
场景1测试环境ambari上的hbase无法启动,主节点启动后立即切换到备份节点,查看日志发现hbase启动时会读取version文件,但该文件块有损坏,导致启动失败。
2020-10-28 20:47:25
127
原创 【小笔记】一次kafka推送效率的优化
场景定时任务从Hbase扫描到数据后,经过处理推送到kafka,但是推送效率很低,导致积压了几千万的数据在Hbase中没有推送出去。分析导致推送效率低一般有3个方面导致:kafka的分区数太少由于kafka写数据是写入到分区中的,分区数越多,并行度约高,效率就越高。所以可以通过增加分区数来提高写入效率。但是分区改变会导致消费者间重新分配partition,有可能出现重复消费的情况。业务处理时间太长这个需要优化业务代码来解决了写线程数太少单线程发送消息的效率肯定很低了解决
2020-08-29 22:36:49
833
原创 挖矿病毒伪装TOP命令占用CPU问题排查
场景前几天搭建了个frp的访问通道,用来在外网访问自己的内网的一个集群,一开始无任何问题,但是呢,从昨天开始,集群的一些组件就无法启动或者丢失连接,并且主机列表里的心跳信息是好久之前的,本以为是服务器挂了,但是看了一下是好的,就是有点卡,以为是服务启用多了,内存或磁盘满了,然后看了下发现并没有,,然后就想看下CPU的情况,但是呢,top命令竟然无法使用:到/usr/bin下边一看,top竟然没得咯,想想估计是误删吧,就从其他机器上scp一个过来,然而,其他机器上也没有,那只能先装个htop看下情况。
2020-08-05 22:39:36
3574
原创 【小笔记】Mybatis多数据源环境下的sql-id校验
场景系统同时支持mysql、oracle、mycat、gaussdb等多套数据库(环境),由于个个数据库语法的差异,为了更好的隔离开代码,采用分文件的形式来写sql,然而在开发过程中难免忘记少写一个数据库方言的sql,只有切换语言环境时才会发现问题。所以需要提前校验下各个环境下的sql语句是否有遗漏。实现import org.apache.commons.io.FileUtils;import org.apache.commons.io.filefilter.IOFileFilter;impor
2020-08-04 19:45:43
325
原创 【小笔记】mock server导致的HttpMessageNotReadableException问题记录
场景前端post请求发出后,后端无响应,一段时间后报错:I/O error while reading input message; nested exception is org.apache.catalina.connector.ClientAbortException分析及解决postman调用接口正常,问题在前端,但,前端不熟,遂google,在一个issues找到解决方案:https://github.com/PanJiaChen/vue-element-admin/issues/
2020-08-01 15:28:44
914
2
原创 vue-query-builder获取sql
Vue版的query builder。可用于前端构造查询条件,类似jquery build的简易版。源地址:https://github.com/dabernathy89/vue-query-builder由于作者比较纠结是否应该在前端进行sql转化而没有加这个功能????,所把它搬过来简单的加上了将json条件转化为sql的功能。插件本身似乎还是有些bug或者不完善的地方,如若使用还是得拿下来改巴改巴。 <vue-query-builder :rules="rules" v-model="o
2020-07-28 00:26:47
3059
8
原创 【小笔记】多节点定时任务引起的对DB式分布式锁的思考
## 1. 场景定时任务定时扫表,每天进行数据上报。遇到一个问题:定时任务程序是多节点部署的,如何保证数据不会重复上报呢?
2020-07-23 22:09:16
773
原创 使用SQL查询ES:SpringBoot+Jdbc+Mybatis+Elasticsearch整合方案
1. 前言ES作为一个搜索工具,寄托于Lucene之上,提供了方便的数据存储和搜索服务,一般的用它来作为网页数据索引以及存储用户画像(即用户标签)数据,可以提供复具有复杂的查询条件的服务。例如在网页索引中,通过倒排的方式索引的方式,对文档进行分词存储,可以很快的定位关键字所在的文档,从而达到毫秒级的搜索效率;而在用户画像存储中,ES既可以作为标签宽表,提供类似HIVE宽表的特性,又可以达到传统关系型数据库或者HBase的实时查询的要求,所以在一般的用户画像存储中也是不二之选。ES是一个搜索工具,它提供的
2020-07-13 00:02:38
6989
原创 【小笔记】大数据量excel解析工具性能对比
Excel存储格式POI表格解析参考:https://poi.apache.org/components/spreadsheet/多线程读取EasyExcelHutool Excel工具
2020-07-07 13:15:36
2935
原创 【小笔记】Activiti扩展数据库支持类型
场景项目需要使用GaussDB,Activiti默认支持的数据库中不包含GaussDB,需要对其进行扩展。分析在其源码org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.getDefaultDatabaseTypeMappings()中,写明了支持的数据库的类型:h2、hsql、mysql、oracle、postgres、mssql、db2并在初始化时进行了初始化:protected static Properties data
2020-06-25 12:48:21
2053
3
工件零件缺陷检测系统(C#)
2021-12-15
简易版的自行车速度计(C#实现)
2021-11-25
基于RFID射频识别的商品录入和管理系统(C#)
2021-11-25
各个版本hadoo.dll以及winutils
2019-03-29
qq聊天记录分析包
2018-02-20
微信文章抓取
2017-10-14
有些创业想法,想和感兴趣的小伙伴一起来讨论讨论
2024-02-22
寻找会Python的小伙伴一起开发
2024-01-08
Java Hash Map containsValue的时间复杂度是多少呢
2018-02-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人