项目开发问题
文章平均质量分 77
本专栏汇总笔者在日常项目开发过程中碰到的问题,解决过程,以及个人的思考,作为网络笔记,方便以后使用时检索!
毕小宝
技术路漫漫,仍然在路上的 Java 程序员!
展开
-
Apache Ftp Server 部署,它的帐号密码加密算法是什么呢?
本文介绍 Apache Ftp Server 应用的部署过程及 Java 操作 FTP、SFTP 的流程,主要用于有操作 FTP、SFTP 的业务场景。SFTP 环境容易得到,凡事 Linux 主机开通 SSH 连接就可以通过 SFTP 操作,但是,FTP 环境可能需要自己搭建,本文介绍使用开源 FTP Server 的过程。开源应用Apache 旗下的 Apache Ftp Server ,可以用于搭建自己的 FTP 测试环境。主要需要关注三点:帐号配置:res/conf 目录下的 use原创 2022-05-27 22:45:00 · 878 阅读 · 0 评论 -
MyBatisPlus 分页插件的用法和基于行锁的分布式锁方案分析
前段时间跟踪 MyBatis 源码,针对 MyBatis 的分页查询的结果分析后,发现传入的 IPage 参数结果已经包含了查询数据了,以为分页查询语句的关键在于第一个入参必须是 IPage ,而不需要返回值了呢。本文再回顾一下 MyBatis 分页插件的用法及两个发现。分页查询 DAO...原创 2022-01-30 12:28:52 · 2645 阅读 · 0 评论 -
Spring Task 执行长耗时的任务时,会堆积并行执行吗?
最近跟任务调度工具杠上了,分析了 Quartz 的集群调度能力后,再对比看 Spring Task ,想到几个问题:Spring Task 执行长耗时的任务时,会堆集并行执行吗?原创 2022-01-28 15:37:53 · 1486 阅读 · 0 评论 -
Spring Batch 与 Spring Cloud Task 、Quartz 等概念辨析
Spring Batch 与 Spring Cloud Task 、Quartz 等概念辨析原创 2022-01-26 20:00:00 · 2011 阅读 · 0 评论 -
Spring Cloud Task 主要是干什么的啊?跟 Quartz 和 Spring Task 有啥关系?
项目开发中涉及到分布式定时任务调度,且任务处理时又涉及到了数据分片。Spring Cloud Task 主要是干什么的啊?跟 Quartz 和 Spring Task 有啥关系?原创 2022-01-25 18:27:06 · 2852 阅读 · 0 评论 -
Flume 入门及疑惑
Flume 日志采集框架,使用默认的组件简单运行了一下。本文介绍 sink 使用 file_roll 的配置及疑惑。原创 2022-01-21 18:39:22 · 1841 阅读 · 0 评论 -
探究 CentOS 7 下 iptables 和 firewalld 切换过程中,谁主沉浮
最近需要开发一个 iptables 的可视化管理平台,研究了一下 iptables 和 firewalld 这两个防火墙。CentOS 6 上 iptables 作为默认防火墙,这个比较好控制。对于 CentOS7 中,这两个防火墙之间切换时,到底谁起主要作用呢?又怎么控制规则呢?原创 2022-01-20 17:14:45 · 2342 阅读 · 0 评论 -
Dockerfile 命令:黑卡饮料、山楂果费、哦SUV,机器学习
四个单词祝你记住 Dockerfile 命令:黑卡饮料、山楂果费、哦SUV,机器学习原创 2022-01-11 19:33:32 · 685 阅读 · 0 评论 -
做系统架构的一些原则,看陈皓老师怎么说?
看到“左耳朵耗子”陈皓老师的一篇关于架构设计的文章,转载分享。原文:https://coolshell.cn/articles/21672.html作者:陈皓出处:酷壳工作 20 多年了,这 20 来年看到了很多公司系统架构,也看到了很多问题,在跟这些公司进行交流和讨论的时候,包括进行实施和方案比较的时候,都有很多各种方案的比较和妥协,因为相关的经历越来越多,所以,逐渐形成了自己的逻辑和方法论。转载 2021-12-31 13:10:03 · 335 阅读 · 0 评论 -
SpringBoot + SpringCloud 技术知识点自测
三年前项目开发工具从 SpringMVC 转向 SpringBoot ,当时不了解 SpringCloud ,为了学习这两个技术知识,买了一个专栏。今天突然翻到了专栏的学习笔记,决定再看一遍专栏的内容,顺便检验一下自己这两个技术的掌握程度。这几年用 SpringBoot 和 SpringCloud 大大小小也参与过几个项目,用得也相当熟练了,结合使用经验再看一遍专栏的内容,想必也能碰撞出一些新想法吧。原创 2021-12-30 19:45:00 · 250 阅读 · 0 评论 -
MyBatisPlus + Oracle 联合查询排序问题整理,2021 年最后一篇
使用打包插件 exec-maven-plugin 在 prepare-package 阶段阶段已经完成了 class 的编译,如果此时要执行额外的 `npm run build` 命令将前端工程打包到 resources 目录下,那么最终的 jar 包中是不会包含新生成的资源文件的。所以如果 React 前端工程变化了,首次打包后不会生效问题。原创 2021-12-31 20:15:00 · 1689 阅读 · 0 评论 -
介绍 maven 三个常用的插件使用注意事项
介绍 maven 三个常用的插件使用注意事项,开发过程中常常会混合使用这三个插件,本文介绍这三个插件的注意事项。原创 2021-12-20 20:11:29 · 1037 阅读 · 0 评论 -
axios 的发送请求时 url 的相对路径是怎么决定的?
一个基于 React + SpringBoot 实现的前后端分离的项目,联调的时候发现 axios 发送请求时 url 错误。本文分析 axios 在生产环境下发送请求时,url 相对路径是什么的问题。原创 2021-12-15 18:38:39 · 6602 阅读 · 0 评论 -
Oracle Varchar2 存储中文的长度和 @Valid 校验注意事项
项目中对所有的实体都用 Spring 的 @Validated 进行了校验,集成测试的时候却总是出现校验通过、入库异常的问题。记得开发的时候测试过入参校验,一度怀疑自己失忆了,认为是 @Validated 校验失效了,最终发现根源竟然在“中文”存储长度上。原创 2021-12-14 20:16:09 · 2202 阅读 · 0 评论 -
React 的 Upload 文件表单编辑回显及 onChange 自定义回调的方式
本文介绍 antd 的 Upload 组件编辑回显的方式,以及 onChange 回调函数的使用说明。主要知识点如下:Upload 文件上传表单,在编辑回显时,如何初始化数据?Upload 自定义 onChange 回调函数,如何传入额外的参数?React 如何通过 setState 修改数组的某一元素的值?原创 2021-12-13 19:23:42 · 3303 阅读 · 0 评论 -
node 和 react-app-rewired 修改 React 打包目录的流程
基于 SpringBoot + React 前后端分离的工程,为了便于打包,通常需要配置 React 项目的打包目录为 SpringBoot 工程的 resources/static ,本文记录两种不同前端打包插件配置 React 打包目录的方法。原创 2021-12-08 19:15:35 · 1476 阅读 · 0 评论 -
Netty 工作线程资源死锁问题分析
最近一个产品的开发工作告一段落,本文记录开发过程中遇到的几个印象深刻的问题。原创 2021-12-05 15:12:45 · 861 阅读 · 0 评论 -
Spring 嵌套事务提交时机对其他查询操作的影响分析
Spring 的 @Transactional 注解可以轻松实现数据库操作的事务控制,本文介绍上周遇到的一个嵌套事务的问题,探讨嵌套事务的提交时机对后续操作的影响。原创 2021-11-16 11:40:54 · 867 阅读 · 0 评论 -
RestTemplate 发送请求时 Cookie 的影响及注意事项
我从互联网上得到的最好的经验之一,就是永远不要复制和粘贴不是自己编写的代码。如果你一定要复制,那就照着它逐字输入,逼着自己思考,这些代码实际上是什么意思。原创 2021-09-04 11:03:11 · 3922 阅读 · 1 评论 -
Netty 的 ChannelOption.SO_BACKLOG 知识点整理
一个基于 Netty 的应用,在压力测试时,Socket 请求数量一多,就发送失败,监测 JVM 内存大小比较稳定,猜测可能是 `ChannelOption.SO_BACKLOG` 这个配置导致的,设置的值是 128 。调整为 1024 后,连接失败的次数确实减少了一些,那么这个配置到底有什么作用呢?本文来汇总一下这个知识点。原创 2021-08-31 17:15:04 · 1397 阅读 · 0 评论 -
Java 包装类型 Long 的 == 操作引发的低级 bug
一个简单的列表检索功能,列表元素有一个 `Long` 类型的属性,遍历过程中犯了一个低级错误,导致功能流程始终错误,本文将分享两个低级错误引发的 bug。原创 2021-08-23 07:24:08 · 538 阅读 · 0 评论 -
SpringBoot 项目去 Tomcat 转为非 Web 应用的两种方法
SpringBoot 项目,怎么既剥离掉 Tomcat ,又能用 SpringBoot 及 Bean 的依赖管理呢?框架已经提供了这个能力。SpringBoot 项目去 Tomcat 转为非 Web 应用有两种方法,一起来回顾一下吧。原创 2021-07-09 08:23:16 · 613 阅读 · 0 评论 -
Accept-Encoding 头域导致 content-length 响应头丢失问题分析
最近开发工作内容是用 Netty 实现 http 服务,测试客户端用 Postman ,直接用默认的请求头,结果Accept-Encoding 头域导致 content-length 响应头丢失了,为何呢?原创 2021-06-17 18:58:11 · 2359 阅读 · 1 评论 -
XXL-Job 自动感应执行器上下线源的码分析
XXL-Job 的自动注册和心跳检测代码相当简洁,本文继续分析它的 JobRegistryHelper 类是如何实现的,虽然只有短短的两百多行,但是值得一看。本文要阐述两个问题: 1. XXL-Job 是如何检测下线 Executor 且更新集群信息的? 2. XXL-Job 的执行器心跳检测是谁发起的,后台做了什么操作?原创 2021-04-11 10:51:28 · 1100 阅读 · 0 评论 -
XXL-Job 支持 Oracle 的改造过程及注意事项
XXL-Job 默认支持 MySQL 数据库,为了解决多数据库兼容问题,上周做了 Oracle 和 Postgre 的验证测试,本文记录改造 Oracle 的过程及问题。原创 2021-04-11 08:46:26 · 3273 阅读 · 1 评论 -
XXL-Job 任务依赖能力验证及各框架对比分析
XXL-Job 的任务依赖任务 7 配置了一个子任务,当前任务执行完成后,会执行子任务。各自任务执行器执行完成后,继续触发了任务 2:原创 2021-04-09 08:34:22 · 2205 阅读 · 0 评论 -
XXL-Job 适配 Postgre 数据库的完整流程
开源任务调度框架 XXL-Job 默认是基于 MySQL 数据库开发的,好在它是使用了 MyBatis ,要支持其他数据库,需要改 Mapping 映射文件,建表语句换成其他数据库的。原创 2021-04-08 06:50:09 · 3040 阅读 · 4 评论 -
Azkaban 三种分派器实现类的源码分析
Azkaban 提供了三种执行器实现类,默认的是 ExecutorManager ,但是该类却被标注为废弃,由 ExecutionController 类替代。奇怪的是,它为什么要定义三种实现类呢?这里探究一下三种实现方式的差异。原创 2021-04-07 06:38:58 · 353 阅读 · 0 评论 -
Azkaban 内置和 Quartz 任务调度核心源码分析
Azkaban 底层的任务调度有两种方式, Quartz 和内置调度,分析源码希望找到它实现灵活的 DAG 流的逻辑,本文来分析 Azkaban 调度过程的源码。看文本文,至少搞明白这三个问题: 1. Azkaban 的内置调度和 Quartz 调度同时存在会如何? 2. Azkaban WebServer 重启时,如何加载启动状态的 Project ,并加入调度的? 3. 非 Quartz 调度过程是如何组织的?原创 2021-04-06 12:32:01 · 891 阅读 · 0 评论 -
Azkaban 源码导入问题 java.lang.AssertionError
下载最新版本的 Azkaban 源码 4.0.0 ,导入 IDEA,源码中会有一些编译错误,本文整理任务调度框架 Azkaban 源码导入的流程 。Azkaban 是使用 gradle 构建的多模块项目,而我本地以前安裝过 gradle ,正好直接用。原创 2021-04-04 11:30:11 · 502 阅读 · 2 评论 -
Quartz 创建 Job 实例调用 JobMapData 源码分析
任务调度框架 ElasticJob 是基于 Quartz 开发的,看它的源码时,发现它封装的 LiteJob 类包含了两个成员变量,但是调试任务调度的过程中,这两个成员变量是有数据的。它们究竟是什么时候被赋值的呢?原创 2021-03-29 08:36:56 · 394 阅读 · 0 评论 -
云端大脑时代,我们还需要学习吗?
前两天用到 `firewall-cmd` 命令,都用过十几遍了,竟然还是没记住。可能大脑也知道这种知识存在云端,没必要记,所以总是偷懒,一到关键时候,就指挥双手去干活!原创 2021-03-28 07:46:55 · 202 阅读 · 0 评论 -
Azkaban 环境搭建及executor became inactive问题
技术调研三个任务调度框架 ElasticJob、XXL-Job,这周轮到 Azkaban 了。按照官方操作文档编译部署,最后启动一个任务还是很波折,不是 Preparing 就是 Killing ,还有一种 Failed 状态,就是没有 Success 。根源竟然是没有对 Executor 执行 active 请求,官方文档上是有一句激活执行器的请求,看文档的时候还纳闷,如果不执行会怎么样呢?其他的任务调度框架都是能自动感应任务执行器上下线的啊,一个大坑!原创 2021-03-23 20:21:39 · 1495 阅读 · 0 评论 -
MySQL 数据迁移到 TiDB 流程及为何放弃 MyCat!
TiDB 是一个分布式关系型数据库,可以无缝对接 MySQL。考虑到产品数据量大的情况下,单机 MySQL 可能无法支撑,而无缝切换到 TiDB 集群也比较方便,所以领导让我调研了一天迁移过程。本文将记录使用 `mydumper` 工具导出 MySQL 数据库数据,并使用 `TiDB Lightning` 将数据迁移到 TiDB 集群的流程。对比以前部署测试 MyCat 时的经历,发现 TiDB 迁移时不需要配置分库分表规则,迁移过程更方便,对得起“无缝”二字!原创 2021-03-03 06:06:03 · 1069 阅读 · 1 评论 -
编译了三个版本 Tomcat 源码后,我可能发现了一个 bug
本周对 Tomcat 的多应用部署时共享公共包的能力产生了怀疑,理论上,同一个 Tomcat 下部署多个应用时,可以将所有共享 jar 放在 `shared/lib` 目录下,然后配置 `shared.loader` 就可以了。实际实践的时候,多个 SpringBoot 导出的 war 部署在 Tomcat 下时,抽取了公共包后,启动时 `WEB-INF/lib` 下明明有对应的 Spring 框架包,还是报 `Caused by: java.lang.NoClassDefFoundError: or原创 2021-02-05 19:45:54 · 318 阅读 · 3 评论 -
@Log 注解的实例打印的日志去哪儿了?
@Log 注解的实例打印的日志去哪儿了?AOP 系统日志的 Aspect 类中使用了 @Log 注解,请求操作日志记录失败了,但是系统日志文件中却没有相关的异常信息,那么问题来了,日志到底去哪了呢?原创 2021-01-29 19:59:25 · 1371 阅读 · 0 评论 -
一亿数据的主键用 Varchar128 和 bigint 数据存储空间相差多大?
数据库设计过程中,选择合适的类型,可以极大提高磁盘空间的利用率。使用 TokuDB 数据库引擎的某张表的主键,由原来的 128 位的 `varchar` 类型,改为 `bigint` 类型后,相同数据规模下,发现数据库文件大小减少了一半。原创 2017-09-17 16:21:52 · 1006 阅读 · 0 评论 -
vncserver: Wrong type or access mode
背景最近配置 Cuckoo Sandbox 环境,在配置 Guest 端的时候,必须用图形界面工具连接到 Ubuntu 然后启动虚拟机,创建 Guest 实例。由于权限限制,只能用普通用户上传文件到虚拟机,所以就将 /root 目录的所属用户设置为普通用户了。这导致 vncserver 工具失效。权限问题vncserver: Wrong type or access mode of /root/.vnc.进入这个报错目录看了下权限,当前用户是一个普通用户,这就是症结了。重新还给 root 用户,原创 2020-12-31 18:05:46 · 2627 阅读 · 2 评论 -
Windows下操作 Elasticsearch 问题汇总
Elasticsearch 作为一款流行的文本检索数据库,2014 年的时候项目中用它实现过文本检索,后来就用的较少了。去年公司的一款产品中使用了 Elasticsearch ,由于我写了一段时间的前端,没关注过后台代码。近期需要了解下整个项目的后台,所以重新了解了一下 Elasticsearch 的用法,本文汇总操作过程中遇到的异常。原创 2020-12-19 09:32:08 · 2869 阅读 · 4 评论 -
ElasticSearch源码编译时如何选择Gradle版本?
导入 ElasticSearch 源码,下载了ElasticSearch6.3 和 6.8 的版本,三个版本的 gradle ,都没有编译成功。ElasticSearch 和 Gradle 之间的版本对应关系如何呢?我从 ElasticSearch 源码包中的说明文档中找到了答案。原创 2020-12-18 06:27:37 · 1209 阅读 · 0 评论