摘要:
阮一峰的个人网站,廖雪峰的官方网站,酷 壳 – COOLSHELL,MacTalk-池建强的随想录 JAVA NIO指南,并发编程网 ,专注 WEB 端开发,翟永超的技术博客,阿里云开发者中心,程序员小灰的博客,申龙斌的程序人生,蜗窝科技 数据库存储引擎研发专家,系统技术非业余研究,人间指南,生栋说 阅读全文
摘要:
xxl-job任务执行器调度的实现机制 整体上来讲,就是在xxl-job-admin中通过调用任务执行器的HTTP接口,实现对任务执行器的调度。 具体又可以分为2个层面进行剖析,如下: 任务执行器侧: 当在项目中引入xxl-job-core组件之后,如果是在Spring容器环境中,会通过XxlJob 阅读全文
摘要:
在内网部署Jekins服务之后,安装插件总是会非常卡,甚至就无法安装插件。这是因为在Jekins的默认更新配置中,更新地址为https://updates.jenkins.io,需要想办法将更新地址修改为国内的镜像地址才行,同时还需要将Jenkins更新配置文件的地址修改为本地地址。 具体操作步骤如 阅读全文
摘要:
所谓的免安装就是就是使用MySQL服务端二进制压缩包部署服务,而不是直接通过包管理器方式安装MySQL服务器。 如下示例为在CentOS7环境免安装MySQL 8.0.31服务器。 在安装之前需要先检查下是否已经通过包管理器安装过MySQL服务器,如果已经安装,则先把安装的卸载。 $ rpm -qa 阅读全文
摘要:
本文阐述常用开源协议的商用限制。 GPL协议 如果在项目中使用了GPL协议的组件,那么项目也必须是GPL协议的。即:“我帮了你,你也要帮助别人”。 更进一步说,使用了GPL协议软件的项目也必须是开源项目,而且必须遵守GPL协议。 如果商用项目是闭源的,则不能使用GPL协议软件。 LGPL协议 LGP 阅读全文
摘要:
如何在logback配置中使用application.yml中属性 SpringBoot中logback.xml使用application.yml中属性 示例模板: <?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- 读取sprin 阅读全文
摘要:
私服搭建 如下讲解如何基于Docker方式快速搭建Nexus3私服。 编写docker-compose.yaml文件,内容如下: version: '2' services: nexus3: image: sonatype/nexus3:3.72.0 container_name: nexus3 r 阅读全文
摘要:
Docker端口映射不能访问 现象:在公司内网虚拟机上使用Docker部署的禅道服务,之前访问一直都好好的,突然在某天的某个时间点就无法正常访问了,在主机上查看端口映射都是正常的(而且端口也同样被占用了),通过telnet命令也确实无法访问通。 原因排查: Linux未开启内核转发功能,如下: # 阅读全文
摘要:
关于RocketMQ的单节点部署官方文档已经描述得非常清楚了,这里只是做一个简单的备忘。 如下安装步骤均基于最新的Apache RocketMQ 5.3.0实现。 下载安装RocketMQ 直接下载官方编译后的二进制包到本地并解压。 $ unzip rocketmq-all-5.3.0-bin-re 阅读全文
摘要:
问题描述 项目xx基于Spring Boot框架,其<parent>配置如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <vers 阅读全文
摘要:
安装Multipass 使用Multipass可以很方便地启动Ubuntu虚拟机,同时支持Windows,Mac和Linux平台。 不同的操作系统平台安装Multipass的方式有所不同,Linux平台通过snap进行安装:sudo snap install multipass,而Windows和M 阅读全文
摘要:
Arthas是一款线上监控诊断产品,通过全局视角实时查看应用负载、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。 安装 如下阐述的是全量安装方式,这样就可以以离线方式使用Arth 阅读全文
摘要:
关于线上问题 Java应用的线上问题,总结起来大概分为几类:CPU占用高,内存溢出,执行结果不对。 CPU占用高 引起CPU占用高的原因可能有多种,比如: 代码进入死循环 并发请求量大 频繁Full GC 打印日志太过于频繁 内存溢出 导致内存溢出的原因可能是: 分配的Java堆空间不够,可以通过启 阅读全文
摘要:
写在前面 线上环境突然出现Java进程CPU占用率持续超过100%的问题,该如何排查并定位呢? 问题一:我们如何知道线上环境的那个服务器(或者哪个Docker容器)出现了CPU持续高的故障了呢? 如果是有比较完善的监控设施,当出现CPU持续高时可以通过发送报警通知的方式告知开发人员,如果没有监控通知 阅读全文
摘要:
之所以要阅读OpenJDK源码,是因为Sun JDK的某些源码是缺失的,以JDK 1.8为例,sun.reflect,sun.rmi及其子包下的类都是没有源码的。 如下以下载Open JDK 1.8源码为例进行说明。 下载Open JDK源码文件,如下载zip格式的压缩包。 解压Open JDK源码 阅读全文
摘要:
在Java中通过反射调用方法时,常见的一个异常是:java.lang.reflect.InvocationTargetException,将异常信息打印到日志文件中时通常会有如下一句信息:java.lang.reflect.InvocationTargetException: null,由于在异常信 阅读全文
摘要:
数据脱敏的应用场景主要有2类: 接口返回数据 日志打印数据 针对上述场景的需求,数据脱敏的实现方法可以有如下3种: 基于SQL进行脱敏,保证查询到的结果就是脱敏信息:SQL需要精心设计,依赖数据库函数,性能不高。 应用层脱敏:将查询到数据根据一定的策略进行脱敏后再返回或打印日志,对应用代码有入侵,性 阅读全文
摘要:
在基于Spring Boot脚手架创建项目时,通常会直接将spring-boot-starter-parent作为<parent>,如下示例: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s 阅读全文
摘要:
状态机是“有限状态自动机”的简称,是一种描述和处理事物状态变化的数学模型。本质上来讲,就是一种比if...else结构更加优雅,并具备可扩展性的状态转移处理机制。有多种实现方案,如:枚举,Spring Statemachine,cola state machine。 枚举状态机 通过在枚举中定义方法 阅读全文
摘要:
可以使用2种方式运行单机模式的Nacos服务:编译后的压缩包,从源码启动。 如下运行模式基于MySQL数据库,启动Nacos成功之后访问http://127.0.0.1:8848即可访问管理后台,默认用户名和密码均为nacos。 基于编译后的压缩包启动Nacos服务 下载最新的nacos-serve 阅读全文
摘要:
日志打印 使用slf4j作为日志门面API,常用的日志实现库为log4j和logback。 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.36</version> < 阅读全文