自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

皓亮君的博客

东隅已逝,桑榆非晚。

  • 博客(130)
  • 资源 (1)
  • 收藏
  • 关注

原创 【SpringBoot框架篇】37.使用gRPC实现远程服务调用

RPC(Remote Procedure Call)是一种用于实现分布式系统中不同节点之间通信的协议。它允许一个节点(称为客户端)调用另一个节点(称为服务器)上的远程方法,就像调用本地方法一样。RPC的目标是隐藏底层通信细节,使得远程调用过程对开发者透明。在RPC中,客户端通过发送请求消息给服务器来调用远程方法,服务器接收到请求后执行相应的方法,并将结果返回给客户端。RPC可以跨越不同的网络和操作系统,使得分布式系统中的不同节点能够进行高效的通信和协作。

2024-03-21 20:32:29 951

原创 【SpringBoot框架篇】36.整合Tess4J搭建提供图片文字识别的Web服务

rpc简介RPC(Remote Procedure Call)是一种用于实现分布式系统中不同节点之间通信的协议。它允许一个节点(称为客户端)调用另一个节点(称为服务器)上的远程方法,就像调用本地方法一样。RPC的目标是隐藏底层通信细节,使得远程调用过程对开发者透明。在RPC中,客户端通过发送请求消息给服务器来调用远程方法,服务器接收到请求后执行相应的方法,并将结果返回给客户端。RPC可以跨越不同的网络和操作系统,使得分布式系统中的不同节点能够进行高效的通信和协作。

2024-03-10 23:33:55 1047

原创 【SpringBoot框架篇】35.kafka环境搭建和收发消息

搭建kafka环境,在springboot中使用kafka创建主题、生产消息和消费消息

2024-01-16 23:30:21 1138

原创 Springboot通过profiles切换不同环境使用的配置

一个项目从开发到上线一般要经过几个环境, dev测试环境-uat预生产环境-prod生产环境,每个环境的使用的数据库或者配置不同,这时候可以通过下面两种方式区分配置,达到快速切换的效果。

2024-01-03 23:32:37 628

原创 【SpringBoot框架篇】34.使用Spring Retry完成任务的重试

Spring Retry是从Spring Batch独立出来的一个功能,已经广泛应用于Spring Batch,Spring Integration, Spring for Apache Hadoop等Spring项目。从上面代码可以看出写一个任务重试的工具不难,感兴趣的同学可以通过AOP自己重试功能,Spring官方的Retry模块就是通过Aop+注解的方式这个功能,我就不造轮子写一遍了。可以看到测试得到的结果和注解的方式是一样的,都只执行了三次任务。在需要任务重试的函数上面添加注解。

2024-01-03 22:10:28 1220

原创 python使用watchdog监听文件变化并打包成docker镜像

最近用python帮公司写了一个监控目录下文件发生变化然后对文件进行格式处理的插件,在打包成docker镜像的过程中出现了一些小问题,特意记录一下方便以后避坑。

2023-12-29 21:00:00 473

原创 【SpringBoot框架篇】33.优雅集成i18n实现国际化信息返回

由于公司业务需求,需要支持中英两个版本的返回提示信息,使用spring的类获取对应语种的i18n文件的提示信息。i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。在资讯领域,国际化(i18n)指让产品(无需做大的改变就能够适应不同的语言和地区的需要。对程序来说,在不修改内部代码的情况下,能根据不同语言及地区显示相应的界面。在全球化的时代,国际化尤为重要,因为产品的潜在用户可能来自世界的各个角落。

2023-08-09 18:38:44 3149 1

原创 【数据结构与算法】3.(单向、无向、带权)图,广度、深度优先搜索,贪心算法

单向图、无向图、带权图、广度优先搜索、深度优先搜索、贪心算法

2023-02-22 15:09:59 3194 1

原创 【数据结构与算法】2.八大经典排序

基于Java语言实现的八大经典排序

2023-02-20 19:02:02 604

原创 【数据结构与算法】1.树、二叉树、字典树、红黑树

本章主要讲解一些树的基本概念,二叉树的三种打印方式,二叉查找树和字典树的应用,红黑树的概念。二叉查找树是二叉树中最常用的一种类型,也叫二叉搜索树。顾名思义,二叉查找树是为了实现快速查找而生的。不过,它不仅仅支持快速查找一个数据,还支持快速插入、删除一个数据。它是怎么做到这些的呢?这些都依赖于二叉查找树的特殊结构。二叉查找树特性要求,在树中的任意一个节点,其左子树中的每个节点的值,都要小于这个节点的值,而右子树节点的值都大于这个节点的值。二分查找算法就是通过这种特性在有序的数组实现快速查找某个数字。

2023-02-17 19:03:05 3461

原创 【SpringBoot框架篇】32.基于注解+redis实现表单防重复提交

在一些表单提交操作的时候会存在用户多次点击button触发提交事件的场景(针对异步请求场景)。1.声明一个loading变量,当触发submit事件的时候判断loading的值是否为true,为true则不进行操作2.如果判断的loading值为false,则发送请求提交数据到后台保存。3.当ajax异步处理成功的时候,把loading改为false(类似于释放锁);return;}}});}众所周知,数据验证和表单防重复提交等逻辑在前端可以做判断,但是后台还是会再请求做一次校验。

2022-12-22 23:30:00 1231 6

原创 基于注解方式实现Spring Security忽略拦截

一般像一些静态资源文件需要过滤掉安全认证,例如图片,.css,.js等静态资源文件,像这种在配置文件中指定比较方便。: String url=baseUrl+接口访问路径(/login) =/test/login。像这种需要忽略某个接口需要在Spring Security配置类中在代码中写死,非常的不灵活。测试用注解修饰的接口路径,可以正常访问,由此可看配置是正常。如果从配置文件中删除了过滤的接口名称则访问接口会返回403。忽略的接口访问路径规则以下文3.3的测试接口为例,添加配置类注入配置的参数。

2022-12-22 22:45:00 4201

原创 【Hadoop生态圈】10.使用Sqoop迁移MySQL数据到HDFS中

Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。要使用Sqoop需要JDK并且机器能正常操作Hadoop集群,因为Sqoop底层会将命令换为MapReduce代码,然后将其提交到Hadoop集群中去执行。

2022-10-29 18:02:14 3099

原创 【Hadoop生态圈】9.使用Maxwell实时采集MySQL数据到Kafka中

Maxwell是一款能实时读取MySql增量日志(Binary Log)并生成JSON格式数据后作为生产者将数据发送个Kafka、Kinesis、RabbitMQ、Redis等中间件的工具。支持以"SELECT * FROM Table"的方式实现全量表数据初始化。支持在主库发生故障后自动恢复增量日志(Binary Log)的位置(GTID);支持对数据进行分区,可以解决数据倾斜问题,发送到Kafka的数据支持Database、Table、Column等级别的数据分区。架构分析。

2022-10-23 21:32:30 1324

原创 【Hadoop生态圈】8.Flink实时计算引擎入门教程

流式计算: Fink可以连接处理流式(实时)数据。容错: Fink提供了有状态的计算,会记录任务的中间状态,当执行失败时可以实现故障恢复。可伸缩: Fink集群可以支持上千个节点。高性能: Fink能提供高吞吐,低延迟的性能。: 可以处理秒级别延迟的实时数据计算,但是无法处理真正的实时数据计算,适合小型且独立的实时项目。Storm: 可以处理真正的实时计算需求,但是它过于独立没有自己的生态圈,适合能够接受秒级别延迟不需要Hadoop生态圈的实时项目。Fink。

2022-10-13 20:36:08 2112 1

原创 JVM基础和常见面试题

JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java是一门抽象程度特别高的语言,提供了自动内存管理等一系列的特性。这些特性直接在操作系统上实现是不太可能的,所以就需要JVM进行一番转换。从下图中可以看到,有了JVM这个抽象层之后,Java就可以实现跨平台了。JVM只需要保证能够正确执行.class文件,就可以运行在诸如Linux、Windows、MacOS等平台上了。

2022-09-29 12:52:31 2302

原创 【Hadoop生态圈】7.离线OLAP引擎Hive入门教程

Hive是由Facebook开源的一款数据分析工具,主要用来进行数据提取,转换和加载(ETL)。Hive数据存储是基于Hadoop中的HDFS,它没有自己的存储系统,也没有专门的数据存储格式,它最大的魅力在于用户只需要专注于编写SQL,Hive帮用户把SQL转换为MapReduce程序完成对数据的分析。Hive自动将用户编写的SQL转换为MapReduce程序,处理位于HDFS上的结构化数据。Hive软件本身承担的是HQL语法解析编译称为MapReduce的功能职责。Hive优点:简易性。

2022-09-27 09:00:00 732

原创 【Hadoop生态圈】6.MapReduce离线计算引擎入门教程

Mapreduce 是hadoop项目中的分布式运算程序的编程框架,是用户开发"基于hadoop的数据分析应用"的核心框架,Mapreduce 程序本质上是并行运行的。分布式程序运行在大规模计算机集群上,可以并行执行大规模数据处理任务,从而获得巨大的计算能力。谷歌公司最先提出了分布式并行编程模型MapReduce,Hadoop MapReduce是它的开源实现。

2022-09-24 08:00:00 732

原创 【Hadoop生态圈】5.HBase列存储数据库入门教程及集群环境搭建

HBase的全称是Hadoop Database,它是一个高可靠,高性能,面向列,可伸缩的NoSQl分布式存数据库.1.海量存储Hbase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正式因为Hbase良好的扩展性,才为海量数据的存储提供了便利。2.面向列这里的列式存储其实说的是列族(ColumnFamily)存储,Hbase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定。

2022-09-23 00:37:02 1003

原创 【Hadoop生态圈】4.Kafka入门教程及集群环境搭建

Kafka入门及集群环境搭建

2022-09-21 22:54:17 714

原创 【Hadoop生态圈】3.Zookeeper入门教程及集群环境搭建

Zookeeper入门及集群环境搭建

2022-09-21 18:19:48 799

原创 【Hadoop生态圈】1.Hadoop入门教程及集群环境搭建

Hadoop集群环境搭建

2022-09-21 15:45:51 1233

原创 【Hadoop生态圈】2.使用Flume采集日志数据到HDFS中

使用Flume采集日志数据到HDFS中

2022-09-21 00:18:30 7090 1

原创 使用docker安装FastDFS

使用docker安装FastDFS

2022-09-19 14:59:41 721

原创 【SpringBoot框架篇】31.基于分布式锁或xxx-job实现分布式任务调度

定时任务使用场景一般为指定时间做数据统计,临时数据清理等等。在SpringBoot启动类上面添加@注解开启spring定时任务功能在定时任务方法上添加@Scheduled实现log . info(" -- -- -- -- -- -- - 凌晨 1 点统计前一天的业务数据量 -- -- -- -- -- -- -- } }以上的配置如果是在服务需要部署多个节点的时候会出现重复执行定时任务导出数据重复的问题,这个时候可以通过分布式锁或使用xxx-job分布式任务调度平台避免这个任务重复执行的问题。

2022-09-16 20:51:48 5512

原创 使用ELK8.4.1环境+Filebeat收集nginx日志

使用ELK8.4.1环境+Filebeat收集日志

2022-09-08 22:36:14 1943 3

原创 【SpringBoot框架篇】30.使用sharding-jdbc实现读写分离和分库分表

ShardingSphere-JDBC 提供了 4 种配置方式,用于不同的使用场景。 通过配置,应用开发者可以灵活的使用数据分片、读写分离、数据加密、影子库等功能,并且能够叠加使用。

2022-09-07 01:12:33 1137

原创 【SpringBoot框架篇】29.Jpa+vue实现单模型的低代码平台

单模型的低代码平台

2022-08-30 13:17:10 4474

原创 【SpringBoot框架篇】28.使用JdbcTemplate操作数据库

使用JdbcTemplate操作数据库

2022-08-29 20:49:41 1457

原创 【SpringBoot框架篇】27.集成mail实现邮件推送带网页样式的消息

文章目录1.引入依赖2.邮箱信息配置类3.发送邮件的工具类4.main函数测试发送邮件5.集成js插件ueditor编写带样式的邮件正文5.1.页面集成插件5.2.编写后台接口接收数据并发送邮件6.项目配套代码1.引入依赖 <!--发送邮件需要的依赖--> <dependency> <groupId>org.springframework.boot</groupId> <a

2022-05-28 13:42:05 1359 5

原创 linux常用命令及运维工具汇总

文章目录1.基础命令1.1.常规命令1.2.重定向符号,管道符号,通配符号1.3.vim文本编辑器1.4.定时任务2.查询服务器硬件信息3.systemctl服务管理命令4.资源监控命令4.1.查看系统的负载信息4.2.查看内存硬盘使用情况4.3.查看显存使用情况4.4.查看服务器上传和下载带宽5.查看系统日志6.shell命令脚本入门6.1.编写脚本6.2.流程控制和for循环6.3.文件权限判断和运算符7.用户管理和文件权限7.1.用户管理7.2.文件权限8.存储结构和磁盘划分9.其它工具命令9.1.设

2022-05-15 21:35:17 2098 1

原创 【SpringBoot框架篇】26.集成spring-boot-starter-validation对接口参数校验

文章目录1.常规验证2.使用validation验证2.1.添加依赖2.2.常用注解2.3.在pojo类中添加需要使用的注解2.4.在接口入参处添加@Valid2.5.添加全局异常处理类返回校验错位提示信息1.常规验证以下面的登录接口为例,需要手动去验证参数是否存在,这种写法繁琐且不太优雅。@RestControllerpublic class LoginController { @RequestMapping("/login") public String test(@Reque

2022-05-15 16:06:07 1591

原创 利用Jdk反射机制和适配器模式让Spring Data Jpa兼容各种数据库

文章目录简介1.依赖及配置文件2.Java源代码层2.1.自定义字段类型注解2.2.添加适配器2.2.1.添加适配sql函数的类2.2.1.1.定义适配器抽象类2.2.1.2.数据库适配器实现类2.3.添加测试用得模型类2.4.配置需要通过反射修改字段类型类文件路径2.5.通过反射修改字段对应的数据库字段类型 (核心代码)2.6.在数据库连接源加载之前调用2.5的工具类3.测试3.1.测试数据库字段适配3.2.测试数据库函数适配4.项目配套代码下载简介因项目需求需要在应用编译发布后不改源代码的方式下支持

2022-05-08 18:35:09 1664

原创 Java中线程池参数描述

文章目录1.ThreadPoolExecutor描述2.四种线程池的使用2.1.newSingleThreadExecutor2.2.newCachedThreadPool2.3.NewScheduledThreadPool2.4.newFixedThreadPool1.ThreadPoolExecutor描述ThreadPoolExecutor是一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。ThreadPoolExe

2022-04-13 22:15:20 426

原创 Java中的阻塞队列BlockingQueue

文章目录1.BlockingQueue 简介2.ArrayBlockingQueue(有界队列)3.LinkedBlockingQueue(双锁线程安全队列)4.PriorityBlockingQueue(优先级队列)1.BlockingQueue 简介BlockingQuene是一个阻塞队列接口,当BlockingQueue操作无法立即响应时,有四种处理方式:抛出异常;返回特定的值,根据操作不同,可能是null或者false中的一个;无限制的阻塞当前线程,直到操作可以成功为止;根据阻塞超时设

2022-04-13 20:09:20 1558

原创 Spring Data Jpa 配置多数据源

文章目录1.配置数据库连接信息2.编写数据源配置类3.编写数据库配置4.目录结构1.配置数据库连接信息spring: datasource: db1: # 1.0 Datasource url: jdbc:mysql://127.0.0.1:3306/test1?useSSL=false&serverTimezone=GMT%2b8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=

2022-03-26 09:28:43 1608

原创 解决Spring Data Jpa懒加载的N+1问题

[top]问题描述因为设计树形结构的实体中用到了多对一,一对多的映射关系,在加载这个实体对象的时候,因为JPA的懒加载特效会导致触发N+1的问题,通常1的这方是通过1条SQL查找得到的1个对象或1个集合,由于关联的存在 ,又需要将这个对象(或集合)关联的集合取出,1这方的集合数量是N,则要发出N条SQL,于是本来的1条联表查询SQL可解决的问题变成了N+1条SQL。例如以下场景,后台管理系统菜单往往都是树结构的,一般会存在多个菜单和子菜单,如下:1.实体类@Data@Entity@Table(

2022-03-26 09:25:17 2800 2

原创 Spring Data Jpa配置国产的神通数据库

[top]神通数据库当前教程使用的官方上面的window x86 7.0的版本官方下载地址: http://www.shentongdata.com/index.php/download/list-27window上安装教程需要用到的jdbc包和hibernate包在maven的中央仓库中没有这2个包,需要重数据库安装目录下的jdbc和hibernate目录找到对应包后上传至maven私服中。 <!--国产化神通数据库 --> <depend

2022-03-20 20:39:05 3298 8

原创 使用aspose.word for Java在word中插入文本和表格支持合并单元格

文章目录引入依赖生成表格用到的模型类aspose.word功能工具类测试引入依赖 <repositories> <repository> <id>AsposeJavaAPI</id> <name>Aspose Java API</name> <url>https://repository.aspose.com/repo/<

2022-03-20 19:47:14 2207

原创 定时备份docker安装的mysql数据库数据

文章目录简介备份脚本编写测试编写定时任务简介因不抗拒因素导致数据库损坏的情况下应用会出现宕机,如果没有备份则需要把数据库恢复成初始化应用数据,而业务数据则会导致丢失的情况,这个时候如果数据库有备份的情况,则可以还原到最新的备份数据,本文此书采用的是每天全量备份。备份脚本编写脚本命名为mysql_backup.sh脚本中需要的修改的配置项如下三项1.BCK_DIR 存放备份文件的目录2.-p123456 把密码修改成你数据库的密码3.-p ‘123456’ 把密码修改成你数据库的密码mk

2022-01-18 08:44:31 2023 4

把jar文件打包成可执行的.exe文件

在没有jdk环境的电脑上运行java项目,将jar程序封装成window课执行的exe文件。 具体使用参考我写的博:https://blog.csdn.net/ming19951224/article/details/81157247

2024-03-18

xjar-agent-hibernate-v1.0.0.jar

使用xjar工具对springboot jar文件加密,如果使用了 JPA 且实现为Hibernate时,需要依赖这个包

2019-10-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除