- 博客(43)
- 收藏
- 关注
原创 【4】搭建k8s集群系列(二进制部署)之安装master节点服务(kube-apiserver)
TLS Bootstraping:Master apiserver 启用 TLS 认证后,Node 节点 kubelet 和kube-proxy 要与 kube-apiserver 进行通信,必须使用 CA 签发的有效证书才可以,当 Node 节点很多时,这种客户端证书颁发需要大量工作,同样也会增加集群扩展复杂度。注:打开链接你会发现里面有很多包,下载一个 server 包就够了,包含了 Master 和 Worker Node 二进制文件。格式:token,用户名,UID,用户组。
2025-04-03 16:58:26
355
原创 【3】搭建k8s集群系列(二进制部署)之安装docker和k8s自签证书
这里使用 Docker 作为容器引擎,也可以换成别的,例如 containerd下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-以下在所有节点操作。这里采用二进制安装,用 yum 安装也一样。
2025-04-03 15:59:03
80
原创 【2】搭建k8s集群系列(二进制)之安装etcd数据库集群
下载地址:https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-ETCD_INITIALCLUSTER_STATE:加入集群的当前状态,new 是新集群,existing 表示加入已有集群。以下在节点 1 上操作,为简化操作,待会将节点 1 生成的所有文件拷贝到节点 2 和 节点 3。台组建集群,可容忍 1 台机器故障,当然,你也可以使用 5 台组建集群,可容忍 2。ETCD_LISTEN_PEER_URLS:集群通信监听地址。
2025-04-03 07:45:44
588
原创 【1】搭建k8s集群系列(二进制部署)之系统初始化
Kubeadm 是一个 K8s 部署工具,提供 kubeadm init 和 kubeadm join,用于快速部。从 github 下载发行版的二进制包,手动部署每个组件,组成 Kubernetes 集群。容易可控,推荐使用二进制包部署 Kubernetes 集群,虽然手动部署麻烦点,期间。小结:Kubeadm 降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。• 服务器最好可以访问外网,会有从网上拉取镜像需求,如果服务器不能上网,• 建议最小硬件配置:2 核 CPU、2G 内存、30G 硬盘。
2025-03-31 15:54:22
485
原创 【java实现设计模式】深入浅出讲适配器模式:以多支付渠道整合为例
适配器模式(Adapter Pattern)是一种结构型设计模式,其核心价值在于解决接口不兼容问题。如同现实中的电源转换器,它能在不修改已有代码的基础上,让原本不兼容的接口协同工作。该模式符合开闭原则,有效提高系统扩展性。/*** 统一支付接口* @param request 支付请求封装* @return 支付平台交易号*/// 支付请求参数封装@Data// 其他扩展字段...
2025-03-30 11:01:06
595
原创 Java Web应用中使用数字签名保障参数完整性
数字签名是一种基于非对称加密技术的安全机制,通过私钥对数据摘要进行加密生成签名,接收方使用公钥验证数据完整性和来源真实性。防篡改:任何数据修改都会导致签名验证失败身份认证:确保请求来自合法持有私钥的一方不可抵赖:签名方无法否认已签署的数据参数在传输过程中被恶意修改伪造请求攻击(MITM中间人攻击)交易抵赖风险使用强加密算法(推荐RSA-2048或ECDSA)严格管理密钥生命周期敏感参数必须包含在签名计算中。
2025-03-28 23:04:07
544
原创 在VM虚拟机中搭建CentOS7并配置镜像仓库与网络
通过上述步骤,您已成功在VMware中部署CentOS7,并配置了稳定的静态IP及国内镜像源。此环境可用于开发测试、学习Linux操作或搭建服务。若需更复杂的网络拓扑(如桥接模式),可调整VMware网络设置并对应修改IP配置。
2025-03-25 16:14:58
1217
原创 深入浅出JVM性能优化:从理论到实践
本文由浅入深地梳理了JVM优化的完整知识体系,从内存模型到GC原理,从监控工具到实战案例,构建了完整的性能优化方法论。真正的优化需要结合具体业务场景,建议建立持续的性能监控体系,通过数据驱动的方式进行科学调优。原始配置:CMS + ParNew,平均停顿80ms。初始参数:-Xmx8g UseParallelGC。现象:每小时Full GC一次,Old区持续增长。瓶颈分析:Young GC频繁,吞吐量不足85%
2025-03-23 22:50:07
1216
3
原创 Java实现十大经典排序算法详解
排序算法平均时间复杂度最好情况最坏情况空间复杂度稳定性冒泡排序O(n²)O(n)O(n²)O(1)稳定选择排序O(n²)O(n²)O(n²)O(1)不稳定插入排序O(n²)O(n)O(n²)O(1)稳定希尔排序O(n log n)O(n log²n)O(n²)O(1)不稳定归并排序O(n log n)O(n log n)O(n log n)O(n)稳定快速排序O(n log n)O(n log n)O(n²)O(log n)
2025-03-21 23:14:26
741
原创 基于Netty实现高性能HTTP服务的架构解析
请求/响应模型:客户端发起请求,服务端返回响应无状态协议:每个请求相互独立,无上下文关联文本格式传输:基于ASCII编码的可读报文结构默认端口:HTTP-80,HTTPS-443Netty通过其灵活的Pipeline机制和高效的异步处理模型,为构建高性能HTTP服务提供了全新选择。相比传统Servlet容器,Netty更适合需要深度定制协议处理或应对高并发场景的系统架构。理解二者的差异和适用场景,有助于在实际项目中做出更合理的技术选型。
2025-03-19 23:24:09
885
1
原创 Netty:java高性能网络编程的基石(下)
字段魔数(4字节)版本(1字节)数据长度(4字节)数据内容示例0xCAFEBABE1lendata继承,将消息对象转为字节流。@Override// 魔数// 版本// 数据长度// 数据内容继承,解析字节流为消息对象。@Override// 读取魔数if(magic!throw new IllegalStateException("协议错误");// 版本校验// 数据长度// 读取数据。
2025-03-18 23:05:31
843
原创 DeepSeek使用教程
从教育到科研,从短视频到高效办公,人工智能工具DeepSeek正在成为各行业的“效率加速器”。它不仅重新定义了工作流,更让普通人也能轻松驾驭专业级任务。以下是DeepSeek如何赋能四大核心领域,并附上超实用教程指南!你是否还在为复杂的AI工具头疼?原价99元的《DeepSeek从入门到精通:教育·短视频·科研·办公全攻略》,今日特惠仅需。——花一杯奶茶的钱,掌握未来3年的核心竞争力!
2025-03-16 15:52:29
1215
原创 深入解析java Socket通信中的粘包与拆包问题及解决方案(中)
需要处理复杂的缓冲区管理分片消息的组装逻辑繁琐多线程环境下的并发控制异常处理的健壮性要求实现定长协议处理分隔符协议支持灵活的长度标识协议在后续文章中,我们将深入剖析Netty如何通过Pipeline机制和内存管理,优雅地解决网络通信中的各类复杂问题,帮助开发者构建高性能、高可靠性的网络应用。
2025-03-15 22:19:40
548
原创 Java Socket通信基础及拆包粘包问题模拟(上)
Socket(套接字)是计算机网络中不同主机间进程进行双向通信的端点,本质是操作系统提供的进程间通信机制。它封装了TCP/IP协议栈的复杂操作,为应用程序提供了标准API。
2025-03-13 15:02:19
426
原创 Spring Boot集成HikariCP:原理剖析与实战指南
通过源码级解析和实战配置,我们深入理解了HikariCP的高性能设计哲学。正确配置后的HikariCP可轻松应对高并发场景,结合Spring Boot的自动配置能力,可快速构建高效数据库访问层。建议生产环境配合监控系统实时观察连接池状态。HikariCP的核心数据结构采用。
2025-03-12 23:43:40
835
原创 MyBatis底层原理深度解析:动态代理与注解如何实现ORM映射
通过动态代理和注解,MyBatis实现了接口方法与SQL操作的优雅映射动态代理拦截方法调用,路由到SqlSession。注解解析:启动时构建,存储SQL元数据。结果映射:结合反射与TypeHandler,完成结果集到Java对象的转换。这种设计在保持灵活性的同时,极大简化了数据库操作代码,体现了MyBatis“约定优于配置”的核心思想。源码分析要点通过深入源码,开发者可以更好地理解MyBatis的设计哲学,并针对复杂场景进行定制优化。
2025-03-11 21:37:25
739
原创 SpringBoot整合MyBatis-Plus全攻略:从零实现高效CRUD
Data通过本文的整合实践,我们实现了SpringBoot与MyBatis-Plus的无缝对接,覆盖了日常开发中的常见场景。MyBatis-Plus的强大功能可以显著提升开发效率,但其设计哲学是只做增强不做改变,这保证了与原生MyBatis的良好兼容性。建议在实际项目中根据团队规范合理使用各种特性,在提高开发效率的同时保证代码质量。
2025-03-10 21:54:50
552
原创 从JDBC到ORM框架:技术演进与企业级选择MyBatis的必然性(下)
通过从JDBC到ORM框架的技术演进,我们可以看到MyBatis在平衡控制力与开发效率方面的独特价值,这正是其成为企业级首选的核心原因。未来随着领域驱动设计(DDD)的普及,ORM框架将更加注重领域模型与持久化技术的有机融合。
2025-03-09 23:15:49
783
原创 Manus工作原理:从“思考”到“执行”的AI智能体革命
2025年3月,一款名为Manus的AI智能体横空出世,凭借其“自主思考并执行任务”的能力,迅速引爆科技圈与资本市场。它不仅能在云端异步处理复杂任务,还能交付完整成果,从简历筛选到旅行规划,从股票分析到教育课件制作,其应用场景之广令人惊叹。然而,Manus的爆火也引发了争议:它究竟是技术飞跃,还是工程整合的“套壳”产物?Manus的底层逻辑并非颠覆性技术,而是通过工程整合与用户体验设计,将现有能力转化为实际生产力。尽管如此,Manus的工程整合路径为行业提供了重要启示:在基础模型竞争趋同的当下,
2025-03-08 08:42:53
680
原创 java本地缓存组件之caffeine为什么是性能之王?
(如无锁读与分段写),在吞吐量、命中率和延迟之间达到最佳平衡。的深度适配,实现了高性能本地缓存。Caffeine 的并发模型借鉴了。(如牺牲少量内存记录访问频率)和。Caffeine 采用。Caffeine 通过。
2025-03-07 22:18:37
774
原创 Java本地缓存深度实践:框架选型与一致性保障(下)
本地缓存是驻留在应用程序进程内存中的高速数据层,采用键值对存储结构。与Redis等分布式缓存不同,它通过直接内存访问实现数据读写,响应时间通常在微秒级。典型应用场景包括:高频访问的热点数据、短期有效的临时数据和计算代价高的派生数据。Java本地缓存的选型需要平衡性能、功能与一致性需求。对于大多数场景,Caffeine+Redis Pub/Sub的组合能提供高性能与最终一致性保障。在金融交易等强一致性场景,需要结合版本控制与事务补偿机制。缓存设计本质是空间换时间的艺术,开发者需要根据业务特征找到最佳平衡点。
2025-03-06 15:03:58
545
原创 Java静态类与内部类:特性解析与项目实践指南
在Java中,静态类特指使用static修饰的内部类(Static Nested Class)。不需要依赖外部类的实例即可创建只能访问外部类的静态成员可声明静态和非静态成员访问权限修饰符与普通类一致(public/protected/private)典型应用场景包括工具类封装、构建器模式实现等需要与外部类逻辑关联但保持独立性的场景。成员内部类(非静态)静态内部类局部内部类(方法内定义)匿名内部类必须依赖外部类实例存在可直接访问外部类的所有成员(包括private)
2025-03-05 10:35:40
858
原创 Java反射与注解实战:动态代理的优雅实现(下)
/ 类级别注解:标识RPC服务接口// 方法级别注解:标识远程方法// 参数级别注解:规范参数名称通过反射+注解+动态代理的组合拳,我们可以实现:✅ 声明式编程范式✅ 接口与实现解耦✅ 集中化逻辑处理✅ 提升代码可维护性合理控制反射性能开销使用Annotation Processor进行编译期校验结合类加载器实现热部署做好异常处理和日志记录。
2025-03-04 16:15:26
443
原创 从JDBC到数据库连接池:构建高性能Java应用的基石(中篇)
在Java应用与数据库交互的原始模式中,开发者通过DriverManager.getConnection()获取数据库连接,操作完成后调用connection.close()释放资源。数据库连接池的选择如同为系统选择"心脏",HikariCP和Druid分别代表了性能与功能的两个极致。TCP三次握手:每次物理连接建立需要1.5个RTT(Round-Trip Time)上下文切换:内核态与用户态切换消耗(约5-10μs/次)连接泄漏:未正确关闭的连接会持续占用数据库资源。
2025-03-04 11:10:09
1075
原创 JDBC核心技术解析:从基础连接到ORM演进之路(上)
JDBC(Java Database Connectivity)是Java平台的核心数据库访问接口,它通过统一的API为不同关系型数据库提供访问能力。该技术规范由java.sql和javax.sql两个核心包构成,包含DriverManager、Connection、Statement、ResultSet等关键接口,其分层架构如下图所示:JDBC通过驱动适配模式(Driver SPI)实现数据库无关性,开发人员无需关心底层数据库差异,只需加载对应数据库驱动即可实现跨数据库访问。
2025-03-03 12:12:48
404
原创 Java I/O流解析:数据传输的桥梁与实现
是描述数据序列传输的抽象概念,其本质是通过有序的字节序列(或字符序列)实现数据的输入与输出。类比现实世界,流如同物流系统中的传送带:无论货物(数据)存储在仓库(文件)、运输车(网络)还是临时货架(内存)中,传送带(流)都能以统一的机制完成搬运工作。通过以上系统性解析可以看出,Java流体系通过精妙的设计模式与分层抽象,实现了对不同数据源的统一操作。理解流的本质特性与正确使用方法,将显著提升程序的健壮性与执行效率。程序产生的数据需要持久化或传输,如同工厂的产品需要包装运输。
2025-03-02 23:52:14
1242
原创 基于深度神经网络模型的人脸图片质量检测(附源码)
JavaCV是基于OpenCV、FFmpeg等开源库的Java跨平台接口,提供高效的计算机视觉与多媒体处理能力。它封装了底层C/C++库的复杂操作,支持图像处理(如人脸识别、目标检测)、音视频编解码、流媒体传输等功能,适用于实时视频分析、AI模型集成及多媒体应用开发。通过简化JNI调用,JavaCV让开发者能直接在Java/Kotlin中调用高性能原生算法,广泛应用于安防监控、直播推流、医学影像分析等领域,是Java生态中处理音视频与计算机视觉任务的核心工具之一。
2025-03-02 15:23:28
670
原创 Java反射:动态操作类的秘密武器
以上是java反射所有基本概念和详细的语法使用案例,在框架设计中一般不单独使用,主要结合注解以及动态代理,实现自动化的封装逻辑,把业务逻辑和底层技术逻辑彻底解耦。
2025-03-01 15:51:32
525
原创 Java多线程学习:从入门到熟悉(上)
首先,我们来理解一下线程和多线程的概念。线程:线程是程序执行的最小单位。你可以把它想象成一个“工人”,负责执行代码中的任务。多线程:顾名思义,就是有多个“工人”同时工作。每个线程可以独立执行任务,互不干扰。举个例子:假设你有一个任务是要下载10个文件。如果只有一个线程,那它得一个一个下载,耗时较长。但如果你有多个线程,每个线程负责下载一个文件,那下载速度就会大大提升。多线程是Java中非常强大的工具,能够显著提高程序的执行效率。但同时也带来了线程安全、死锁等问题,需要谨慎处理。
2025-02-27 15:57:47
893
原创 程序结构铁律与Java实践:顺序、循环、选择结构深度解析
所有计算机程序的本质逻辑都建立在三大基础结构之上:顺序执行、循环迭代和条件选择。这一"程序结构铁律"由计算机科学家Böhm和Jacopini在1966年通过结构化程序定理严格证明,揭示了任何算法的本质都可分解为这三种结构的组合。Java作为目前主流编程语言,通过丰富的语法特性为开发者提供了灵活的结构化编程能力。掌握三大程序结构的本质及其在Java中的实现方式,是构建健壮、可维护应用程序的基础。随着Java语言的持续演进,结构化编程原则将继续指导我们编写出符合计算机科学本质的高质量代码。condition;
2025-02-26 15:21:59
513
原创 Java中的栈(Stack)及其应用场景
栈(Stack)是一种遵循后进先出(Last-In-First-Out, LIFO)原则的线性数据结构。其核心操作包括:push():元素入栈pop():栈顶元素出栈peek():查看栈顶元素不移除isEmpty():判断栈是否为空栈的空间复杂度为O(n),基本操作的时间复杂度均为O(1),这种高效特性使其成为算法设计中重要的工具。栈作为基础数据结构,在算法设计、系统底层、编译器实现等领域有广泛应用。理解其LIFO特性及Java实现方式,能够帮助开发者更高效地解决特定类型问题。
2025-02-25 17:22:20
734
原创 Java队列(Queue)接口子类详解:核心实现与最佳实践
以上列出了的queue各实现类,包括他们的区别和使用场景举例,开发者需要特别注意不同使用场景的技术选项。注意一般只适合在单机部署场景(java客户端程序、私有化单机应用部署)下使用,否则存在数据丢失风险。分布式部署场景下,目前主流的方案是使用消息队列中间件:Kafka、RabbitMQ、RocketMQ等等。
2025-02-23 10:35:47
658
原创 Java序列化与反序列化技术深度解析
序列化是将对象转换为字节流的过程,使其可以通过网络传输或持久化存储。反序列化则是将字节流还原为对象的过程。// 不会被序列化// 自定义序列化逻辑// 对年龄加密// 自定义反序列化逻辑// 对年龄解密。
2025-02-22 12:00:45
851
原创 深入理解Java泛型:原理剖析与实战应用指南
泛型作为Java类型系统的核心特性,已经渗透到现代Java开发的各个层面。通过合理运用泛型,开发者可以构建出更安全、更灵活、更易维护的代码结构。掌握泛型的原理和应用技巧,是进阶Java高级开发的必经之路。建议在实际项目中多实践泛型设计,结合设计模式实现更优雅的架构解决方案。
2025-02-21 08:05:03
589
原创 Java异常处理深度解析:从原理到实战应用指南
继承体系选择:业务异常继承RuntimeException异常信息标准化:包含错误码、错误描述、上下文数据保持异常链:保留原始异常信息合理的异常处理体系是构建健壮Java应用的基石。通过规范的异常设计、分层处理策略和智能监控告警系统的结合,可以有效提升系统的可维护性和可靠性。建议结合具体业务场景,持续优化异常处理策略,形成适合项目特征的异常管理体系。
2025-02-20 15:04:21
925
原创 Java接口与抽象类深度对比:多态特性在项目实践中的抉择
接口更适用于定义能力边界和实现多态,而抽象类更适合构建具有层次关系的类族共享实现。理解它们的多态实现机制,能够帮助开发者构建出更灵活、更易维护的Java应用程序。接口(Interface)通过interface关键字声明,仅包含抽象方法(Java 8+支持默认方法)抽象类(Abstract Class)使用abstract修饰,可包含具体实现方法。扩展成本:接口变更需修改所有实现类,抽象类局部修改。初始化速度:抽象类快于接口(不涉及多接口查找)1、接口逐渐增强能力(默认方法、私有方法)
2025-02-20 07:07:36
579
2025-java面试知识点(含数据结构和算法)
2025-03-05
深度学习人脸图片质量检测项目源码(含训练文件:res10-300x300-ssd-iter-140000.caffemodel)
2025-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人