- 博客(76)
- 资源 (6)
- 收藏
- 关注

原创 HTTPS实现原理
HTTPS(Hyper Text Transfer Protocol Secure)即安全超文本传输协议,是HTTP的安全版本。它通过结合SSL/TLS协议来确保数据的加密性、完整性和身份验证。以下是HTTPS的主要实现原理:建立连接:客户端(通常是浏览器)向服务器发起HTTPS请求,要求建立一个安全连接。握手过程:客户端发送一个ClientHello消息给服务器,其中包含支持的TLS版本、加密套件列表等信息。服务器接收到后,选择双方都支持的最高TLS版本和加密套件,并回复ServerHello消息
2019-04-25 17:17:56
7404
2
原创 JVM 生产环境问题定位与解决实战(八):实战篇——正则表达式回溯引发的CPU 100%
Java应用中正则表达式设计不当会引发回溯爆炸,导致CPU 100%。本文通过真实案例,展示如何用Arthas定位问题:通过thread -n 3发现卡在java.util.regex.Pattern的线程,最终锁定危险正则。该表达式因嵌套量词(.+)*导致匹配时长呈指数增长。优化方案:1)用[a-zA-Z0-9/-]+替代模糊匹配;2)限制输入长度;3)添加原子组。优化后处理10万字符仅1ms,彻底解决性能问题。文中对比NFA/DFA引擎差异,并给出正则设计四原则:避免嵌套、明确字符集、预过滤输入严格测试
2025-04-28 08:44:36
971
原创 JVM 生产环境问题定位与解决实战(七):实战篇——OSSClient泄漏引发的FullGC风暴
业务代码中批处理业务使用OSSClient访问阿里云OSS时,未调用shutdown()方法释放资源。每个OSSClient实例关联一个PoolingHttpClientConnectionManager对象,这些对象被IdleConnectionReaper的静态变量connectionManagers持有,无法被垃圾回收。大量未释放的PoolingHttpClientConnectionManager实例占满老年代,触发频繁的Full GC。Full GC为“Stop-the-World”事件,导
2025-04-23 17:52:46
1144
原创 MySQL的varchar(10)能存多少个汉字
Q:MySQL的varchar(10)能存多少个汉字?答案与数据库版本强相关:✅ MySQL 5.0+:可存储10个汉字⚠️ MySQL 4.x:仅能存储3个汉字
2025-04-23 17:40:26
852
原创 JVM生产环境问题定位与解决实战(六):总结篇——问题定位思路与工具选择策略
在前五篇文章中,我们深入探讨了JVM生产环境问题定位与解决的实战技巧,从基础的jps、jmap、jstat、jstack、jcmd等工具,到JConsole、VisualVM、MAT的高级应用,再到Java飞行记录器(JFR)的强大功能,以及如何使用JMC进行JFR性能分析,最后介绍了Arthas这一不可错过的故障诊断利器。工具之间还可以组合使用。不同的工具适用于不同的场景和问题类型,接下来我们将对这些工具进行分类,并探讨如何根据具体问题选择合适的工具。JVM问题的排查需要综合运用工具、日志和代码分析。
2025-04-02 17:55:59
1126
原创 JVM生产环境问题定位与解决实战(五):Arthas——不可错过的故障诊断利器
Arthas是阿里巴巴开源的Java诊断工具,支持无侵入性实时诊断,兼容多操作系统及JDK版本。它解决线上常见问题,如类加载异常、代码未执行、线上无法debug等,无需修改代码或重启应用。Arthas采用命令行交互,提供Tab补全,方便问题定位。通过Arthas,开发者可全局查看应用状态,提高线上问题排查效率,GitHub上有丰富用户案例。
2025-04-02 09:06:15
1005
原创 JVM生产环境问题定位与解决实战(四):使用JMC进行JFR性能分析指南
JVM 浏览器可以列出所有本地和远程的 Java 进程,并允许用户连接这些进程以进行性能监控和故障排除。默认情况下启用该选项,因此无需设置该选项就可以使用 JVM 的监视功能。启动测试代码并打开JMC,可在左侧的 JMV 浏览器中看到当前机器所有的 JVM 进程,选择测试代码进程连接MBean服务器后,可见概览界面。操作:勾选想要监控的属性,选择“添加”,然后设置MBean路径,属性,触发值等等信息,最后点完成。操作:除了默认显示的参数,如果想要查看更多的JVM统计信息,可以点击右上角的+号,进行添加。
2025-03-24 10:46:25
751
原创 JVM生产环境问题定位与解决实战(三):揭秘Java飞行记录器(JFR)的强大功能
是 Oracle JDK 内置的性能分析工具,用于监控 JVM 和 Java 应用程序的运行时行为。低开销:生产环境中通常仅产生1%左右的性能损耗实时监控:可记录 JVM 事件、方法调用、内存分配等详细信息、支持动态启停记录事件驱动:捕获超过 200 种不同类型的事件(JDK 11+)集成分析:与 Java Mission Control (JMC) 工具深度集成。
2025-02-24 08:41:37
1582
原创 JVM生产环境问题定位与解决实战(二):JConsole、VisualVM到JProfile与MAT的高级应用
JConsole 是 Java 开发工具包(JDK)自带的一个监控和管理工具,主要用于监控 Java 应用程序的性能和资源消耗。它通过 JMX(Java Management Extensions)技术连接到 Java 虚拟机(JVM),并提供实时的监控数据。作用:显示Java虚拟机信息。用法:在“VM概要”标签中,可以查看有关Java虚拟机的详细信息,包括JVM版本、内存设置(如堆大小和非堆大小)、垃圾回收器类型等。这些信息对于了解JVM的配置和调优性能非常有帮助。
2025-02-24 08:40:46
1419
原创 JVM生产环境问题定位与解决实战(一):掌握jps、jmap、jstat、jstack、jcmd等基础工具
Java开发工具包(JDK)内置了强大的诊断工具集,用于监控、分析和调试Java应用程序。这些工具涵盖了从进程管理、内存分析到性能监控的各个方面。本文将介绍一些最常用的Java开发工具,包括jps、jmap、jstat、jcmd、jstack、jvisualvm等,并提供它们的具体应用场景及使用方法,来帮助开发者快速定位运行时问题。
2025-01-26 18:10:42
1095
原创 无魔法安装Ingress
在Kubernetes集群中,资源是一种API对象,它管理对集群内服务的外部访问,通常通过HTTP。Ingress可以提供负载均衡、SSL终止和基于名称的虚拟主机等功能。要使用Ingress功能,必须部署一个Ingress控制器,它是负责实现Ingress规则的组件。因为网络的原因,使用官方提供的安装方式,镜像一直拉取失败导致一直无法启动。下面先看看官方推荐的安装方式,后面具体介绍如何解决网络问题。
2025-01-22 16:12:06
383
原创 visualvm报错The operation couldn’t be completed. Unable to locate a Java Runtime that supports jvisual
visualvm报错The operation couldn’t be completed. Unable to locate a Java Runtime that supports jvisual
2025-01-22 15:00:14
542
原创 centos下安装docker
国内使用 Docker 的朋友们,可能都遇到过配置镜像源来加速镜像拉取的操作。然而,最近几个月发现许多曾经常用的国内镜像站(包括各种云服务商和高校镜像站)已经无法使用。这会将 Docker systemd 服务配置为在您启动系统时自动启动。失败了, Docker 客户端无法连接到 Docker Hub 来拉取 hello-world,长时间等待后超时。此命令下载测试镜像并在容器中运行。容器运行时,它会打印一条确认消息并退出。整理的加速地址,可能随时也会失效,若失效可去博主github看是否更新。
2025-01-20 17:25:45
492
1
原创 Kubernetes 集群中安装和配置 Kubernetes Dashboard
上篇成功部署Kubernetes集群后,为了方便管理和监控集群资源,安装Kubernetes Dashboard显得尤为重要。Kubernetes Dashboard 是一个通用的、基于 Web 的 UI,旨在让用户轻松地部署容器化应用到 Kubernetes 集群,并对这些应用进行故障排查以及管理集群资源。通过 Dashboard,你可以获取集群内运行的应用概览信息,创建或修改各种 Kubernetes 资源(如 Deployment、Job、DaemonSet 等),还可以执行弹性伸缩、滚动升级等操作。
2025-01-20 17:22:48
2325
原创 CentOS最小化安装后进行网络配置
在使用 CentOS 的最小化安装时,由于其默认的精简化配置,网络功能往往是未启用的。这导致安装完成后无法直接通过网络更新软件包或远程连接服务器(如使用 SSH 连接)。这种问题非常常见,尤其是在虚拟机或云服务器环境中。本文将介绍如何在 CentOS 最小化安装后,使用dhclient配置网络,并启用 SSH 服务以便远程管理服务器。在 CentOS 最小化安装后,由于默认未配置网络,可能无法直接使用网络或连接 SSH。
2025-01-15 10:16:15
839
原创 Kubernetes初始化主节点报错:Some fatal errors occurred: [ERROR CRI]: container runtime is not running:
解决报错:[preflight] Some fatal errors occurred: [ERROR CRI]: container runtime is not running:
2025-01-14 15:45:02
490
原创 安装Kubernetes,容器为containerd
Kubernetes(简称K8s)是一个开源的、用于自动化容器化应用程序部署、扩展和管理的系统。随着技术的不断发展,Kubernetes的版本也在不断更新,但网上大部分的Kubernetes安装教程仍然停留在较旧的版本上。这些教程中,容器运行时通常是以Docker为例,镜像源则多使用已经关闭的阿里云等国内镜像地址,且ServiceAccount的Secret通常是自动生成的。然而,在最新的Kubernetes版本中,这些方面都发生了显著的变化。
2025-01-14 11:30:17
1643
原创 CentOS 7 更换阿里云 Yum 源教程
在使用 CentOS 7 的过程中,默认的 Yum 源有时会因为网络问题或速度限制导致软件包无法更新或者更新缓慢。为了提高软件包下载速度和稳定性,我们可以将默认的 Yum 源替换为国内的镜像源,例如阿里云的 Yum 源。本文提供了详细的步骤来更换 CentOS 7 的 Yum 源为阿里云镜像,确保你的系统能够高效、稳定地获取软件更新。在进行任何更改之前,建议先备份默认的 Yum 源配置文件,以防需要恢复时使用。配置完成后,清理旧的 Yum 缓存并更新新的缓存。并且能够正常列出仓库信息,则表示更换成功。
2025-01-06 17:06:14
2823
3
原创 浏览器报错:您的连接不是私密连接,Kubernetes Dashboard无法打开
部署完成Kubernetes Dashboard后,打开HTTPS的web页面,Chrome和Edge浏览器都无法正常加载页面,会提示您的连接不是私密连接的报错。本文主要介绍了2种解决方案,
2025-01-06 17:04:28
716
原创 如何将项目打包成 Docker 镜像并推送到 Docker Hub
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。本文将详细介绍如何将 Docker 镜像打包并推送到 Docker Hub,以便其他人可以轻松地拉取和运行你的镜像。
2024-12-27 17:36:43
1535
2
原创 常用 Docker 命令速查表
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何支持 Docker 的平台上。为了有效使用 Docker,掌握一些常用的 Docker 命令是必不可少的。以下是 Docker 的一些核心命令及其简要说明。
2024-12-27 17:34:50
733
原创 仓颉编程语言申请下载步骤
仓颉编程语言SDK依托 gitCode 在运营,收到审核通过的邮件,gitCode可能还没有赋权,需要等待赋权后才能正常访问。:关注公众号后,根据推送的消息,在公众号中回复关键词“SDK”,这将触发自动推送的消息,其中包含内测申请的详细信息。: 提交申请后,等待华为官方的审核。:在收到的审核通过的邮件里,会有相应的下载地址,gitCode角色申请通过后,就可以根据邮件里的地址去下载SDK了!想要下载体验的小伙伴,需要去申请才能下载SDK,下面是申请步骤,供大家参考。后,会收到一个内测申请问卷。
2024-07-09 15:05:24
2177
原创 纯净化安装EasyConnect:macOS Sonoma使用docker安装EasyConnect---docker-easyconnect
总结一下,纯净化安装EasyConnect一共三步,第一步是安装docker-easyconnect,第二步是登录vpn,第三步是使用代理软件进行代理转发。安装docker-easyconnect时,需要判断是否要使用图形化界面进行登录,如果需要参考2.1、2.2章节。登录vpn有三种方式,只需要用户名和密码就能登录的直接使用命令行进行登录。如果需要图形验证码,就需要使用web登录或者VNC Viewer登录,两种二选一即可。代理转发可以使用浏览器插件或者clash。
2024-04-25 11:42:16
7762
1
原创 easypoi 导出增加自增序列
要求:使用easypoi导出Excel的时候,要求增加”序号“列,从1开始增加。这列与业务数据无关,只是展示用,便于定位。name = "序号", format = "isAddIndex"实现方式:Java对象新增一列,注意。
2024-04-25 11:27:44
1418
1
原创 mac系统Idea登录codeium不跳转,报错faild download language server
idea通过插件中心安装Codeium以后,登录无法正常跳转到登录页,等待一段时间,右下角图标报错**“faild download language server”**
2024-03-07 14:39:07
2209
原创 Linux服务器中SecureRandom生成随机数非常慢,NativePRNG$Blocking 阻塞
dev/random生成的随机数是基于环境噪声和硬件事件的熵源。/dev/random生成的随机数是基于环境噪声和硬件事件的熵源。它会收集来自硬件设备(如鼠标移动、键盘敲击、磁盘活动等)和操作系统事件(如进程调度、网络活动等)的随机性信息,并将这些信息转化为随机数。SecureRandom类使用了多种熵源来生成随机数,包括操作系统提供的随机性源、硬件随机数生成器和其他可用的随机性源。这种多样化的熵源提供了更高的随机性和抵抗性,使得生成的随机数更难以预测和破解。问题已经定位到了,/dev/random。
2024-01-29 10:54:37
1811
原创 SpringCloud使用nacos做配置中心,不生效,没有作用
一直使用nacos做注册中心,配置还是使用的配置文件。将配置文件整理到nacos以后,却发现一直不生效,看网上大部分说是版本依赖不兼容的问题,修改版本依赖关系、尝试降版本后发现都未生效。新建bootstrap.yaml配置文件,将。Nacos本身的相关配置必须都放在。
2023-03-10 16:13:43
6235
原创 MYSQL 配置优化
允许客户端并发连接的最大数量,默认值是151。设置参数值应大于Max_used_connections。如果使用连接池,可参考连接池的最大连接数和每个连接池的数量作为参考设置。
2023-02-21 10:29:51
630
转载 MySQL 5.7数据库参数优化
连接相关参数max_connections:允许客户端并发连接的最大数量,默认值是151,一般将该参数设置为500-2000max_connect_errors:如果客户端尝试连接的错误数量超过这个参数设置的值,则服务器不再接受新的客户端连接。可以通过清空主机的缓存来解除服务器的这种阻止新连接的状态,通过FLUSH HOSTS或mysqladmin flush-hosts命令来清空缓存。这个参数的默认值是100,一般将该参数设置为100000。interactive_timeout:Mysql关闭交互
2023-02-21 10:29:22
644
转载 mysql优化之thread_cache_size
即可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请求将从缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,增加这个值可以改善系统性能。对于长连接,不能保证连接的稳定性,所以设置这参数还是有一定必要,可能连接池的问题,会导致连接数据库的不稳定性,也会出现频繁的创建和销毁,但这个情况比较少,如果是长连接,可以设置成小一点,一般在50-100左右。2、优化参数thread_cache_size。
2023-02-21 09:31:18
1581
原创 springCloudAlibaba+dubbo+nacos环境下,重启服务提供者或先启动服务消费者后启动服务提供者的情况下,消费者有时候会出现找不到服务的问题及解决方案
springCloudAlibaba+dubbo+nacos环境下,重启服务提供者或先启动服务消费者后启动服务提供者的情况下,消费者有时候会出现找不到服务的问题及解决方案
2022-09-14 11:36:40
612
原创 knife4j + spring-boot-starter-actuator 无法启动,Filed to start bean ‘documentationPluginsBootstrapper‘;
............配置文件配置matching-strategy后,仍然无效果,还是启动不起来。
2022-08-19 18:25:49
1236
1
原创 redis使用rightPushAll保存List,List的size为1
redis使用rightPushAll保存List,List的size为1
2022-08-03 20:20:28
4558
2
原创 Linux环境Nacos、SpringBoot项目jar包启动慢
SpringBoot启动慢 java -jar 启动慢 Client not connected,current status:STARTING
2022-03-18 17:39:13
1633
原创 BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.NullPointerException
集成mybatis-plus,sqlSessionFactory改为MybatisSqlSessionFactoryBean后,项目无法启动 <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">报错信息:org.springframework.beans.factory.BeanCreationException: Error cre.
2021-09-29 20:59:48
1399
byte-of-python-chinese
2017-09-26
tomcat-redis-session-manager for tomcat8.5
2018-11-14
技术之瞳 阿里巴巴技术笔试心得
2017-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人