- 博客(114)
- 收藏
- 关注
原创 kafka 集群 KRaft 模式搭建
本文详细介绍了如何搭建Kafka KRaft模式集群。主要内容包括:1) 下载Kafka 3.6.0并上传到3台服务器;2) 配置server.properties文件,设置节点ID、监听地址等参数;3) 生成集群ID并初始化元数据;4) 开放防火墙端口并启动集群;5) 通过命令行和Java项目两种方式测试集群功能。KRaft模式从Kafka 2.8开始移除对Zookeeper的依赖,采用基于Kafka Raft的Quorum控制器实现集群管理。该教程适用于需要搭建无Zookeeper依赖的Kafka集群的
2025-11-17 11:31:36
672
原创 Spring Boot + MinIO + KKFile:三步搭建企业级文件预览系统
本文介绍了如何在Spring Boot中集成MinIO对象存储和KKFileView文件预览服务,实现文档上传后直接在线预览功能。
2025-07-31 16:21:13
502
原创 研发、运营必备实用工具网站
本文介绍了多个实用网站工具,涵盖搜索引擎、PPT模板、图片处理、程序员题库和办公软件资源。内容包括:小白盘(百度云资源搜索)、优品PPT(高质量免费模板)、Bigjpg(AI图片无损放大)、remove.bg(智能抠图)、TinyPNG(图片压缩)、GIF工具之家(GIF处理)、图片助手(批量下载插件),以及程序员常用的LeetCode和牛客网题库,最后推荐了我爱分享网的软件资源下载。这些工具可满足日常办公、设计、编程等多种需求。
2025-07-10 20:34:07
775
原创 根据权重概率实现抽奖
本文介绍了一个基于Java的权重抽奖工具类LotteryUtil。该类通过getPrizeIndex方法实现按权重随机抽奖功能,主要逻辑是:1)计算奖品总权重;2)生成随机数;3)根据各奖品权重占比确定中奖结果。测试代码展示了5种奖品(唇膏5.5%、香水9.8%、眼影4.5%、谢谢参与66%、抽奖次数14.2%)的1000次抽奖模拟,验证了概率分布的准确性。该工具类适用于需要按权重实现抽奖功能的业务场景。
2025-07-10 20:04:57
207
原创 JVM 常用监控工具介绍和使用
本文介绍了三种常用的Java诊断工具:jps用于查看当前运行的Java进程及其PID和主类名;jinfo用于查看和调整Java进程的运行时参数,包括JVM参数和系统属性;jmap用于分析Java进程的内存使用情况,可生成堆内存转储文件并查看对象统计信息。这些工具对Java应用程序的监控、调试和性能优化非常有用,文章详细说明了各工具的命令格式、参数选项及典型使用示例。
2025-04-15 11:47:33
1288
原创 Redis + Caffeine打造超速两级缓存架构
本文介绍了基于Redis+Caffeine两级缓存的高性能接口设计方案。该接口用于查询快递预计送达时间,面临大促期间的高并发挑战。本地缓存Caffeine提供极速查询(毫秒级响应)和减少网络I/O的优势,但存在数据一致性、不支持持久化等缺点。通过配置Redis和Caffeine的Spring Boot集成方案,实现了先查本地缓存、再查Redis、最后查数据库的三级查询流程。文中详细展示了MySQL表结构、Maven依赖配置、Redis和Caffeine的Spring配置类实现,以及核心业务逻辑的Servic
2025-04-15 09:27:45
888
原创 从3s到25ms!看看人家的接口优化技巧,确实很优雅!!
本文总结了12种接口性能优化方案,包括批处理、异步处理、缓存利用、预处理、池化思想、并行化、索引优化、避免大事务、程序结构优化、深分页处理、SQL优化和锁粒度控制。这些方案通过减少IO操作、优化数据库查询、合理利用资源等方式提升接口响应速度。文章还分享了作者在实际项目中优化复杂查询接口的经验,将5W数据处理的接口耗时从2秒降至毫秒级。这些通用优化策略适用于各种业务场景,能有效提升系统性能,建议开发者收藏参考并根据实际需求灵活应用。
2025-04-03 14:48:35
1205
原创 调用第三方接口时,如何进行优雅重试
本文介绍了Java中实现接口重试机制的两种方案。基础实现采用自定义重试工具类,支持设置最大重试次数、指数退避算法和指定可重试异常类型。通用重试框架则提供更灵活的配置,包括Builder模式构建、多种退避策略、定制异常处理和日志记录等功能。两种方案都遵循重试基本原则:仅对可恢复错误重试、采用递增间隔、限制重试次数并考虑幂等性。代码示例展示了如何实现带重试的外部API调用,适用于网络不稳定或高负载导致的接口异常场景。
2025-03-27 15:15:13
560
原创 springfox-swagger-ui 3.0.0 配置
本文介绍了SpringBoot项目中集成Swagger 3.0的方法。主要包含:1) 新版访问地址变为http://地址:端口/项目名/swagger-ui/;2) Maven和Gradle的依赖配置;3) Swagger配置类示例,包含API信息、安全认证等设置;4) 效果图展示。配置类支持全局认证,可设置请求头信息,并提供了官方文档链接。该方案基于Springfox 3.0.0版本实现,能自动生成RESTful API文档。
2025-01-24 17:09:14
1383
原创 Linux彻底删除MySQL
本文详细介绍了在Linux系统中彻底卸载MySQL的步骤。首先检查已安装的MySQL组件并停止服务,然后查找并删除所有MySQL相关目录和配置文件。接着卸载所有MySQL组件包,包括使用--nodeps强制删除依赖项。最后通过验证命令确认卸载是否成功,确保系统完全清除MySQL残留文件,为安装新版本做好准备。整个过程需谨慎操作,避免误删系统文件。
2025-01-24 16:55:37
301
原创 Linux下部署ElasticSearch集群
本文介绍了Elasticsearch 7.17.8集群的搭建过程,包含3个节点(k8s-m、k8s-w1、k8s-w2)。主要步骤包括:1)准备环境,下载安装包并解压;2)修改配置文件(elasticsearch.yml和jvm.options);3)分发配置到各节点;4)调整系统参数(文件句柄数和虚拟内存区域);5)创建专用用户启动集群;6)配置开机自启服务。重点配置了集群名称、节点名称、网络设置、内存锁定等参数,并解决了权限和系统限制问题,最终实现了Elasticsearch集群的部署和后台运行。
2025-01-03 15:25:29
1323
原创 Linux下部署Redis集群 - 一主二从三哨兵模式
本文介绍了在三台服务器上搭建Redis一主二从三哨兵集群的详细过程。首先准备三台服务器(142作为主节点,141和140作为从节点),确保开放6379-6381和26379-26381端口。基础部署包括下载、解压、编译安装Redis 6.2.6,创建bin、etc、logs目录,配置redis.conf文件(设置密码、日志路径等)。主从配置时,主节点需设置masterauth,从节点需配置replicaof指向主节点IP和端口。最后通过info replication命令验证主从关系,确认Role显示mas
2025-01-02 15:01:12
997
原创 Linux下部署MySQL8.0集群 - 一主两从模式(主从复制)
本文详细介绍了MySQL 8.0.37在Linux系统下的主从集群部署流程。首先进行系统环境检查,下载对应安装包并准备三台服务器(1主2从)。具体步骤包括:解压安装包、配置my.cnf文件(注意server-id唯一性)、创建mysql用户组并授权、初始化数据库获取临时密码、启动MySQL服务、修改root密码以及配置远程访问权限。文中提供了完整的命令示例和配置参数,特别强调了主从配置中server-id的设置要求,为后续主从同步配置奠定了基础。所有操作均需在三台服务器上执行,确保基础环境一致。
2024-12-19 14:54:02
1258
原创 使用 kubekey 搭建 k8s 集群 及 kubeSphere
本文介绍了使用KubeKey工具部署Kubernetes集群和KubeSphere平台的方法。KubeSphere是基于Kubernetes构建的开源多租户容器管理平台,提供简化操作界面。文章详细说明了三节点集群的安装架构(1个master节点和2个worker节点),并提供了初始化环境的完整步骤,包括设置主机名、配置hosts文件、网络测试、关闭防火墙、禁用SELinux以及关闭swap分区等准备工作。通过KubeKey可以快速部署Kubernetes集群并集成KubeSphere管理平台,降低云原生应用
2024-10-30 16:40:41
1395
原创 Docker搭建官方私有仓库registry及相关配置
本文介绍了Docker私有仓库registry的搭建方法。首先拉取registry镜像并启动容器,默认端口5000。关闭防火墙后通过浏览器访问验证仓库是否搭建成功。为了让Docker信任私有仓库地址,需修改/etc/docker/daemon.json文件,添加"insecure-registries"配置项。虽然registry搭建简单,但文章指出其功能有限,推荐企业使用更强大的Harbor作为镜像管理方案。
2024-10-29 11:42:27
1497
原创 docker配置daemon.json文件
本文介绍了解决Docker连接超时错误的方法。当出现"Get https://registry-1.docker.io/v2/ net/http: request canceled"错误时,可通过配置镜像加速地址解决,具体步骤包括:编辑/etc/docker/daemon.json文件添加多个镜像源(如https://docker.1panel.live等),保存后重启Docker服务。若问题依旧,可修改DNS配置,在/etc/resolv.conf中添加Google公共DNS(8.8.
2024-09-29 15:12:09
2623
1
原创 【CentOS7】yum 报错:Could not retrieve mirrorlist http://mirrorlist.centos.org
用yum install 命令去安装一些linux插件时报错,找了很久才解决,踩了很多坑,希望你们也不要踩,既不是大家搜索的网络问题,ping www.baidu.com可以通、DNS也设置了;一、报错如下。
2024-09-29 11:26:23
5857
14
原创 新增和修改接口合并
本文实现了一个保存手册权限的功能。方法首先检查权限列表是否为空,为空则直接返回成功。对于非空列表,它会批量查询已存在的权限记录,然后处理每个用户的权限设置("1"表示允许,其他值视为禁止)。对于已存在的记录执行更新,新记录则执行插入。最后通过MyBatis的批量插入/更新SQL语句实现高效操作,该SQL使用ON DUPLICATE KEY UPDATE语法处理重复键情况。整个过程包含了权限数据处理、批量查询、记录构建和异常处理等完整流程。
2024-08-09 10:51:40
305
原创 查询数据显示成树结构形式
摘要:本文展示了如何将手册章节数据查询并转换为树形结构。首先定义了一个包含章节ID、标题、父ID等字段的数据库表t_manual_chapters,然后创建了对应的Java实体类TManualChapters和树形结构视图类ChapterTreeBean。ChapterTreeBean类通过构造函数将章节实体转换为树节点,并包含子节点列表,实现了数据的树形结构化展示。该方案适用于需要展示层级关系的数据场景。
2024-06-28 16:19:04
236
原创 Java调用第三方HTTP接口的常用方式
本文介绍了Java调用第三方HTTP接口的6种常用方式:1)使用JDK原生的HttpURLConnection类;2)Apache Commons的HttpClient;3)Apache的CloseableHttpClient;4)OkHttp客户端;5)Spring的RestTemplate;6)Hutool工具包的HttpUtil。重点展示了HttpURLConnection的实现示例,包括建立连接、设置参数、发送请求和处理响应的完整流程。这些方法各有特点,开发者可根据项目需求选择合适的HTTP客户端工
2024-06-26 10:13:29
1359
原创 SpringSecurity + Oauth2 + jwt实现单点登录
本文介绍了使用Spring Security OAuth2 + JWT实现单点登录的方案。文章首先分析了传统Redis方式的缺点,包括客户端配置耦合度高、过度依赖认证服务器等问题。然后详细讲解了JWT方式的实现步骤,包括认证服务器的配置(WebSecurity、JWT仓库、UserDetailsService等)、测试验证、自定义UserUtil增强JWT内容、实现JWT退出功能等。最后通过学生和教师资源服务器的案例,展示了如何将认证服务器同时作为资源服务器使用。JWT方案相比Redis方式具有更好的解耦性
2024-04-26 17:44:21
3949
1
原创 线程池的使用
本文介绍了Java线程池的使用场景和创建方式。线程池通过复用线程资源,可以有效提升系统响应时间和处理大任务的吞吐量。创建方式包括自动创建(Executors工具类提供newFixedThreadPool等方法)和手动创建(ThreadPoolExecutor构造函数可灵活配置参数)。文章详细说明了线程池的核心参数如核心线程数、最大线程数、队列类型等,并提供了代码示例展示如何提交任务、获取返回值及关闭线程池。同时对比了不同队列类型的特点,为合理使用线程池提供了实践指导。
2024-04-26 16:52:07
613
原创 SpringBoot整合kafka
本文介绍了在Spring Boot应用中集成Kafka的完整流程。首先需要在pom.xml中添加spring-kafka依赖,然后在application.yml中配置Kafka服务器地址、生产者/消费者的序列化方式等参数。接着通过KafkaProducerConfig类配置生产者工厂和KafkaTemplate模板。最后创建REST控制器,使用KafkaTemplate将接收到的消息发送到指定主题。整个过程涵盖了Kafka在Spring Boot中的基本配置和使用方法,包括生产者的创建和消息发送功能实现。
2024-04-26 11:52:05
1330
原创 分布式任务调度平台 XXL-JOB
XXL-JOB是一个轻量级分布式任务调度平台,具有开发迅速、学习简单、轻量级、易扩展等特点。它解决了传统单机任务调度的高可用性、防止重复执行和单机处理极限等问题。通过将调度中心与执行器解耦,XXL-JOB支持分布式部署,已在多家知名企业应用。平台提供源码下载,支持MySQL数据库初始化,通过配置文件和maven编译即可快速部署。调度中心负责发起调度请求,执行器管理分散的JobHandler执行业务逻辑,实现高效稳定的任务调度管理。
2024-04-26 11:46:22
1263
转载 纯净版Win10系统重装教程 - 详细篇
本文提供了一份详细的纯净版Win10系统重装教程,适用于电脑小白用户。教程包含从准备工作到最终系统配置的全流程:首先需要备份重要数据并准备8G以上U盘;然后通过微软官网下载工具制作启动盘;接着进入BIOS设置U盘启动,完成系统版本选择、硬盘分区等操作;最后进行新系统的初始化设置。文中配有详细的步骤截图和注意事项说明,特别提醒用户需提前记录Office激活账户信息,确保重装后能正常激活软件。整个流程清晰易懂,帮助用户顺利完成系统重装。
2024-04-26 11:23:34
6691
2
原创 Redis性能瓶颈:优化大key
Redis大key问题是指单个key数据量过大导致性能下降甚至宕机的现象。大key会带来内存占用高、读写性能差、服务器负载增加等问题。产生原因包括数据模型设计不合理、业务需求导致数据量过大等。排查方法可通过SCAN命令、redis-cli的--bigkeys参数或RDB分析工具。解决方案包括优化数据模型、拆分大key为多个小key、设置过期时间等。建议将string类型大key拆分为多键值对,hash/list类型拆分到多个小结构中,并设置合理过期策略,同时考虑使用Redis集群分散数据。
2024-04-26 11:19:35
1270
原创 实现异步的8种方式
本文介绍了异步编程的概念及八种实现方式。异步编程通过将耗时任务分配给其他线程或线程池,避免阻塞主线程,提高程序性能和响应速度。八种实现方式包括:1)线程异步;2)Future异步;3)CompletableFuture异步;4)Spring的@Async注解;5)Spring事件异步;6)消息队列;7)ThreadUtil工具类;8)Guava异步。每种方式适用于不同场景,开发者可根据需求选择合适方案。文章还提供了部分实现方式的代码示例,帮助理解异步编程的具体应用。
2024-04-26 11:15:06
2818
原创 Windows环境安装Minio
本文介绍了在Windows环境下安装和配置Minio对象存储服务的详细步骤。主要内容包括:1)下载Minio服务端和客户端文件;2)创建必要的目录结构;3)提供两种启动服务的方式(命令行和bat脚本);4)查看版本信息;5)访问控制台的方法。注意事项提示9001为控制台端口,9000为服务端口。该教程涵盖了从安装到运行的完整流程,适合初学者快速部署Minio服务。
2024-04-26 10:44:43
1388
原创 Mockito单元测试
本文介绍了Mockito单元测试的基本使用方法和注意事项。主要内容包括:1)为什么要使用Mock对象替代真实对象进行测试;2)Mockito的基本使用方法,如模拟方法调用、指定返回值、抛出异常等;3)打桩(stubbing)的概念和规则;4)公司使用Mockito的规范;5)测试覆盖率检查方法。特别强调了测试时需注意参数匹配、打桩必要性、避免空指针等问题。文中还提供了使用jacoco查看测试覆盖率的详细步骤,帮助开发者编写更有效的单元测试。
2024-04-15 11:55:05
2422
1
原创 Centos7安装K8S报错:[ERROR KubeletVersion]: the kubelet version is higher than the control plane version.
摘要:本文解决了Kubernetes集群初始化时出现的kubelet版本过高问题(1.20.1高于控制平面1.14.0)。通过移除旧版kubelet后,按顺序安装指定版本组件(kubelet-1.14.0-0、kubeadm-1.14.0-0和kubectl-1.14.0-0),并修改cgroup驱动配置。最后重启kubelet服务完成修复,确保版本兼容性。所有节点均需执行此操作,master节点需额外重新初始化。
2024-04-09 15:56:38
713
1
原创 Docker设置ustc的镜像源(镜像加速器:修改/etc/docker/daemon.json文件)
摘要:本文介绍了中国科学技术大学(ustc)提供的Docker镜像加速服务,该服务具有速度快、无需注册等优势。详细说明了如何配置ustc镜像源:1)在宿主系统创建/etc/docker/daemon.json文件,添加镜像地址;2)重新加载配置并重启Docker服务。操作步骤包括创建目录、编辑配置文件、执行systemctl命令等关键操作,帮助用户快速完成Docker镜像源的切换。
2024-04-09 15:49:53
1369
原创 常用网络&特殊符号大全(含彩色表情符号)
1、常用符号 ❤❥웃유♋☮✌☏☢☠✔☑♚▲♪✈✞÷↑↓◆◇⊙■□△▽¿─│♥❣♂♀☿Ⓐ✍✉☣☤✘☒♛▼♫⌘☪≈←→◈◎☉★☆⊿※¡━┃♡ღツ☼☁❅♒✎©®™Σ✪✯☭➳卐√↖↗●◐Θ◤◥︻〖〗┄┆℃℉°✿ϟ☃☂✄¢€£∞✫★½✡×↙↘○◑⊕◣◢︼【】┅┇☽☾✚〓▂▃▄▅▆▇█▉▊▋▌▍▎▏↔↕☽☾の•▸◂▴▾┈┊①②③④⑤⑥⑦⑧⑨⑩ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ㍿▓♨♛❖♓☪✙┉┋☹☺☻تヅツッシÜϡﭢ™℠℗©®♥❤❥❣❦❧♡۵웃유ღ♋♂♀☿☼☀☁☂☄☾☽❄☃☈⊙☉℃℉❅✺ϟ☇♤♧♡♢♠♣♥♦☜☞
2024-03-29 17:37:18
30270
原创 kubernetes(K8S)学习(九):K8S之日志监控
本文介绍了Kubernetes中的日志监控方案,主要包括四种日志查看方式:容器级别(使用docker logs和kubectl logs命令)、Pod级别(kubectl describe)、组件服务级别(journalctl查看系统服务日志)以及集中式日志方案LogPilot+ES+Kibana。重点详细说明了LogPilot的部署方法,包括创建DaemonSet配置文件log-pilot.yaml和Elasticsearch集群的StatefulSet配置elasticsearch.yaml,通过Fil
2024-03-29 16:18:48
2008
原创 常见部署方案:普通部署、滚动部署、蓝绿部署、灰度发布(金丝雀发布)
本文介绍了四种常见的软件部署方式:1)普通部署会中断服务;2)滚动更新分批升级服务器,新旧版本并存;3)蓝绿部署通过并行运行新旧版本实现零停机;4)灰度发布(金丝雀发布)采用渐进式验证策略,先让少量用户使用新版本测试稳定性。文章详细说明了每种方式的实现步骤和特点,其中蓝绿部署风险较低,而灰度发布能最大限度保障系统稳定,通过逐步扩大范围降低升级风险。这些方法为不同场景下的系统升级提供了灵活选择。
2024-03-29 15:57:21
1053
原创 kubernetes(K8S)学习(八):K8S之常见部署方案
本文介绍了Kubernetes中四种常见的部署方案:普通部署、滚动更新、蓝绿部署和灰度发布。普通部署会先停止旧Pod再创建新Pod,导致服务中断;滚动更新允许新旧Pod共存,实现无缝升级;蓝绿部署通过流量切换实现零停机升级;灰度发布(金丝雀发布)则逐步将流量导向新版本进行测试。每种方案都配有YAML配置示例和操作命令,帮助开发者根据实际需求选择合适的部署策略,平衡发布风险与系统可用性。
2024-03-29 15:55:17
1204
原创 kubernetes(K8S)学习(七):K8S之系统核心组件
Kubernetes(K8S)系统核心组件包括Master节点和Node节点。Master节点负责集群管理和控制,包含API Server、Controller Manager、Scheduler等关键组件,可配置为高可用模式。Node节点负责运行工作负载,包含kubelet、kube-proxy等关键进程。文章还介绍了使用kubeadm初始化集群的命令和过程,包括证书生成、kubelet配置、控制平面组件部署等步骤。通过kubectl命令可以查看和管理集群中的节点信息。
2024-03-29 15:46:28
1655
原创 kubernetes(K8S)学习(六):K8S之Dashboard图形界面
Kubernetes Dashboard是基于Web的K8S用户界面,可用于部署应用、管理集群资源和故障排查。安装步骤包括:1)下载Dashboard镜像并可选推送至私有仓库;2)通过yaml文件创建相关资源,需注意修改镜像地址(约44行处)。配置文件包含ConfigMap、ServiceAccount、Deployment及RBAC权限设置,确保Dashboard正常运行。安装完成后,用户可通过Web界面直观管理Kubernetes集群。
2024-03-29 15:35:41
4058
1
原创 kubernetes(K8S)学习(五):K8S进阶(Lifecycle......偏理论)
本文介绍了Kubernetes中Pod的进阶知识,主要包括五个方面:1) Pod的生命周期状态(Pending、Running、Succeeded、Failed、Unknown);2) 重启策略(Always、OnFailure、Never);3) 静态Pod的特点;4) 健康检查探针(livenessProbe、readinessProbe、startupProbe);5) ConfigMap的创建与使用。文章详细说明了每种状态和策略的具体含义,并提供了命令行创建ConfigMap的示例代码。这些内容帮助
2024-03-29 15:28:06
2743
原创 Kubernetes(K8S)学习(四):K8S之Storage
本文介绍了Kubernetes中使用NFS共享存储的两种方式:手动静态创建PV/PVC和动态申请PV。重点通过实战演示了Host类型Volume的使用,在Pod中创建两个容器共享同一个Volume挂载点,验证了挂载目录的同步性。测试结果表明,Volume能够有效解决容器文件临时性和容器间文件共享的问题。最后还展示了如何查看Pod中容器的hosts文件内容。
2024-03-29 14:47:56
1604
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅