
Java架构专栏
文章平均质量分 70
主要讲解架构中相关核心技术点
在奋斗的大道
程序发烧友
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL 优化总结
不要以为 NULL 不需要空间,比如:char(100) 型,在字段建立时,空间就固定了, 不管是否插入值(NULL也包含在内),都是占用 100个字符的空间的,如果是varchar这样的变长字段, null 不占用空间。只有在没有其它的读取者的时候,才允许写入者开始操作。在MySQL中,执行 from 后的表关联查询是从左往右执行的(Oracle相反),第一张表会涉及到全表扫描,所以将小表放在前面,先扫小表,扫描快效率较高,在扫描后面的大表,或许只扫描大表的前100行就符合返回条件并return了。原创 2024-04-09 11:30:42 · 1329 阅读 · 0 评论 -
SpringBoot 事务失效及其对应解决办法
本文主要讲述Spring事务会去什么情况下失效及其解决办法Spring 通过AOP 进行事务控制,如果操作数据库报异常,则会进行回滚;如果没有报异常则会提交事务;但是,如果Spring 事务失效,会导致数据缺失/重复等异常问题。原创 2024-02-29 18:40:14 · 2337 阅读 · 5 评论 -
多数据源组件dynamic-datasource使用总结
dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。其支持。原创 2024-01-25 15:31:51 · 7390 阅读 · 0 评论 -
分布式锁Lock4J 使用总结
前提条件必须继承抽象类:com.baomidou.lock.executor.AbstractLockExecutorZooKeeper 版本执行器之ZookeeperLockExecutor////if (!} else {try {try {Redis 版本执行器之RedisTemplateLockExecutor////原创 2024-01-04 14:56:45 · 7188 阅读 · 0 评论 -
SpringBoot 2 集成Spark 3
前提条件:运行环境:Hadoop 3.* + Spark 3.* ,如果还未安装相关环境,请参考:Spark 初始CentOS 7 安装Hadoop 3 单机版配置application.properties无SpringBoot 2 集成Spark 3 遇到的问题问题一:java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset造成此类 问题原因:本地环境没有设置 HADOOP_HOME 和 h原创 2023-12-25 15:10:11 · 1451 阅读 · 1 评论 -
SpringBoot 3 集成Hive 3
造成此问题的原因是:spring boot 默认日志为logback, 而引用的hive-jdbc 及其关联jar 使用的日志为 log4j ,造成SLF4J 绑定冲突。我这边编写一个简单的Controller,打印Hive 默认数据库包含数据库名称。造成此类 问题的原因:hiveserver2 服务没有正常启动。解决办法:移除Hive JDBC 依赖的Jetty 容器。造成此类问题的原因:hadoop 没有配置权限导致。解决办法:移除冲突的日志:log4j。原创 2023-12-23 17:25:44 · 3064 阅读 · 3 评论 -
Xxl-job-admin 数据库使用DM8/达梦改造
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。XXL-JOB-ADMIN 是针对分布式定时任务管理的Web管理平台,默认使用的数据库是MySQL 8版本。 在项目中使用分布式定时任务调度框架:xxl-job, 并通过xxl-job-admin 管理平台控制定时任务的开启、执行周期设置等等相关操作。由于现场客户的数据库为国产化数据库:DM8/达梦,要求我们必须把xxl-job-admin 管理平台必须有MySQL 8 切换为DM 8/达梦 数据库,本原创 2023-12-19 01:15:53 · 2044 阅读 · 0 评论 -
Pandoc 一文读懂
Pandoc是使用Haskell语言编写的一款跨平台、自由开源及命令行界面的标记语言转换工具,可实现不同标记语言间的格式转换,堪称该领域中的“瑞士军刀”。原创 2023-12-12 14:01:09 · 4990 阅读 · 0 评论 -
Docker 安装Apache Superset 并实现汉化和快速入门
Apache Superset是一个现代化的企业级商业智能Web应用程序。Apache Superset 支持用户的各种数据类型可视化和数据分析,支持简单图饼图到复杂的地理空间图表。Apache Superset 是一个轻量级、简单化、直观化、可配置的BI 框架。原创 2023-12-09 22:54:32 · 9555 阅读 · 4 评论 -
MySQL 8 数据清洗总结
上述库表的关系:1:N = 项目 :案卷。原创 2023-08-31 09:20:28 · 1499 阅读 · 0 评论 -
Oracle 11g 数据库迁移国产化(TiDB\达梦) 总结。
功能需求描述:客户为响应国家信息安全的号召,决定将本局正在运行的系统,数据库由Oracle 11g 替换为TiDB\达梦。公司的项目主管让我负责本次的数据库的迁移改造,增对本地迁移更新 遇到的问题做以下二方面的总结:1、对比Oracle 与 TiDB\达梦(类MySQL) 函数之间的差异、2、对比Oracle和 TiDB\达梦(类MySQL) 函数缺失解决办法。3、DOS 命令查询需要调整的Mapper 文件。原创 2023-07-24 17:21:10 · 2666 阅读 · 0 评论 -
Hive 一文读懂
创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db。OK避免要创建的数据库已经存在错误,增加if not exists判断。(标准写法)OK创建一个数据库,指定数据库在HDFS上存放的位置OK。原创 2023-02-28 16:48:51 · 739 阅读 · 0 评论 -
HBase 一文读懂
HBase定义HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。HBase数据模型HBase的数据模型同关系型数据库(RDMS)很类似,数据存储在一张表中,有行有列。但从HBase的底层物理存储结构(K-V)来看,HBase更像是一个multi-dimensional map(多维度Map)。原创 2023-02-26 16:54:10 · 972 阅读 · 0 评论 -
Docker 查询、停止、删除和重启容器
知识拓展:停止docker 所有容器(包含正在运行)Docker进入指定容器,查看/修改相关配置文件。Docker 强制删除全部image(镜像)Docker 删除全部image(镜像)Docker 停止、启动、杀死、重启容器。Docker 删除images(镜像)Docker 删除所有不使用的镜像。docker 列出所有容器ID。docker 查看所有运行容器。docker 查看正在运行容器。Docker 停止所有容器。docker 停止指定的。docker 删除指定的。的镜像文件,必须先停止。原创 2023-02-24 10:56:39 · 2023 阅读 · 2 评论 -
Docker 安装 MySQL-8.0.23详解
温馨提示:如果安装MySQL容器过程中失败了,则可通过docker ps 查看以前的容器,假如已存在,则通过docker rm 镜像id 删除再重新安装即可。假设希望查看mysql启动时的日志,可以执行 docker container logs mysql 这个指令。假设mysql服务没有正常启动运行,但mysql容器是存在的,可以通过如下方式启动mysql。执行完第四个步骤(启动运行mysql镜像),mysql就会自动启动了,假如需要停止这个。修改用户zzg 的密码,并指定密码存储方式。原创 2023-02-22 13:58:33 · 1139 阅读 · 1 评论 -
canal 使用详解
译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费工作原理canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )canal 解析 binary log 对象(原始为 byte 流)EntryHeaderlogfileName [binlog文件名]原创 2023-02-09 14:55:53 · 9461 阅读 · 0 评论 -
Docker 安装RabbitMQ
3.查看容器日志使用docker logs -f 容器ID命令可以查看容器日志,我们执行docker logs -f 3ae命令查看rabbitMq在启动过程中日志,3ae是容器ID的简写——容器ID太长,使用时其写前几位即可。从日志可以看出,rabbitMq默认创建了guest用户,并且赋予administrator角色权限,同时服务监听5672端口TCP连接和15672端口的HTTP连接,至此说明安装成功。执行docker ps可以查看正在运行的容器,我们能看到rabbitMq已经运行。原创 2023-02-07 11:23:56 · 366 阅读 · 0 评论 -
Shell + Datax 动态传递时间参数模式
功能:实现当前日期:时:分:秒 减去执行周期时间(默认 :1小时 )至当前日期:时:分:秒 数据同步。功能:实现前一天日期 00:00:00 至前一天日期 23:59:59 数据同步。功能:实时动态传递数据同步开始时间和结束时间,实现数据同步功能。原创 2023-02-01 16:11:06 · 3250 阅读 · 0 评论 -
ModelMapper 一文读懂
ModelMapper是一个旨在简化对象映射框架,它根据约定处理对象之间的映射方式,为处理特定对象提供一个简单的、安全的、可重构安全API。原创 2023-01-16 16:48:18 · 7181 阅读 · 0 评论 -
Linux 查看日志总结
温馨展示:默认展示最后103、查看实时日志,最后20行记录4、查看实时日志,从第五行开始日志内容温馨提示:通过Ctrl + c 联合功能键,退出tail 指令。通过cat 指令实现语法:cat fileName | grep "关键字"2、查看错误日志,包含'Exception' 前10行记录3、查看错误日志,包含'Exception' 后10行记录日志行号查找通过head 指令实现语法:head -n 行号 fileName查看错误日志,查看全部日志去除最后10行日志记录编辑日志查找(vi/vim)操作步原创 2023-01-16 11:29:02 · 4373 阅读 · 0 评论 -
DataX 使用详解
DataX 是阿里云DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。原创 2022-12-17 14:40:36 · 6407 阅读 · 1 评论 -
Hibernate Validator 使用详解
定义自定义约束,有三个步骤创建约束注解实现一个验证器定义默认的错误信息实战:自定义手机号码校验器/*** 错误提示信息,可以写死,也可以填写国际化的key*/String message() default "手机号码不正确";Class原创 2022-12-12 16:21:36 · 8286 阅读 · 0 评论 -
Spring Boot 功能代码:基于注解+Spring AOP 记录业务数据修改前后记录。
功能需求:今天在禅道上收到产品经理的新提功能需求:要求保存业务记录数据的前后变更情况。核心功能点: 业务数据变更记录表、自定义注解、Spring AOP 。数据库设计: Java 核心功能代码设计自定义注解:RecordChangeSpring AOP代码:RecordChangeAspectj在业务服务实现类中添加RecordChange 注解,重点关注新增方法和修改方法在房屋业务服务实现类:HouseServiceImpl.java原创 2022-12-03 20:58:17 · 4257 阅读 · 1 评论 -
MySQL 百万级/千万级表 全量更新
第三种方案针对第二种方案对于寻找起始行位置通过索引进行了优化,批量更新的时间也有明细的提示,达到单台服务器每分钟处理5000条记录数据。实战:执行batch_update_middle_house 存储过程,base_house 全表4201183 记录数在1小时10分钟内全部清洗完毕。第一步:设计房屋清洗中间表:base_middle_house,设计两个字段(id 主键 自增长、house_id 房屋关联主键,唯一主键)功能说明: batch_update_house 房屋全量更新存储过程。原创 2022-11-10 20:30:06 · 11355 阅读 · 0 评论 -
狂神JUC笔记
JUC是 java util concurrentjava.util 是Java的一个工具包~原创 2022-11-01 19:45:15 · 607 阅读 · 0 评论 -
Xxl-job 一文读懂
数据备份订单未支付则自动取消定时爬取数据定时推送信息定时发布文章定时生成报表定时任务是指基于给定的时间点,间隔或者给定执行次数自动的执行程序。任务调度室系统的重要组成部分,而对于实时的系统,任务调度直接影响着系统的实时性。任务调度涉及多线程并发、运行时间规则定制与解析、线程池的维护等多项工作。application.properties 配置文件详解### web 服务端口及其项目名称### actuator 健康检查### resources 静态资源配置。原创 2022-10-24 01:29:28 · 6411 阅读 · 2 评论 -
MapStruct 一文读懂
MapStruct是基于JSR269规范的一个Java注解处理器,用于为Java Bean生成类型安全且高性能的映射。它基于编译阶段生成get/set代码,此实现过程中没有反射,不会造成额外的性能损失。= null?}}}}}温馨提示:可以使用多个类有时需要在某些映射方法之前或之后应用自定义逻辑。MapStruct提供了两种方法:装饰器允许对特定映射方法进行类型安全的自定义,而映射前和映射后生命周期方法则允许对具有给定源或目标类型的映射方法进行通用的自定义。原创 2022-10-21 15:25:01 · 4997 阅读 · 1 评论 -
Linux Shell脚本一文读懂
shell脚本是一个文件,里面存放的是特定格式的指令,系统可以使用脚本解析器翻译或解析指令并执行(无需编译)。shell脚本的本质是 shell命令的有序集合算符说明举例+加法`expr $a + $b` 结果为 30。-减法`expr $a - $b` 结果为 -10。*乘法`expr $a \* $b` 结果为 200。/除法`expr $b / $a` 结果为 2。%取余`expr $b % $a` 结果为 0。=赋值a=$b 把变量 b 的值赋给 a。原创 2022-10-19 01:07:16 · 1506 阅读 · 0 评论 -
Docker 安装MySQL5.7(简单版本)
docker 安装MySQL5.7原创 2022-08-12 13:54:34 · 1081 阅读 · 2 评论 -
Kafka 一文读懂
Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。原创 2022-08-10 18:12:52 · 708 阅读 · 0 评论 -
任务调度框架 Quartz 一文读懂
Quartz是开源组织在领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于。但是相较于Timer, Quartz增加了很多功能:持久性作业 - 就是保持调度定时的状态;作业管理 - 对调度作业进行有效的管理;...原创 2022-08-04 15:24:26 · 1202 阅读 · 0 评论 -
Docker 安装Minio
Docker 安装Minio原创 2022-08-04 11:29:01 · 1305 阅读 · 0 评论 -
FastDFS 一文读懂
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和**负载均衡**的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、在线扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。...原创 2022-08-03 14:53:45 · 887 阅读 · 0 评论 -
RabbitMQ 一文读懂
MQ全称为,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。RabbitMQ官方地址:应用场景1、任务异步处理。将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。2、应用程序解耦合MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。...原创 2022-08-03 09:26:12 · 1148 阅读 · 0 评论 -
Drools 规则引擎一文读懂
小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看。活动规则是根据用户购买订单的金额给用户送相应的积分,购买的越多送的积分越多,用户可以使用积分来兑换相应的商品,我们这次活动的力度很大,肯定会吸引很多的用户参加,产品经理小王兴高采烈唾液横飞的对小明讲到。小明心想,又tm来这套,这次需求又要变更多少次呢?100元以下,不加分100元-500元加100分500元-1000元加500分。...原创 2022-07-29 15:11:35 · 13376 阅读 · 1 评论 -
ElasticSearch 一文读懂
是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有HTTPWeb接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布。官方客户端在Java、.NET(C#)、PHP、Python、、Ruby和许多其他语言中都是可用的。[5]根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是,也是基于Lucene。...原创 2022-07-28 17:40:57 · 1760 阅读 · 0 评论 -
Apache ShardingSphere 一文读懂
关于 Apache ShardingSphereApache ShardingSphere 是一款开源分布式数据库生态项目,由 JDBC、Proxy 和 Sidecar(规划中) 3 款产品组成。其核心采用可插拔架构,通过组件扩展功能。对上以数据库协议及 SQL 方式提供诸多增强功能,包括数据分片、访问路由、数据安全等;对下原生支持 MySQL、PostgreSQL、SQL Server、Oracle 等多种数据存储引擎。Apache ShardingSphere 项目理念,是提供数据库增强计算服务平台,进原创 2022-06-21 12:17:43 · 2863 阅读 · 0 评论 -
Docker 搭建FastDFS文件系统
跟踪服务器,起到调度的作用3、使用docker镜像构建storage容器存储服务器,提供容量和备份服务TRACKER_SERVER=本机的ip地址:22122 本机ip地址不要使用127.0.0.1 说明1 x.x.x.x这里要说明一下:这个地址必须使用服务器的的,否则上传的时候连不上服务器。 说明2 这个不要随便修改,因为默认的nginx的配置中使用的是0到9的数字,如果想修改这个名字,得进入到storage容器中修改nginx的配置文件此时两个服务都以启动,进行原创 2022-06-19 13:01:13 · 1866 阅读 · 2 评论 -
Docker 搭建MySQL5.7 主从复制
首先新建日志存放文件夹: /usr/local/mysql-master/log数据存放文件夹:/usr/local/mysql-master/data配置存放文件夹:/usr/local/mysql-master/conf 进入/usr/local/mysql-master/conf目录下新建my.cnf(上面启动容器实例指定的路径) 文件内容如下:1.3 重启master实例修改完配置之后重启master实例 进入mysql-master容器并登录数据库,密码是容器启动的时候我们原创 2022-06-18 02:19:35 · 734 阅读 · 0 评论 -
Docker 一文读懂
Docker 中有非常重要的三个基本概念,理解了这三个概念,就理解了 Docker 的整个生命周期。Docker镜像常用命令 Docker创建容器可选参数Docker 容器限制参数 Docker基本指令 Docker 版本、系统信息(包含镜像和容器的数量信息)和帮助指令 MobaXterm 实际操作Docker 镜像命令 docker images 查看本地主机的所有镜像MobaXterm 实际操作 列表参数介绍:image指令可选参数:docker searc转载 2022-06-16 14:43:15 · 3439 阅读 · 0 评论