自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个愚者,一个小人物,渴望见真

一个愚者,一个小人物,渴望见真

  • 博客(25)
  • 收藏
  • 关注

原创 kafka多种通信方案总结

Kafka安全体系采用三层架构设计:传输加密(TLS/SSL)、身份认证(SSL证书/SASL机制)和权限授权(ACL)。主流认证方案包括SASL_SCRAM(挑战应答模式)、SASL_GSSAPI(Kerberos)和双向TLS,生产环境必须禁用明文协议。最佳实践推荐:中小团队使用SASL_SSL+SCRAM-SHA-256,大型企业采用SASL_SSL+GSSAPI,云环境选择SASL_SSL+OAUTHBEARER。安全配置核心是正确组合security.protocol协议类型,并配合ACL实现细粒

2026-02-02 15:04:33 855

原创 通过实际场景解释ThreadLocal的线程隔离特性

ThreadLocal 是一种实现线程变量隔离的工具,它允许不同线程访问同一变量时拥有各自独立的副本。典型应用场景包括数据库连接管理和用户信息传递。 在数据库连接场景中,ThreadLocal 确保同一线程复用同一个连接,不同线程的连接相互隔离,避免资源争抢,使用后必须调用remove()防止内存泄漏。 在用户信息传递场景中,ThreadLocal 可在Web请求处理过程中(如拦截器到业务层)存储用户上下文,实现跨组件免参数传递,同样需要在请求结束后清理ThreadLocal。 核心优势是线程隔离性和代码简

2026-01-06 16:04:55 853

原创 Java加解密相关的各种名词的含义,各种分类的算法及特点

Java 加解密是信息安全的核心,涉及大量专业名词和算法分类,理解这些概念是实现数据加密、签名、验签的基础。

2025-12-17 15:43:27 556

原创 数字签名为什么不直接使用非对称加密算法而要配合使用哈希算法的原因

非对称加密算法(如最经典的“教科书RSA”)在数学上有其固有的特性和限制。如果直接对原始消息进行签名(即用私钥加密消息本身),那么消息本身的数学属性可能会与签名算法的数学结构发生危险的相互作用,从而导致漏洞。一个简化的危险案例(基于RSA的属性):RSA有一个著名的乘法同态性质:如果 RSA-Sign(m1) = m1^d mod n 且 RSA-Sign(m2) = m2^d mod n。

2025-12-16 14:16:36 510

原创 哈希(hash)算法使用特点及常见疑问解答

哈希算法是一种(消息)(哈希值,或称摘要)的数学函数。哈希算法在设计上是单向的,一般也不用于还原加密后的内容,多数场景式使用哈希算法是为了验证消息的完整性(消息是否被篡改)。如果是想用于加解密可以使用专用于加解密的非对称密钥算法。

2025-12-16 11:25:02 726

原创 Java的自旋

摘要:自旋是线程通过循环主动检查条件而非阻塞等待的机制,在Java中主要用于性能优化。典型应用包括:1)原子类的CAS操作(如AtomicInteger)通过自旋重试;2)锁机制(如ReentrantLock)在获取锁时先自旋尝试;3)线程池核心线程自旋等待任务。高性能框架(如Disruptor)提供不同自旋策略(纯自旋/让步/睡眠)以适应场景需求。开发者应避免手动编写无限自旋(会导致CPU 100%),而应使用JDK内置的优化实现,仅在短等待、低延迟场景合理应用自旋机制。

2025-11-07 15:49:21 789

原创 Java NIO流的Buffer、Channel和Selecter与传统BIO的对比

Java NIO核心机制通过Buffer、Channel和Selector实现高效IO操作。Buffer作为数据容器,提供内存缓存区域;Channel作为双向传输通道,连接数据源和Buffer;Selector实现单线程管理多通道。相比传统BIO,NIO采用面向缓冲区+非阻塞模式,支持高并发和大文件传输。Buffer通过position、limit等属性控制读写状态,需配合flip()等方法切换模式。Channel必须与Buffer协同工作,常见实现包括FileChannel和SocketChannel等。

2025-11-07 15:00:13 2206

原创 阻塞IO和非阻塞IO

摘要:BIO(阻塞IO)和NIO(非阻塞IO)的核心区别在于线程处理方式。BIO在数据未就绪时线程会被挂起,造成资源浪费;而NIO通过非阻塞通道和Selector机制,使线程在数据未就绪时可处理其他任务,仅对有数据的通道进行IO操作。这种设计让NIO能用更少线程处理更多连接,显著提升吞吐量。Netty等高性能框架正是基于NIO这一优势构建的。(149字)

2025-11-06 14:52:27 424

原创 kafka核心组件关系和常用命令总结

本文介绍了Apache Kafka的核心概念与常用操作命令。Kafka作为分布式流处理平台,其核心组件包括Producer、Consumer、Topic、Partition等,支持高吞吐、低延迟的消息传递。文章详细说明了主题管理(创建/删除/修改)、消息生产消费、消费者组管理等相关命令行操作,并解释了消费者组与主题间的关系(如分区分配规则)。此外,还提供了性能测试、日志查看等实用命令,为Kafka的日常运维和问题排查提供了实用参考指南。

2025-07-31 10:58:45 714

原创 脚本通过read命令更安全的接收参数

当高安全开发场景,我们需要尽量保证保证系统的安全性,信息的保密性。当需要对脚本传参时应避免直接传参,选择read交互式方式传参更加安全

2025-05-09 17:12:48 391

原创 非对称加密算法进行文件(数据)验签

非对称加密算法对数据验签

2025-05-07 21:37:41 443

原创 rsync进行远程主机传输时,提示认证失败

rsync进行远程主机传输时,提示认证失败

2025-04-01 14:44:24 148

原创 使用JAVA实现AES算法CBC、GCM模式

使用JAVA实现AES算法CBC、GCM模式

2024-11-08 16:12:56 1562

原创 加解密技术常见名词含义

加解密技术我认为入门时最不好理解的就是各种名词的含义,其实在你学习一个新的技术时,对各种基本名词的认知是很重要的,这就像基石。

2024-09-24 13:39:47 505

原创 Maven通过指令引入依赖时跳过测试用的依赖

发现了一个很好用的maven指令,尤其是在内网开发时,能去除很多麻烦,节省时间,而且跳过测试用的依赖,对项目正常发布启动是没有影响的。

2024-09-14 10:49:35 301 2

原创 使用itextpdf添加图片时,报错 is not a recognized imageformat. 及源码简单分析

使用itextpdf添加图片时,报错 is not a recognized imageformat. 及源码简单分析

2023-06-12 16:51:14 3947 4

原创 javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V异常及解决办法-idea中jar包冲突解决方法

javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V异常及解决办法--idea中jar包冲突解决方法

2023-06-07 15:43:53 1620 1

原创 java中将一个实体类复制到另一个实体类的三种方法

java中将一个实体类复制到另一个实体类的三种方法

2023-05-26 10:27:38 15192 1

原创 MySQL 通过information_schema.tables查询数据库的表信息

MySQL 通过information_schema.tables查询数据库的表信息

2023-05-12 16:07:11 2647

原创 springboot项目多环境配置及常见配置名的含义

我们在进行项目开发时,经常同一个应用需要在不同环境下开发、测试、使用,一般都是数据库地址、服务端口号不同。但是全都放在一个配置文件中显然不合适,此时就需要多环境配置了。

2023-03-14 10:59:29 1142

原创 使用VMware Workstations新建虚拟机时,报“无法创建新虚拟机: 不具备执行此操作的权限。”错误

今天在新建虚拟机时突然报了一个“**无法创建新虚拟机: 不具备执行此操作的权限。**”的错误

2023-03-10 10:33:07 9614 7

原创 idea从插件市场或者外部插件库导入插件的方式

我们平时在使用idea进行开发时,会用到一些插件来辅助开发或增强某些功能。选好合适的插件能帮助我们提高开发效率,事半功倍。以下两种方式,后一种方式主要在插件市场无法联网或者某些插件在一些idea版本中搜索不到的情况下会用到。

2023-02-23 14:29:16 25067 1

原创 Path环境变量从有条理的文本突然变为了一行的解决方案

环境变量的变量值从有条理的文本突然变为了一列的解决方案

2023-02-17 17:46:21 1102

原创 同时安装多个JDK的环境变量配置及切换方式

同时安装多个JDK的环境变量配置及切换方式

2023-02-17 16:54:14 11087 4

原创 使用idea创建一个mybatis项目并进行初步使用

使用idea创建一个基于maven的mybatis项目

2023-02-17 14:10:29 1445 3

kafka多种通信方案配置总结

kafka多种通信方案配置总结

2026-02-27

空空如也

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

TA关注的人

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