摘要: 我们使用 Java 开发项目时偶尔会需要使用到 Xml 文件的解析, 一般情况下都会使用 DOM4j、SAX、JDOM 等方案,但这些方案比较代码编写较为繁琐。我们经常使用的 Json 进行数据传输或存储,如果能够将 Xml 快速转换为 Json,将会大大减轻我们后续开发和维护的工作量。 本篇博客简 阅读全文
posted @ 2024-10-23 21:40 乔京飞 阅读(296) 评论(0) 推荐(0) 编辑
摘要: ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 OLAP 为联机分析处理,专注于统计查询;OLTP 为联机事务处理,专注于增删改。 ClickHous 阅读全文
posted @ 2024-09-22 20:27 乔京飞 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 使用 CompletableFuture 可以大大简化处理多线程之间的异步调用关系,如串行依赖、并行、聚合等等。 CompletableFuture 是对 Future 接口的扩展和增强,进行了丰富的接口方法扩展,完美的弥补了 Future 的不足。 本篇博客通过代码的方式,展示 Completab 阅读全文
posted @ 2024-08-18 19:22 乔京飞 阅读(320) 评论(0) 推荐(0) 编辑
摘要: NC 文件全称是 Network Common Data Format,也叫做 NetCDF 文件,即网络通用数据格式,这种文件格式一开始是专门用于气象学数据的存储,现在已经发展演变为很多数据采集软件的文件生成格式了。 由于最近项目中解析 NC 文件比较频繁,所以就进行一下简单的总结。本篇博客介绍如 阅读全文
posted @ 2024-07-30 11:08 乔京飞 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 国产化的趋势已经势不可挡,首先考虑的就是麒麟操作系统,分为桌面版本和服务器版本。 桌面版本的 Linux 命令使用体验跟 Ubuntu 基本一致。服务器版本的 Linux 命令使用体验跟 CentOS7 基本一致。 由于越来越多的项目,在开发时就要求在 Linux 系统下开发,各种开发工具安装都非常 阅读全文
posted @ 2024-07-20 17:38 乔京飞 阅读(3494) 评论(0) 推荐(0) 编辑
摘要: 之前的博客介绍过 zookeeper 的分布式锁,只不过是基于 Spring 的实现(技术太老了),现在肯定使用 SpringBoot 进行实现,因此有必要再写一篇博客。 有关 zookeeper 的部署,以及分布式锁细节,这里不再赘述,可以访问我之前编写的博客。 zookeeper 的单机和集群部 阅读全文
posted @ 2024-06-10 21:25 乔京飞 阅读(1989) 评论(0) 推荐(0) 编辑
摘要: 我之前编写了一些 zookeeper 的博客,当时是在 windows 系统上部署的单机版,在实际应用中绝大多数情况下都是部署在 Linux 系统上,因此很有必要介绍一下如何在 CentOS7 上快速部署 zookeeper 的单机版和集群版。 这里就不详细介绍 zookeeper 了,网上资料很多 阅读全文
posted @ 2024-06-02 21:12 乔京飞 阅读(3273) 评论(0) 推荐(0) 编辑
摘要: Spring Cloud 微服务之间的调用关系,通常随着业务的不断扩张而变得越来越复杂。如果调用链路上任何一个服务出现问题或者网络超时,导致通过日志快速排查和定位问题非常困难。分布式链路追踪就可以轻松解决该场景所面临的问题,其中一种比较简单的方案是采用 Spring Cloud Sleuth Spr 阅读全文
posted @ 2024-06-01 22:29 乔京飞 阅读(2633) 评论(0) 推荐(0) 编辑
摘要: 我们使用 spring cloud gateway 时,绝大部分情况下都是使用 application.yml 配置文件或者 nacos 、apollo 等配置中心存储路由信息,每当对路由进行增删改操作后,需要重启 gateway 服务才能生效。 在工作中也很可能会遇到这样的场景:用户想自己根据实际 阅读全文
posted @ 2024-05-23 17:59 乔京飞 阅读(3283) 评论(0) 推荐(0) 编辑
摘要: 分布式锁可以采用数据库、zookeeper、redis 三种方式实现。 采用数据库实现方式,主要采用表字段的唯一索引特性。数据库是非常昂贵的资源,非常不推荐,最致命就是性能,不要去增加不必要的负担。 采用 zookeeper 的实现方式,主要使用其为客户端创建临时有序节点的特性,在我之前的博客有介绍 阅读全文
posted @ 2024-05-11 19:39 乔京飞 阅读(3289) 评论(0) 推荐(0) 编辑
摘要: 本篇博客主要介绍如何通过 docker-compose 快速搭建 nexus 服务,毕竟目前采用容器化部署是一件更加快速轻松的方案。 之前的博客已经介绍过 nexus 的搭建,以及为 IDEA 和 Visual Studio 提供代理服务,这里就不详细介绍了,提供出之前博客的链接。 nexus 在 阅读全文
posted @ 2024-05-07 20:42 乔京飞 阅读(4046) 评论(0) 推荐(0) 编辑
摘要: 我们在使用 CentOS7 时,一般最好把数据都存放在额外挂载的磁盘上,优点就是防止系统磁盘爆满,以及防止数据丢失。 目前使用的 Linux 操作系统,也绝大部分与 CentOS7 的操作命令一样,包括一些国产 Linux 系统。 因此本篇博客以 CentOS7 为例,通过 vm 虚拟机,介绍如何通 阅读全文
posted @ 2024-04-30 22:01 乔京飞 阅读(7651) 评论(0) 推荐(0) 编辑
摘要: 目前应该很少有公司再使用 oracle 11g R2 版本了,官方在 2020-12-31 日后就停止支持和维护了,绝大多数公司应该都升级到 oracle 19c 版本了。 因此当前 oracle 数据库中使用最多的版本就是 oracle 19c 了,但是官方对其支持和维护的截止日期是 2026-3 阅读全文
posted @ 2024-04-29 22:04 乔京飞 阅读(5371) 评论(0) 推荐(0) 编辑
摘要: 规则引擎技术的主要思想是将应用程序中的业务规则分离出来,业务规则不再以程序代码的形式驻留在系统中,而是存储在独立的文件或者数据库中,完全独立于程序。业务人员可以像管理数据一样对业务规则进行管理。业务规则在程序运行时被加载到规则引擎中供应用系统调用。 drools 是当前比较流行的规则引擎技术,由 J 阅读全文
posted @ 2024-04-09 23:10 乔京飞 阅读(5147) 评论(0) 推荐(0) 编辑
摘要: J2Cache 是 OSChina 目前正在使用的两级缓存框架(要求至少 Java 8)。 第一级缓存使用内存,同时支持 Ehcache 2.x、Ehcache 3.x 和 Caffeine(推荐)。 第二级缓存使用 Redis(推荐)/Memcached 。 由于大量的缓存读取会导致 L2 的网络 阅读全文
posted @ 2024-03-23 22:08 乔京飞 阅读(6133) 评论(0) 推荐(0) 编辑
摘要: 之前的博客介绍了 IDEA 使用 docker-maven-plugin 发布镜像,当时没有使用 Dockerfile 文件,不够灵活。其实 docker-maven-plugin 也可以使用 Dockerfile 生成和发布镜像,本篇博客介绍另一个插件 dockerfile-maven-plugi 阅读全文
posted @ 2024-03-06 22:44 乔京飞 阅读(7006) 评论(0) 推荐(0) 编辑
摘要: Jenkins 是一款非常流行的开源持续集成工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。 有关 Jenkins 的详细介绍,可以查看官网:https://www.jenkins.io 本篇博客主要介绍如何通过 docker-compose 快速部署 Jenkins 工具,也让大家避免踩 阅读全文
posted @ 2024-03-03 20:55 乔京飞 阅读(9536) 评论(0) 推荐(0) 编辑
摘要: 之前已经发布过一篇使用 docker-compose 部署 Gitlab 的博客,使用的是国外的某位大佬制作的镜像。 博客地址为:https://www.cnblogs.com/studyjobs/p/18015154.html 本篇博客使用 docker-compose 采用官网提供的镜像部署 G 阅读全文
posted @ 2024-03-02 23:42 乔京飞 阅读(7131) 评论(0) 推荐(0) 编辑
摘要: 当使用 IDEA 开发完一个工程项目时,如果想要将 jar 包生成镜像,上传到服务器上,有两种方式: 手动方式:将 jar 包手动上传到服务器,手动编写 Dockerfile 文件,执行 docker build 命令生成镜像 自动方式:使用 IDEA 集成 Docker 的 Maven 插件,配置 阅读全文
posted @ 2024-02-17 10:19 乔京飞 阅读(9751) 评论(0) 推荐(0) 编辑
摘要: 对于一些安全性要求比较高的项目,服务器一般都是内网,无法联网。如果直接在物理机或虚拟机上部署项目,一方面比较麻烦,另外风险也比较高,如果出现了一些问题,最坏的情况就是重置操作系统,然后重新部署,耗时费力。还是采用 docker 部署会比较方便,我们可以在外部可以联网的机器上把项目部署好,然后把所有 阅读全文
posted @ 2024-02-16 10:22 乔京飞 阅读(9501) 评论(0) 推荐(0) 编辑