自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Ftp客户端】FTPBox starter

FTPBox 是一个基于 FTP协议的 SpringBoot Starter,主要包含了:文件上传、下载、校验、查看等功能,为用户提供了一种安全的方式来发送和接收文件和文件夹。用于执行自定义没有返回值的FTP操作,比如查看默认的 FTP目录(ftpClient 的其他用途,请参考 edtFTPj 的 API)用于执行自定义 FTP 操作,比如查看 FTP 默认目录(ftpClient 的其他用途,请参考 edtFTPj 的 API)下载文件,该方法只会创建下载的本地文件,不会创建本地文件的父目录。

2024-02-06 15:42:42 1019

原创 Kafka 使用手册

学习kafka入门,看这一篇文章就够了

2024-02-05 14:40:23 2043

原创 Kafka SASL_SSL双重认证

kafka提供了多种安全认证机制,主要分为SASL和SSL两大类。在 Kafka 中启用 SASL_SSL 安全协议时,SASL 用于客户端和服务器之间的身份验证,SSL 则用于加密和保护数据的传输。不仅提供身份验证,还提供加密和数据保护的功能。因工作需要,需要在测试环境搭建一套基于SASL_SSL协议的kafka环境。坑比较多,经过两天的研究终于搞定了,特在此记录下。

2024-02-05 14:18:00 4426 4

原创 Linux高级命令find,grep,sed,awk

Linux高级命令[find,grep,sed,wak]1.findfind 命令用来在指定目录下查找文件语法:find path -option [ -print ] [ -exec -ok command ] {} ;1.1 常用查询选项option**-name:**根据名称匹配**-iname:**忽略大小写​ 例如:查找根目录下以log为结尾的文件:*find / -name 'log’**-user:**根据所属与的组进行查询​ 例如:查当前路

2022-05-20 17:33:14 6959 2

原创 idea生成WebServices接口

选中创建的接口xxxManage,在idea中点击 Tools - WebServices - Generate Wsdl From Java Code…补充:我的idea2021没有此选项,双击shift,输入webServices也可以找到此选项。将生成的接口与实体文件拷贝到工程对应的路径下(覆盖原始创建的接口,并将wsdl文件删除)注意:(请求响应的实体中添加基本属性及get/set方法、满参构造、空参构造)新建一个webServices工程,按照接口规范生成接口、请求类、响应类。

2024-02-27 19:05:20 1831

转载 【并行编程框架】AsyncTool

自定义线程任务A、B、C,实现IWorker,ICallback函数式接口,并重写下面的4个方法。begin():Worker开始执行前,先回调begin()action():Worker中执行耗时操作的地方,比如RPC接口调用。result():action()执行完毕后,回调result方法,可以在此处处理action中的返回值。defaultValue():整个Worker执行异常,或者超时,会回调defaultValue(),Worker返回默认值。

2024-02-06 15:35:47 1599

原创 kafka 文件存储机制

segment index file采取稀疏索引存储方式,不会为每条数据创建索引,大大的减少索了引文件大小。

2024-02-06 15:02:48 2018

原创 Kafka 生产调优

100 万日活,每人每天 100 条日志,每天总共的日志条数是 100 万 * 100 条 = 1 亿条。1 亿 / 24 小时 / 60 分 / 60 秒 = 1150 条/每秒钟。每条日志大小:0.5k ~ 2k(约1k)。1150 条/每秒钟 * 1k ≈ 1m/s。高峰期每秒钟:1150 条 * 20 倍 = 23000 条。所以高峰每秒数据量:20MB/s。

2024-02-06 11:00:21 2518

原创 【键值对象池】GenericKeyedObjectPool

的类型,然后就是照葫芦画瓢。方法并不是必需的,如果池化的对象除了内存以外不需要额外的资源释放,就不用重写这个方法了。还有一种情况就是对象信息需要清除,比如。​ 通用池化框架commons-pool2实践,其中提到了可以池化一个对象和一组对象,一个对象用到了。顾名思义,键值对象池。就是通过一个key对应一个对象类型来组合对象池,其本质上就是一个。,需要把请求地址和请求头等信息清除,这个需要跟业务需求保持一致。然后就是池化工厂类,这个类需要定义。例如:配置多sftp主机连接。这个类,一组对象用到了。

2024-02-05 14:55:49 767 1

原创 咆哮的BitMaps

​ Roaring Bitmaps(Roaring Bitmaps)是一种高效的数据结构,用于压缩表示大规模数据集合的位图,它主要用于存储和检索键值对,并提供对键的导航和范围查询的功能。使用 Roaring Bitmaps,你可以高效地存储和操作大规模的稀疏位集合,Roaring Bitmaps 提供了多个实现版本,包括RoaringBitmap(32位整数)、Roaring64Bitmap(64位整数),本文介绍Roaring64Bitmap的快速入门。

2024-02-05 14:38:56 529

原创 JSch - 配置SFTP服务器SSH免密登录

SFTP是一个安全文件传送协议,可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。Jsch是一个纯粹的用java实现SSH功能的java library。如果要知道Jsch的功能需先了解一下SSH。

2024-02-05 14:37:40 2126

原创 ELFK日志采 - QuickStart

Filebeat是一个轻量型日志采集器,负责采集数据,并通过网路传输给 Logstash。Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到喜欢的“存储库”中。通过定义了一个 Logstash 管道(Logstash Pipeline),来读取、过滤、输出数据。

2024-02-05 14:35:57 1149

原创 【异步神器】CompletableFuture

某个任务执行完成后执行的动作(即回调方法),将该任务的执行结果即方法返回值作为入参传递到回调方法中,无返回值。某个任务执行完成后执行的动作,即回调方法,会将该任务的执行结果即方法返回值作为入参传递到回调方法中,带有返回值。​ whenComplete是当某个任务执行完成后执行的回调方法,会将执行结果或者执行期间抛出的异常传递给回调方法,如果是正常执行则异常为null,务执行完成后执行的回调方法,正常执行则异常为null,get方法返回执行结果,如果是执行异常,则get方法抛出异常。

2024-02-05 14:33:10 646

原创 Redis + Lua 实现分布式限流器

*** @explain: 限流类型/*** 自定义key* 请求者IP*/ IP;period表示请求限制时间段count表示在period这个时间段内允许放行请求的次数。limitType代表限流的类型,可以根据请求的IP自定义key,如果不传limitType属性则默认用方法名作为默认key。import com/*** @explain: 自定义限流注解。

2024-02-05 14:31:31 1612

原创 【防止重复提交】Redis + AOP + 注解的方式实现分布式锁

Redis + AOP + 注解的方式实现分布式锁

2024-02-05 14:29:12 2246

原创 生成SSL证书

SSL 是一种加密协议,用于在网络通信中提供数据的保密性和完整性。它使用公钥和私钥来建立安全的连接,并对传输的数据进行加密和解密,以防止未经授权的访问和篡改。根据文章操作,生成以下四个文件用于存储与 SSL 相关的密钥、证书和信任的根证书。

2024-02-05 14:15:43 5647

原创 Java线程池

Java常见线程池技术

2023-03-07 18:35:59 603

原创 Java获取时间戳工具类Utils

HHmmss获取时间戳工具类:yyyyMMddyyyyMMyyyyMMddHHmmss

2023-03-06 16:35:34 557

原创 使用iconv命令批量原地转码文件

因环境变量不同,程序生成的文本文件中文乱码,可使用此方法进行解决

2023-03-01 23:06:09 1923

原创 java- SFTP文件上传下载

JSch实现 SFTP实现文件上传、下载、进度监控等功能

2023-02-28 22:41:18 8009 2

原创 4种常见的IO模型(阻塞IO和非阻塞IO、同步IO和异步IO)

详细说明BIO、NIO、IO多路复用、AIO等模型系统调用流程

2023-02-17 14:22:10 1572

原创 linux四剑客find、grep、sed、awk

find、grep、sed、awk、正则表达式详解

2023-01-12 16:25:38 1689

原创 Curl入门

curl 使用方法以及包含 Curl发送soap请求的模板

2022-10-18 16:20:07 255

原创 Shell入门

1.使用shell脚本完成并发请求xx接口2.使用shell编写程序启动sh脚本

2022-10-18 16:15:00 387

原创 二叉搜索树、AVL树、红黑树详解

AVL树 + 红黑树 详细介绍

2022-08-25 14:25:11 689 1

原创 informix数据导入导出操作

informix数据导入导出操作informix操作存储过程的方法

2022-08-06 14:10:29 3098

原创 Maven使用手册

Maven使用手册Maven自定义打包规则

2022-07-14 17:51:31 782

原创 maven-assembly-plugin(maven定制化打包)

maven-assembly-plugin 定制化打包方式

2022-07-04 17:38:07 1488 2

原创 AOP之JoinPoint.getSignature()

AOP之JoinPoint.getSignature()

2022-06-05 21:16:17 6251

原创 java中常见的数据结构(list,stack,queue,linked,hashTable,tree)

6种常见数据结构数组、链表、队列、堆栈、哈希表、树

2022-04-21 17:36:07 5808

原创 MySQL窗口函数(排序函数)

MySQL窗口函数(排序函数)1.快速入门:排序函数row_number()去重排序,在每个分组内,为查询出来的每一行记录生成一个序号,依次排序且不会重复使用row_number() over() 函数时,over()里的排序晚于where group by order by的执行partiton by 用于给果集分组,如果未指定则将整个结果集作为一个分组与聚合函数区别:可以返回一个分组中多条记录,而集合函数一般只有一个反应统计值的记录使用row_number()实现分页时需注

2022-04-08 19:20:10 2420

原创 HikariCP连接池-springboot1.0x~2.0x

HikariCP连接池springboot1.0xSpringBoot2默认的数据库连接池已经是HikariCP,所以不需要再配置,SpringBoot2版本之前的则需要配置1.添加maven依赖<!-- JDBC连接数据库,因为要用HikariCP,所以需要将SpringBoot中的tomcat-jdbc排除 --><dependency> <groupId>org.springframework.boot</groupId> &l

2022-03-15 21:40:29 664 1

原创 ElasticJob 3.0 带你快速入门

ElasticJobElasticJob 简介当当网开源的分布式定时任务框架,后被apache基金会支持;官方文档:https://shardingsphere.apache.org/elasticjob/current/cn/overview/问:ElasticJob是什么?答:定时任务框架;优势:支持分布式部署;不同节点上执行的是不一样的任务(代码是同一套);对于一个大任务,可以用分片策略,让他在多节点上执行;能够保证高可用;利用zk实现分布式环境管理;水平扩展(

2021-12-30 16:01:46 5148 1

原创 SpringBoot-yaml(在配置文件中设置多个对象)

SpringBoot 配置文件SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的application.properties语法结构 :key=valueapplication.yml语法结构 :key:空格 value**配置文件的作用 :**修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;比如我们可以在配置文件中修改Tomcat 默认启动的端口号!测试一下!server.port=8081ya

2021-08-26 14:31:11 6187

原创 Git 版本控制工具(你想要的这里都有)

Git 学习笔记1.Git与SVN区别集中版本控制 SVN​ 所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。分布式版本控制Git​ 所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。区别​ SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需

2021-04-23 12:48:19 300

原创 MyBatis(快速入门)

Mybatis环境:JDK1.8Mysql 5.7maven 3.6.1IDEA1. 简介1.1 什么是MybatisMyBatis 是一款优秀的持久层框架它支持定制化 SQL、存储过程以及高级映射。Github : https://github.com/mybatis/mybatis-3/releases中文文档:https://mybatis.org/mybatis-3/zh/index.html2. 第一个Mybatis程序思路:搭建环

2021-04-22 16:12:18 764

空空如也

空空如也

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

TA关注的人

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