随笔分类 - Java
摘要:一、序言 在实际业务中,单表数据增长较快,很容易达到数据瓶颈,比如单表百万级别数据量。当数据量继续增长时,数据的查询性能即使有索引的帮助下也不尽如意,这时可以引入数据分库分表技术。 本文将基于SpringBoot+MybatisPlus+Sharding-JDBC+Mysql实现企业级分库分表。 1
阅读全文
摘要:一、序言 Caffeine是一个进程内部缓存框架,使用了Java 8最新的[StampedLock]乐观锁技术,极大提高缓存并发吞吐量,一个高性能的 Java 缓存库,被称为最快缓存。 二、缓存简介 (一)缓存对比 从横向对常用的缓存进行对比,有助于加深对缓存的理解,有助于提高技术选型的合理性。下面
阅读全文
摘要:一、序言 面向大数据量查询数据库,优点是在较大数据量(千万级)的前提下具有较好的查询性能。 1、应用场景 ClickHouse应用于OLAP(在线分析处理)领域,具体来说满足如下特点使用此技术比较合适: 事务型数据库表通过连表查询转换成宽表 聚合(统计)计算使用较多 对查询效率要求较高,有限时间范围
阅读全文
摘要:一、序言 空值异常是应用运行时常见的异常,传统方式为了编写健壮的应用,常常使用多层嵌套逻辑判断回避空指针异常。Java8新特性之Optional为此类问题提供了优雅的解决方式。 广大程序员朋友对空值异常刻骨铭心,因此Optional一经推出,广受赞誉。 二、问题复原 (一)素材准备 public c
阅读全文
摘要:一、序言 SpringBoot 2.6.x不推荐使用循环依赖,这是一个好消息,SpringBoot从底层逐渐引导开发者书写规范的代码,同时也是个忧伤的消息,循环依赖的应用场景实在是太广泛了。 如果从低版本升级到2.6.x,那么很大概率遇到的第一个问题便是循环依赖问题。 二、问题复原 1、代码说明 下
阅读全文
摘要:一、序言 UCode Cms管理系统是面向企业级应用软件开发的脚手架。当前版本1.3.4。快速体验: git clone https://gitee.com/decsa/demo-cms.git (一)项目特点 1、源码开源 源码开源并且使用MIT开源许可协议,个人或者企业用户免费放心使用,项目源码
阅读全文
摘要:一、序言 UCode Cms 是一款Maven版的Java源代码生成器,是快速构建项目的利器。代码生成器模块属于可拆卸模块,即按需引入。代码生成器生成SSM(Spring、SpringBoot、MybatisPlus)风格的源代码。 面试时经常提到面向对象编程,实际开发中常常是面向数据库编程,随着需
阅读全文
摘要:一、序言 本文承接[Mybatis缓存体系探究],提供基于MybatisPlus技术可用于生产环境下的二级缓存解决方案。 1、前置条件 掌握MyBatis二级缓存的原理 有关MyBatis缓存原理内容,参考[Mybatis缓存体系探究] 选择符合条件的MybatisPlus版本 本方案对Mybati
阅读全文
摘要:
一、序言 Java8 是一个里程碑式的版本,凭借如下新特性,让人对其赞不绝口。 Lambda 表达式给代码构建带来了全新的风格和能力; Steam API 丰富了集合操作,拓展了集合的能力; 新日期时间 API 千呼万唤始出来; 随着对 Java8 新特性理解的深入,会被 Lambda 表达式(包含
阅读全文

摘要:一、序言 (一)背景内容 软件应用技术架构中DAO层最常见的选型组件为MyBatis,熟悉MyBatis的朋友都清楚,曾几何时MyBatis是多么的风光,使用XML文件解决了复杂的数据库访问的难题。时至今日,曾经的屠龙者终成恶龙,以XML文件为基础的数据库访问技术变得臃肿、复杂,维护难度直线上升。
阅读全文
摘要:一、序言 Jenkins 是一款自动化构建工具,能够基于 Maven 构建后端 Java 项目,也能够基于 nodejs 构建前端 vue 项目,并且有可视化 web 界面。 所谓自动化构建是按照一定的策略执行打包脚本,相对于普通脚本构建,Jenkins 有如下优势: 构建队列中能够同时构建多个项目
阅读全文
摘要:一、序言 Redis高可用有两种模式:哨兵模式和集群模式,本文基于哨兵模式搭建一主两从三哨兵Redis高可用服务。 1、目标与收获 一主两从三哨兵Redis服务,基本能够满足中小型项目的高可用要求,使用Supervisor监控并管理Redis实例。通过本文将完成如下目标: 哨兵模式服务规划与搭建 哨
阅读全文
摘要:一、序言 使用Nginx作为web应用服务时,会代理如下常见文件:js、css、JSON、图片等,本文提供基于Nginx内置的压缩技术,提供网络请求响应速度的解决方案。 1、网络压缩原理 网络压缩的原理是消耗CPU资源,减少文件在公网传输的大小,提高响应速度。相比于CPU的计算资源,网络带宽通常较为
阅读全文
摘要:Supervisor是多进程管理工具,在Docker中相关联的进程能够通过supervisor来管理。微服务项目开发阶段,可用于微服务子项目的启动管理。支持web可视化管理,能够极大方面开发者对项目状态的监控和重启管理。
阅读全文
摘要:一、序言 Caffeine是一个进程内部缓存框架。 对比Guava Cache Caffeine是在Guava Cache的基础上做一层封装,性能有明显提高,二者同属于内存级本地缓存。使用Caffeine后无需使用Guava Cache,从并发的角度来讲,Caffeine明显优于Guava,原因是使
阅读全文