自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 资源 (3)
  • 收藏
  • 关注

原创 kafka数据拉取和发送

如果需要处理多个Kafka集群,或者有更复杂的配置需求,可以创建一个配置类,使用@Bean方法定义多个ConsumerFactory和ConcurrentKafkaListenerContainerFactory实例。// ================= 集群1配置 =================@Bean//批量消费每次最多消费多少条消息记录// 1个消费线程//当消费者线程在60秒内没有接收到新消息时,触发空闲事件。

2025-02-25 20:40:03 1302

原创 java对hdfs文件的拉取和上传操作

以下示例都需要先获取到FileSystem对象fs。可以使用get 或 newInstance方法。如上代码在后续示例中不再重复展示。

2025-02-25 14:43:31 491

原创 java多线程及线程池

多线程是指在一个程序中同时运行多个线程,每个线程都是独立的执行流程,可以在同一时间内执行不同的任务,从而提高程序的并发性和效率。1、等待与睡眠Thread.sleep(long millis):使当前线程进入睡眠状态,直到指定时间过去或被中断。Object.wait():使当前线程等待,直到其他线程调用 notify() 或 notifyAll()。Thread.join():等待指定线程完成执行。2、I/O 操作。

2025-02-19 16:00:49 851

原创 Java接收xml格式参数转为json

如果我不去规定@JsonProperty和@XmlElement,直接把字段定义成大写的ABC_AA和AAA,也可以接收到xml参数,但是不符合Java命名规范,而且会发现AAA默认转出来的json字段叫做aaa,而ABC_AA转出来则是abc_AA.所以我们还是加上注释会更优雅一些。上述转为json后字段名使用的还是name,如果需要保持字段名为"username",只需要加上@JsonProperty。这样看注解有时候还挺多此一举的,直接User类中的字段用username就可以不需要注解;

2024-11-08 16:29:45 1531

原创 Chrome插件elasticsearch-head的安装和使用

如果是从Chrome商店下载的,则用chrome://version/查看个人资料路径,进入该路径的Extensions目录,再找到和该拓展程序显示的相同的id就是这个拓展程序的解压包路径了。将对应id下的第一个子目录拷到自己的电脑中,再在自己的Chrome中选择加载已解压的拓展程序即可。如果本身就是用解压包导入的就更容易了,进入扩展页面找到插件,点击上面的详细信息,可以找到加载来源,直接复制加载来源的整个目录再在自己的电脑上选择并加载即可。

2024-07-04 15:10:34 2666

原创 在Spring Data JPA中使用@Query注解

在以往写过几篇spring data jpa相关的文章,分别是Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询(分页查询和非分页查询)Spring Data JPA实现分页多条件查询2都是通过代码而不是sql来完成查询的,但是在做复杂情况的查询时,难免会用到@Query写sql语句。

2024-06-28 18:35:06 1181

原创 使用fabric8操作k8s

比如这里的gpu用的是nvidia.kubernetes.io/gpu,如果是其他厂商的或者映射出来的不一致,则要和环境中保持一致。且需要对接多个k8s集群时,需要多个KubernetesClient,因此最好是在缓存中维护一个集群编码和client的对应关系。config文件在管理节点的/root/.kube/目录下面,在页面上传后,我们后端拿到的比如说是一个fileUploadReqBO下的byte[] file;这里需要用到的参数和deployment的差不多,就不赘述了。就可以获取到token了。

2024-06-28 11:59:34 1565

原创 k8s及常用对象简介

Pod 所建模的是特定于应用的“逻辑主机”,其中包含一个或多个应用容器, 这些容器是相对紧密的耦合在一起的。在非云环境中,在相同的物理机或虚拟机上运行的应用类似于 在同一逻辑主机上运行的云应用。ReplicaSet可以看作是Deployment控制器的底层组件,专注于维护Pod的副本数量,确保集群中的Pod实例始终符合用户定义的期望状态。假设现在有三个pod 分别为:web-0、web-1、web-2,如果删除web-1,sts会重新调度生成一个新的web-1,之前的pod保持不变。

2024-06-26 16:43:14 1432 1

原创 使用SpringMVC完成简单的认证接口

简单处理为识别调用方的IP,通过IP标识是否认证成功

2023-03-15 20:34:39 325

原创 shell脚本字符串处理

shell脚本中字符串的分割、截取和拼接。

2023-02-03 14:35:13 1228

原创 shell脚本读取文件的内容至数组中,数组的交并补集,文件合并与去重

数组的使用,文件的合并与去重。

2023-02-01 16:16:46 4563

原创 linux定时器crond使用方式简介

一般来说在/etc目录下,有5个以cron开头的目录,分别是/etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly,/etc/cron.monthly,/etc/cron.d。其中前四个目录下的脚本文件就是按周期调用,比如说cron.hourly下的脚本文件就是每小时调用一次,cron.daily下的脚本文件就是每天调用一次。cron.d是用于非前四种情况,自定义调用规律的情况。

2023-01-31 19:13:46 2013

原创 InputStream转byte[]

InputStream转byte[]其实直接使用IOUtils就可以了,但是需要注意的是,将InputStream粗暴地转成byte[],只适用于文件较小的时候,当如果文件有好几个G,再这样转,内存就要溢出了。

2022-12-30 20:09:24 22493

原创 postgresql把日期作为表名的一部分动态建立分区表

上一篇写了如何建立分区表,但是显然,如果想要真正使用分区表,肯定不可能手动一个个新建,比如按每天建表,得想办法让它每天自动新建下一天的表,那么表名的命名必然要以日期为后缀。也需要想办法自动当日零点和第二日零点的时间戳,来用于表的分区。明白了怎样去获取时间之后,我想了各种办法,直接用sql建表,都失败了。

2022-12-13 21:58:41 1999

原创 postgresql内置分区表(声明式划分)

PostgreSQL 10.x 开始提供了内置分区表(内置是相对于 10.x 之前的手动方式)。内置分区简化了操作,将部分操作内置,最终简单三步就能够创建分区表。

2022-12-08 21:43:14 2423

原创 Java堆内存溢出问题分析和解决

MAT分析Java heap space OutOfMemory问题

2022-11-14 21:12:44 4549

原创 服务器抓包-tcpdump使用简介

tcpdump是Linux里的字符界面的数据抓包分析软件,用tcpdump抓到的数据包可以使用绝大多主流分析软件进行分析,例如wireshark。

2022-10-14 17:21:49 3982

原创 postgre sql常用语法

删除表格DROP TABLE table_name;新增字段ALTER TABLE IF EXISTS table_name ADD COLUMN column_name datatype;datatype可以为比如 varchar(255),int4,text这些。需要新增多列时:ALTER TABLE IF EXISTS table_name ADD COLUMN column_name1 datatype1,ADD COLUMNcolumn_name2 datatype2;为了..

2022-03-17 14:56:10 1928 1

原创 registry 删除私有仓库镜像

文章目录一、查询镜像digest值二、根据digest进行删除操作1.命令行调用删除接口2.可能出现的问题,删除时返回UNSUPPORTED解决方式1解决方式2三、使用registry gc清除blobs一、查询镜像digest值命令如下,注意请求头需要加入"Accept: application/vnd.docker.distribution.manifest.v2+json",不然会返回错误的digest。curl --header "Accept:application/vnd.docker.d

2021-12-28 16:40:10 4722 1

原创 使用shell脚本删除rabbitMq的exchange

在Java里面,exchange和queue往往是根据注解自动生成的,非常方便,但是当版本升级改变了exchange类型(例如从direct改为fanout)的时候,就会发现组件启动不了了… 这是因为同名exchange在上一版本组件卸载时并不会被删除,名称冲突导致无法创建,而且很遗憾它也不能自动更新。所以我的解决方法是在组件的安装脚本里面,通过http api的方式去删除可能重复的exchange和queue编写一个删除exchange的脚本# 删除exchange的方法,有几个exchange调用

2021-12-17 15:34:54 1681

原创 docker私有仓库搭建(registry)

文章目录一、pull registry镜像二、启动registry容器三、配置参数(两种方式二选一)方式一方式二四、重启docker服务五、尝试推送镜像六、Docker Registry WebUI 工具一、pull registry镜像docker pull registry二、启动registry容器docker run -d -p 5000:5000 --name docker-registry --restart=always registrydocker run命令:创建一个新的容器

2021-12-15 16:38:20 2194

原创 IDEA添加驱动连接自定义数据库

IDEA本身是可以连数据库的,如果是主流数据库的话,直接点击上图的Data Source项选择对应的数据库并输入对应的数据库、用户名密码等信息即可。当然大多数数据库也可以用dbeaver等数据库连接工具去连,没必要用idea。但是如果是自定义数据库,今天在工作中遇到一个基于postgresql改的数据库,有自己的驱动和方言,这个时候用dbeaver就无法连上,但是IDEA是支持选择驱动连接自定义数据库的。如上图选择Driver and Data Source,进入如下页面这里的name随便取个自己.

2021-10-13 20:00:00 5132

原创 Java中long的表达式问题

今天在代码里发现了有个抛错,是由下面这段分片上传时定位的代码捕获的。第一想法是是不是由于包太大(6.4G)导致long的offset超限。虽然long好像没有这么短…然后查了下long的最大值Long.MAX_VALUE=2的63次方-1,而这里只是并没有超出这个值,只是超出了int的最大值Integer.MAX_VALUE= 2的31次方-1,就觉得很奇怪,所以写了个Test试了下RandomAccessFile accessTmpFile = null;try { accessTmpFile

2021-09-08 11:07:41 840

原创 生产者消费者模式——BlockingQueue

1、BlockingQueueBlockingQueue就是阻塞队列,向其插入数据时,如果队列已满,线程将会阻塞等待直到队列非满;取出数据时,如果队列已空,线程将会阻塞等待直到队列非空。接口2、生产者消费者模式...

2021-08-16 14:55:15 1121

原创 Spring Boot 异步处理 @Async

1、异步和同步之前写了一个镜像上传的功能,先是分片上传,上传完毕后还要使用docker命令将镜像加载到本地,给镜像打标签并自动推送。在这个过程中如果使用同步,那么方法的返回会很慢很慢,要等这些步骤都执行完才能进行返回。如果做异步处理,就可以在上传完毕后先行返回结果,用户不用进行等待,后续步骤都在后台进行。2、Spring Boot异步处理①在启动类中使用注解@EnableAsync,启用异步处理②在需要异步处理的方法上使用注解@Async十分方便。但是注意这里的异步方法在本类调用是无效的,所以异

2021-08-14 15:23:03 1141

原创 Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询2 in的用法(含于)

之前写过一篇Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询(分页查询和非分页查询),但是筛选条件都是单一的,并不存在包含关系,例如我传ID[1,2,3],希望找到ID是这里面其中一个的所有记录。这时候就需要使用in。示例场景:根据项目名称查询人员,但是人员表中只有一个项目ID,也即,首先需要通过项目名称模糊查询到对应的项目ID列表,再通过这个ID列表去筛选人员。代码:筛选条件方法,使用in:private Specification<User

2021-06-02 20:12:37 2302

原创 记一个内存泄漏问题:Query Plan Cache BoundedConcurrentHashMap占用堆内存

原因是hibernate会缓存sql语句以减少重复编译,便于直接命中提高效率。这个缓存默认最大值为2G,且在使用in时,只要in后面的参数有任何一个不一样的,就会视为不同的语句而保存下来。解决这个问题可以将缓存最大值改小。我看大家都是这样写的:spring: jpa: properties: hibernate: query: plan_cache_max_size: 64 plan_parameter_metadata_

2021-05-18 11:20:52 4057 3

原创 docker 上传镜像

这里以tomcat镜像为例1、把镜像放到k8s主节点任意文件夹下这边我直接用xftp传的,直接放到了/tmp下2、使用docker load –i命令,将镜像加载到本地仓库docker load -i /tmp/tomcat.tar3、加载完毕后用docker images命令查看本地镜像信息docker images4、使用docker tag命令,标记本地镜像,注意标记规则为镜像仓库IP:端口号/项目名称/镜像名docker images能看到加载完毕的镜像名(这里为centos7_to

2021-05-08 17:25:55 5313

原创 linux命令 su和sudo的区别

sudo用于暂时获取超级权限执行命令,例如:sudo chmod -R 777 /xxxsu用于切换用户从root用户切换到普通用户无需密码 直接su username即可但是从普通用户切换到root用户需要输入密码 且需要输入root的密码当然我们也可以用 sudo su root 这样的话就可以只输入普通用户的密码切到root用户了...

2021-05-08 16:53:40 279

原创 Java8新特性 Stream简介 stream().filter和stream().map区别

需要使用Stream,首先要使用.stream()或.parallelStream()将集合生成流,其中最常用的是它的filter和map方法,简单写了下,如下:import java.io.*;import java.util.stream.Collectors;import java.util.List;import java.util.ArrayList;class test { public static void main (String[] args) { List&lt

2021-04-28 16:25:19 15613 2

原创 Java中List的复制 深拷贝和浅拷贝

首先说一下深拷贝和浅拷贝的区别:浅拷贝就是复制出来了一个list,但是它们指向同一地址,所以一旦一个变了,另一个也会跟着改变。深拷贝则不共享地址,不会被对方影响。浅拷贝:深拷贝: List<Integer> oldList = new ArrayList<>();//假设已对oldList赋值 List<Integer> newList = new ArrayList<>(); Collections.addAll(newList, ne

2021-04-27 10:42:59 3487 2

原创 Spring Cloud概念及Feign使用方法简介

文章目录一、集群、分布式和微服务二、服务治理框架:Eureka三、远程调用工具类:RestTemplate一、集群、分布式和微服务仅谈谈自己的理解,可能有不对或者不到位的地方,欢迎指正。集群是指多个服务器通过局域网或其他连接方式进行连接,可以被看作同一台服务器,协同完成工作,来提高性能或可靠性。这些服务器,应该也可以通过同一个ip进行访问。分布式是指一个业务拆成多个子业务,部署在不同的服务器上以提高效率。集群和分布式并不冲突,也有分布式集群,即既将一个大的业务拆成不同的子业务,同一个子业务也可以用

2021-04-06 12:18:24 936

原创 Spring Data JPA实现分页多条件查询2

之前写过一篇博客Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询(分页查询和非分页查询)然后发现还有其他两种写法,会更简便一些。1、使用JPA自带的findByXxx接口示例:default方法在java8以后,接口中可以添加使用default或者static修饰的方法,在这里我们只讨论default方法,default修饰方法只能在接口中使用,在接口中被default标记的方法为普通方法,可以直接写方法体。实现类会继承接口中的default方

2021-04-06 10:44:50 1615 2

原创 JVM简介及Java的垃圾回收机制(GC)

文章目录一、JVM体系结构1、体系结构简介2、类加载器简介一、JVM体系结构1、体系结构简介JVM体系结构含两个子系统:类加载器、执行引擎。两个组件:运行时数据区、本地接口。相互关系如下图(找的网图,侵删)其中运行时数据区当中的方法区和堆是所有线程共享的数据区,虚拟机栈(java栈)、本地方法栈和程序计数器是线程隔离的数据区。2、类加载器简介类加载器负责加载Java类的字节代码到虚拟机中,具体介绍可参考jvm之java类加载机制和类加载器(ClassLoader)的详解...

2020-10-02 14:25:25 202

原创 RabbitMQ简介并在SpringBoot项目中使用RabbitMQ

rabbitMQ是一个开源的消息代理和队列服务器,通过普通协议在完全不同的应用之间共享数据。RabbitMQ使用Erlang语言编写,并基于AMQP协议Erlang语言 数据传输延迟低(利于承载高并发) socket也一样rabbitMQ可以与SpringAMQP完美整合,SpringAMQP框架提供了原生的rabbitMQ api 也提供了丰富的拓展APIrabbitMQ集群模式丰富,表达式配置,HA模式,镜像队列模型AMQP:高级消息队列协议 是一套规范生产者 消费者 虚拟主机 里面的交换机

2020-09-29 16:23:58 892

原创 Spring中Bean的初始函数和消亡函数

文章目录bean的初始和消亡函数1、初始函数:实现 InitializingBean 接口2、初始函数:自定义方法添加 bean 的依赖关系注入之后的行为(此时需要修改xml文件3、单例与多例bean时初始函数的调用时机4、消亡函数:实现DisposableBean接口5、消亡函数:自定义方法添加 bean 销毁之前的行为(此时需要修改xml文件bean的初始和消亡函数1、初始函数:实现 InitializingBean 接口package com.homework.bean;import org

2020-09-08 10:39:12 462

原创 Spring Data Jpa查询全部并排序

1、Repository层只需要简单地extends JpaRepository,依旧不用写任何东西。因为它自己其实有一个findAll(Sort sort)的方法,直接用就可以了。2、Service层中如下List<xxxDO> xxxDOS = xxxRepository.findAll(new Sort(Sort.Direction.ASC,"属性名"));但注意springboot2.2.1及以上的版本Sort的构造方法变为私有,需要像下面这样写:List<xxxDO&g

2020-08-24 11:35:02 5420

原创 Spring Data JPA 使用JpaSpecificationExecutor实现多条件查询(分页查询和非分页查询)

文章目录1、Repository层继承`JpaSpecificationExecutor`2、Service层编写方法设置筛选条件Specification3、在Service层调用刚刚编写的方法和Repository层的方法实现查询①非分页查询②分页查询1、Repository层继承JpaSpecificationExecutor<T>如下:@Repositorypublic interface UserRepository extends JpaRepository<UserD

2020-08-19 15:38:48 2036

原创 SpringBoot中的定时功能——@Scheduled

最近在做一个关于健康码的小demo,需要一个每日上报信息功能,每天第一次登录的时候需要上报自己的健康信息,所以我的想法是用一个字段来标识今天用户是否上报过,如果没有就让前端显示上报页面,因此就涉及到了定时,在每天0点的时候需要把所有用户的那个字段都设为false。其实定时也很简单,如下所示即可,只要程序启动了就可以,也不需要用任何东西去调用下面的程序。不过虽然不需要被调用,它还是需要使用注解@Component,这是为了把它塞到Spring的容器中,所有的操作都是在Spring容器中进行的。packag

2020-08-14 20:35:39 326 1

原创 在SpringBoot项目中使用Spring Data JPA完成简单的登录注册

目录1、Maven依赖及application.properties配置2、实体类(BO)使用@Entity注释3、Repository(dao层)使用@Repository,继承JpaRepository<>4、在UserServiceImpl中进行调用5、UserReqDTO、UserRespDTO和UserRegisterDTO6、UserRestService和UserRestServiceImpl1、Maven依赖及application.properties配置<depen

2020-08-14 20:13:26 1100

mPaaS热修复

保存的网页https://www.yuque.com/tutorials/college/hotpatch,作者也不是我,只是存一下免得以后页面消失

2019-04-28

jars-struts2.3

struts2开发所需要的jar包,版本为2.3.24。(已修正datetimepicker乱码问题)

2018-10-18

添加hibernate支持所需要的jar包

添加hibernate支持所需要的jar包,含antlr-2.7.7.jar,dom4j-1.6.1jar,hibernate-commons-annotatlons-4.0.1-Final.jar,hibernate-core-4.2.4.Final.jar,hibernate-jpa-2.0-api-1.0.1.Final.jar,javassist-3.15.0.GA.jar,jboss-logging-3.1.0.GA.jar,jboss-transaction-api_1.1_spec-1.0.0.Final.jar

2018-07-13

空空如也

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

TA关注的人

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