摘要: 阮一峰的个人网站,廖雪峰的官方网站,酷 壳 – COOLSHELL,MacTalk-池建强的随想录 JAVA NIO指南,并发编程网 ,专注 WEB 端开发,翟永超的技术博客,阿里云开发者中心,程序员小灰的博客,申龙斌的程序人生,蜗窝科技 数据库存储引擎研发专家,系统技术非业余研究,人间指南,生栋说 阅读全文
posted @ 2018-02-09 18:05 nuccch 阅读(865) 评论(0) 推荐(0) 编辑
摘要: 问题描述 项目xx基于Spring Boot框架,其<parent>配置如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <vers 阅读全文
posted @ 2024-06-19 20:56 nuccch 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 安装Multipass 使用Multipass可以很方便地启动Ubuntu虚拟机,同时支持Windows,Mac和Linux平台。 不同的操作系统平台安装Multipass的方式有所不同,Linux平台通过snap进行安装:sudo snap install multipass,而Windows和M 阅读全文
posted @ 2024-06-16 22:19 nuccch 阅读(98) 评论(0) 推荐(0) 编辑
摘要: Arthas是一款线上监控诊断产品,通过全局视角实时查看应用负载、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。 安装 如下阐述的是全量安装方式,这样就可以以离线方式使用Arth 阅读全文
posted @ 2024-06-15 23:46 nuccch 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 关于线上问题 Java应用的线上问题,总结起来大概分为几类:CPU占用高,内存溢出,执行结果不对。 CPU占用高 引起CPU占用高的原因可能有多种,比如: 代码进入死循环 并发请求量大 频繁Full GC 打印日志太过于频繁 内存溢出 导致内存溢出的原因可能是: 分配的Java堆空间不够,可以通过启 阅读全文
posted @ 2024-06-15 23:45 nuccch 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 写在前面 线上环境突然出现Java进程CPU占用率持续超过100%的问题,该如何排查并定位呢? 问题一:我们如何知道线上环境的那个服务器(或者哪个Docker容器)出现了CPU持续高的故障了呢? 如果是有比较完善的监控设施,当出现CPU持续高时可以通过发送报警通知的方式告知开发人员,如果没有监控通知 阅读全文
posted @ 2024-06-13 22:38 nuccch 阅读(817) 评论(0) 推荐(0) 编辑
摘要: 之所以要阅读OpenJDK源码,是因为Sun JDK的某些源码是缺失的,以JDK 1.8为例,sun.reflect,sun.rmi及其子包下的类都是没有源码的。 如下以下载Open JDK 1.8源码为例进行说明。 下载Open JDK源码文件,如下载zip格式的压缩包。 解压Open JDK源码 阅读全文
posted @ 2024-05-06 21:01 nuccch 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 在Java中通过反射调用方法时,常见的一个异常是:java.lang.reflect.InvocationTargetException,将异常信息打印到日志文件中时通常会有如下一句信息:java.lang.reflect.InvocationTargetException: null,由于在异常信 阅读全文
posted @ 2024-05-06 20:59 nuccch 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 数据脱敏的应用场景主要有2类: 接口返回数据 日志打印数据 针对上述场景的需求,数据脱敏的实现方法可以有如下3种: 基于SQL进行脱敏,保证查询到的结果就是脱敏信息:SQL需要精心设计,依赖数据库函数,性能不高。 应用层脱敏:将查询到数据根据一定的策略进行脱敏后再返回或打印日志,对应用代码有入侵,性 阅读全文
posted @ 2024-04-20 22:19 nuccch 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 在基于Spring Boot脚手架创建项目时,通常会直接将spring-boot-starter-parent作为<parent>,如下示例: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s 阅读全文
posted @ 2024-04-09 16:36 nuccch 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 状态机是“有限状态自动机”的简称,是一种描述和处理事物状态变化的数学模型。本质上来讲,就是一种比if...else结构更加优雅,并具备可扩展性的状态转移处理机制。有多种实现方案,如:枚举,Spring Statemachine,cola state machine。 枚举状态机 通过在枚举中定义方法 阅读全文
posted @ 2024-03-29 21:29 nuccch 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 可以使用2种方式运行单机模式的Nacos服务:编译后的压缩包,从源码启动。 如下运行模式基于MySQL数据库,启动Nacos成功之后访问http://127.0.0.1:8848即可访问管理后台,默认用户名和密码均为nacos。 基于编译后的压缩包启动Nacos服务 下载最新的nacos-serve 阅读全文
posted @ 2024-03-24 14:17 nuccch 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 日志打印 使用slf4j作为日志门面API,常用的日志实现库为log4j和logback。 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.36</version> < 阅读全文
posted @ 2024-03-23 23:26 nuccch 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 实现机制 概括来讲,是将认证信息放在Session中,当客户端发起访问时检查Session中是否存在认证信息,以及认证信息中的权限是否满足预期。 更具体地说,是通过Filter来拦截客户端请求并进行判断处理,使用的Filter链如下: [ org.springframework.security.w 阅读全文
posted @ 2024-03-22 22:52 nuccch 阅读(9) 评论(0) 推荐(0) 编辑
摘要: gRPC概述 gRPC是一种跨语言的RPC框架,之所以它能跨语言,是因为它基于protobuf描述对象实体和方法,最后通过protobuf编译器生成指定语言的代码。 这样,就能通过一套protobuf声明生成多种语言的相同API,对于实现跨语言的RPC通信非常便利,同时也使用protobuf作为通信 阅读全文
posted @ 2024-03-20 21:45 nuccch 阅读(23) 评论(0) 推荐(0) 编辑
摘要: M2_HOME和GRADLE_USER_HOME变量 在$M2_HOME/conf/settings.xml文件中指定Gradle的本地仓库配置信息。 在$GRADLE_USER_HOME/caches/modules-2/files-2.1路径下保存通过Gradle下载的依赖包,Gradle可以直 阅读全文
posted @ 2024-03-17 22:21 nuccch 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 项目使用Gradle进行依赖管理,当代码中存在错误时,运行程序时Build界面将报错(这是正常的),但是在报错结果中显示乱码信息,如下所示: 解决办法:给IDEA添加JVM参数:-Dfile.encoding=UTF-8,然后重启IDEA即可。 参数修改路径:Help -> Edit Custom 阅读全文
posted @ 2024-03-17 22:18 nuccch 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 文本编辑 CudaText https://cudatext.github.io/ 跨平台的开源文本编辑器,界面跟Sublime Text很像,可以通过Python插件进行扩展。 SSH客户端 Tabby https://tabby.sh/ 跨平台,支持SFTP,开源的SSH客户端。 具备丰富的插件 阅读全文
posted @ 2024-03-03 13:26 nuccch 阅读(12) 评论(0) 推荐(0) 编辑
摘要: project-cleaner 项目地址:https://github.com/nuccch/project-cleaner 项目介绍:用于删除项目中的指定文件或目录,如:target,.idea等 dubbo-apisix-springboot-starter 项目地址:https://githu 阅读全文
posted @ 2024-03-03 13:15 nuccch 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 问题描述 参考RocketMQ官方文档在本地启动一个验证环境的时候遇到超时报错问题。 本地环境OS:CentOS Linux release 8.5.2111 首先,进入到RocketMQ安装目录,如:~/opt/rocketmq-all-5.2.0-bin-release。 执行如下命令启动Nam 阅读全文
posted @ 2024-02-25 21:03 nuccch 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 关于通过各种方法下载k8s相关镜像的方法总结如下: 1.使用[Azure中国镜像站](http://mirror.azure.cn/help/gcr-proxy-cache.html),目前限制只能“Azure China IP”可用,不再对外提供服务,此路不通。 2.直接使用mirrorgoogl 阅读全文
posted @ 2023-08-20 16:28 nuccch 阅读(1286) 评论(0) 推荐(0) 编辑