- 博客(294)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 数据库结构差异对比工具
前几年写了一个数据库对比工具,但是由于实现方式的原因,数据库支持有限,所以重新设计了一下,便于支持多种数据库,并且更新了UI。
2023-08-20 12:33:51 921
原创 Tauri应用开发(四):前后端通信
tauri作为客户端应用,使用rust作为后端,我们可以使用rust来编写后端功能。然而rust的学习成本相对来说还是比较高的,并且我们希望不是所有的功能都在客户端实现,所以我们还是需要和后端程序(Java、Node应用等)进行通信。本文使用第二种方式,因为对于客户端应用,访问后端服务时,如果使用axios存在跨域问题,如果在后端不允许跨域或者不方便配置跨域时,tuari提供的API便可以很好的解决这个问题。
2023-05-21 21:26:21 2115
原创 Tauri应用开发(二):创建第一个Tauri应用
接下来就可以愉快的开发了,开发过程中如果没有涉及到和tauri后端通信,则无需关注rust部分,完全使用Vue开发即可。提示:tauri创建的前端工程,默认使用vite,如果你更熟悉webpack,也是可以更换的。💡注意:请确保Node.js和Rust已经正确安装。,任选一个即可,这里选择JavaScript。在创建过程中,需要根据提示选择配置项。
2023-05-21 18:14:11 1078
原创 Tauri应用开发(三):自定义拖拽区域
tauri默认的顶部可拖拽,有时候我们不需要这个拖拽,或者需要自定义拖拽区域时,就需要通过tauri提供的属性来自定义拖拽区。![在这里插入图片描述](https://img-blog.csdnimg.cn/de155809350d4f3ba39cc4078b7e593d.png接下来我们就实现一个美化过后的拖拽区。我们定义一个Vue组件,名为Header,添加如下代码,需要注意的,在需要拖拽的区域需要添加属性,但仅仅添加这个属性是不够的,因为当div嵌套多层时,
2023-05-21 18:13:33 1652
原创 Tauri应用开发(一):前言
Hi~,欢迎阅读tauri系列的文章。这是一系列关于tauri开发的内容,其中总结了自己在开发过程中遇到的问题以及解决方案,如果你正在学习或准备使用tauri进行客户端应用的开发,则可以参考本系列文章。
2023-05-21 18:13:30 363
原创 【sim-storage-client】SpringBoot集成Minio与本地存储
sim-storage-client提供文件上传和下载功能,并集成了FTP、Minio以及本地存储,统一上传、下载接口,也支持自定义扩展存储方式。
2022-09-27 12:28:57 655
原创 【Java基础系列】循环与迭代
基本for循环增强for循环增强for循环适用于对集合类和数组的循环。对于集合类,本质上,它是基于Collection的迭代器(iterator)的简便写法。对于数组,编译后,依然是基本的for循环。
2022-09-20 12:19:51 1191
原创 【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 1815
原创 Ribbon自定义负载策略实现灰度路由
这是一个基于Ribbon实现的微服务灰度路由,实现了以下功能:动态修改ribbon负载策略随机权重的灰度路由(流量切分)指定Header匹配的灰度路由指定Cookie匹配的灰度路由指定请求参数的灰度路、整体流程如下:ribbon本质上是一个客户端负载工具,支持多种负载策略,并且支持自定义负载策略,因此我们就可以重写它的负载规则,并在运行时,动态修改规则,从指定位置(Header、Cookie等)获取参数,判断是否需要访问灰度服务,达到灰度路由的目的。 public static
2022-03-28 00:31:50 1198
原创 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 1611 2
原创 【Flink】Flink与Nacos集成
1. 集成原因在传统的开发中,我们通常将系统配置保存在数据库中,供程序访问;在微服务中,我们通常将系统配置保存在分布式配置中心,以便程序能够在运行时动态的获取配置而不用重启程序。同样的,在Flink程序中,我们也可以将配置存储在固定的配置中心进行统一的管理。Flink本身提供了ParameterTool工具类来从启动参数、properties文件以及系统环境变量等位置获取配置信息,但由于ParameterTool依赖Flink的任务节点,必须在每个任务节点上都保存一份配置,很不方便,所以我们需要把配置保
2021-01-11 22:51:01 2737 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 5195
原创 【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 968
原创 【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 1931
原创 链接生成工具anurl的使用
自己用空闲时间做的一个链接生成工具anurl,可以生成付费链接,用户支付后跳转到指定的页面以获取资源。地址:https://anurl.net欢迎有需要的小伙伴来体验,并指出bug。使用场景:付费资源生成一个链接,用户支付一定费用后,可跳转到原始链接获取资源网盘付费生成一个链接,并指链接类型为“提取码”,用户在支付后可显示网盘验证码获取用户联系方式,进行线下推广生成一个链接,并指定资源获取方式为“手机验证”或“邮箱验证”来获取用户联系方式,可进行线下推广等场景目前支持的
2020-12-13 01:21:10 4205 9
原创 【小笔记】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 227
原创 【小笔记】2020-10月月度总结
场景1测试环境ambari上的hbase无法启动,主节点启动后立即切换到备份节点,查看日志发现hbase启动时会读取version文件,但该文件块有损坏,导致启动失败。
2020-10-28 20:47:25 109
原创 【小笔记】一次kafka推送效率的优化
场景定时任务从Hbase扫描到数据后,经过处理推送到kafka,但是推送效率很低,导致积压了几千万的数据在Hbase中没有推送出去。分析导致推送效率低一般有3个方面导致:kafka的分区数太少由于kafka写数据是写入到分区中的,分区数越多,并行度约高,效率就越高。所以可以通过增加分区数来提高写入效率。但是分区改变会导致消费者间重新分配partition,有可能出现重复消费的情况。业务处理时间太长这个需要优化业务代码来解决了写线程数太少单线程发送消息的效率肯定很低了解决
2020-08-29 22:36:49 745
原创 挖矿病毒伪装TOP命令占用CPU问题排查
场景前几天搭建了个frp的访问通道,用来在外网访问自己的内网的一个集群,一开始无任何问题,但是呢,从昨天开始,集群的一些组件就无法启动或者丢失连接,并且主机列表里的心跳信息是好久之前的,本以为是服务器挂了,但是看了一下是好的,就是有点卡,以为是服务启用多了,内存或磁盘满了,然后看了下发现并没有,,然后就想看下CPU的情况,但是呢,top命令竟然无法使用:到/usr/bin下边一看,top竟然没得咯,想想估计是误删吧,就从其他机器上scp一个过来,然而,其他机器上也没有,那只能先装个htop看下情况。
2020-08-05 22:39:36 3394
原创 【小笔记】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 288
原创 【小笔记】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 789 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 2830 8
原创 【小笔记】多节点定时任务引起的对DB式分布式锁的思考
## 1. 场景定时任务定时扫表,每天进行数据上报。遇到一个问题:定时任务程序是多节点部署的,如何保证数据不会重复上报呢?
2020-07-23 22:09:16 700
原创 使用SQL查询ES:SpringBoot+Jdbc+Mybatis+Elasticsearch整合方案
1. 前言ES作为一个搜索工具,寄托于Lucene之上,提供了方便的数据存储和搜索服务,一般的用它来作为网页数据索引以及存储用户画像(即用户标签)数据,可以提供复具有复杂的查询条件的服务。例如在网页索引中,通过倒排的方式索引的方式,对文档进行分词存储,可以很快的定位关键字所在的文档,从而达到毫秒级的搜索效率;而在用户画像存储中,ES既可以作为标签宽表,提供类似HIVE宽表的特性,又可以达到传统关系型数据库或者HBase的实时查询的要求,所以在一般的用户画像存储中也是不二之选。ES是一个搜索工具,它提供的
2020-07-13 00:02:38 6567
原创 【小笔记】大数据量excel解析工具性能对比
Excel存储格式POI表格解析参考:https://poi.apache.org/components/spreadsheet/多线程读取EasyExcelHutool Excel工具
2020-07-07 13:15:36 2766
原创 【小笔记】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 1860 3
原创 【小笔记】SpringCloud Feign子线程调用丢失Request问题
场景:前端请求后端接口,由于后端接口涉及一系列复杂操作,为了快速响应,直接返回,使用子线程完成后续逻辑处理。该逻辑中涉及多个子系统之间的调用,原本的调用方式为使用RestTemplate,走服务名调用,并没有问题。后来接口改造为了调用方便,引入feign,于是导致获取不到irequest上下文及无法传递header及cookie等问题。问题复现:1、丢失herder及cookie2、丢失request问题原因:出于安全考虑,默认不会传递header及cookie;feign的默认隔离策略为线程
2020-06-23 00:35:05 1449
原创 Activiti流程引擎与业务整合方案
前些时间,基于流程引擎activiti做了一个审批功能,但是扩展性并不是很好,对于新的流程的开发量还是比较大。于是需要进行升级改造,增强其通用性。
2020-05-23 23:29:36 2201
原创 指针式仪表自动读数与识别(九):多仪表自动读数
前面的几篇文章是针对单个仪表的读数,本片文章是针对于多个仪表的读数。考虑到由于有些仪表并不止一个表盘,所以在摄像头采集到的图像中,一张图像会 包含多个表盘,若是用多个摄像头去拍摄则得不偿失,所以我们使用划分区域的方式进行一个简单的区分,对不同的区域进行独立的检测和识别。最终结果如下:每一个仪表使用一个单独的线程进行计算,每一个仪表都可以单独配置,互不影响...
2020-04-30 20:14:22 5060 11
原创 指针式仪表自动读数与识别(八):仪表自动读数系统设计与开发
序前面几篇文章都是偏理论的,这篇文章则是偏实践的,本文使用C#+EmguCV开发一个仪表自动读数系统,目前该系统能够识别圆形的温度表、气压表以及方形的电流、电压表,误差控制在0.1%左右。系统概述仪表自动读数系统是指通过机器视觉等图像处理方法,对摄像头采集到的指针式仪表进行分析,自动识别仪表示数的系统。其主要目的是代替人工读数,减小工作量,提高工作效率,同时能够实施反应设备的工作状态,让其处...
2020-04-30 20:14:06 5443 11
原创 指针式仪表自动读数与识别(七):示数计算
序经过前面的几篇文章,已经定位到了表盘和指针,那么最后一步就是计算读数了,读数的计算实际上很简单,就是利用夹角和量程算个比例,so easy。起始/终止刻度的确定仪表的最终读数,取决于表盘圆心、指针偏移其实刻度的角度以及量程。在确定表盘圆心、指针方向以及量程后,才可以通过指针偏移角度来计算示数。那这里很重要的一点就是计算起始/终止刻度的位置。起始/终止刻度的确定可以先使用刻度拟合法来找出刻...
2020-04-30 20:13:49 5370
原创 指针式仪表自动读数与识别(六):指针定位
序指针定位作为仪表识别读数识别的重中之重,其定位是否准确直接决定了最终的读数,因此,需要重点分析一下。本文首先介绍一下Hough直线检测的原理及不足之处,然后使用两种新的方法来定位指针:一种是环向模板匹配法(CTM),另一种是径向灰度求和法(RGS),并通过测试来验证其准确性。Hough直线检测原理Hough直线检测的核心思想是:将在图像空间中的直线检测问题转换到参数空间中对点的检测问题,通...
2020-04-30 20:13:34 6343
原创 指针式仪表自动读数与识别(五):刻度线定位与拟合
刻度拟合刻度在仪表自动读数中并不作为计算依据(起始和终止刻度除外),最终读数仅仅依赖指针、表盘位置以及量程,因此在求仪表刻度线时可以允许少量误差,这些误差不会对最终结果造成影响。对于刻度线的拟合,本质上还是对直线的拟合,因此常用的方法有最小二乘法和Hough变换拟合。我们通过多次轮廓筛选,然后计算轮廓外接矩形的中心,作为刻度点,刻度点与表盘圆心的连线作为刻度线。根据刻度线的特点,轮廓筛选包括...
2020-04-30 20:13:04 5916 1
原创 指针式仪表自动读数与识别(四):非圆形表盘定位
基于RSCD的非圆形表盘定位非圆形表盘外观一般为方形,常见于电流表和电压表。这些仪表没有明显的圆形表盘,因此无法通过直接Hough圆检测来定位表盘圆。观察仪表特点,可以发现虽然表盘不是圆形,但是表盘上的刻度均在同一个圆弧上,所以可以通过刻度线所在圆弧来确定圆弧所在圆的圆心和半径。检测方法可以使用Hough变换和RSCD。理论上,Hough变换可以检测任意形状的目标,所以也可以检测圆弧,但是由于...
2020-04-30 20:12:23 3948
工件零件缺陷检测系统(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关注的人