自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

转载 k8s部署springboot

1.从代码仓库下载代码,比如GitLab;2.接着是进行打包,比如使用Maven;3.编写Dockerfile文件,把步骤2产生的包制作成镜像;4.上传步骤3的镜像到远程仓库,比如Harhor;5.编写Deployment文件;6.提交Deployment文件到k8s集群;从以上步骤可以看出,发布需要的工具和环境至少包括:代码仓库(GitLab)、打包环境(Maven)、镜像制作(Docker)、镜像仓库(Harbor)、k8s集群等。

2024-02-04 14:54:56 81

原创 搜索Maven相关依赖jar包(特别推荐)

​根据maven查询jar包的步骤如下:打开Maven仓库中央库的网站https://mvnrepository.com/在搜索框中输入你需要查询的jar包的名称,例如:hutool-all点击搜索按钮,网站会列出所有符合条件的jar包信息,包括版本号、最近更新时间等。选择你需要的版本号,点击该版本号,进入该版本号的详细信息页面。在该页面中,你可以找到该jar包的依赖信息、使用方法等。​

2023-11-14 15:14:29 2539

转载 swagger-ui导出word接口文档

开发时用的swagger-ui API接口开发,项目交付时客户需要word形式的接口文档,几百个接口,不可能一个一个写噻,直接通过下面的微springboot项目生成word文档快捷方便

2023-11-14 15:05:41 1093

原创 docker logs-查看docker容器日志

-since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)--tail string 从日志末尾显示多少行日志, 默认是all。--details 显示更多的信息。-f, --follow 跟踪实时日志。-t, --timestamps 显示时间戳。通过docker logs命令可以查看容器的日志。

2023-09-21 09:46:36 418

原创 Docker容器查询服务资源相关命令

docker logs -f --tail=1000 服务名称/ID。docker exec -it 容器名称/ID /bin/bash。2、查看docker服务占用的内存。1.进入docker中的服务。3、查看docker服务日志。

2023-09-20 10:56:49 172

转载 docker容器java进程内存占用过高问题排查步骤

第七步:双击heapDump.hprof,即可查看进程使用情况。第二步:执行jps,查询docker容器内的java进程。第五步:退出docker容器,将文件拷贝到宿主机。第一步:进入docker容器内部。第六步:XFTP将文件传输到本地。第三步:执行jstack命令。第四步:执行jmap命令。

2023-09-20 10:44:12 1040

原创 git&gitlab 修改本地分支名称和远程分支名称

如:git push --set-upstream origin newBranchName。如:git branch -m oldBranchName newBranchName。git push --set-upstream origin 新分支名称。如:git push origin :oldBranchName。git branch -m 旧分支名称 新分支名称。git push origin :旧分支名称。3、将本地分支与远程新分支关联起来。1、修改本地分支名称。

2023-08-21 11:37:41 2109

原创 深入了解HTTPS的加密机制和加密流程

深入了解HTTPS的加密机制和加密流程

2022-11-21 21:11:38 1351 2

转载 全靠这36个锦囊,CTO夸我接口设计的好

后端接口开发建议:全靠这36个锦囊,CTO夸我接口设计的好

2022-05-26 15:18:45 147

原创 为什么AtomicInteger能够实现原子性?以及CAS的底层原理

为什么AtomicInteger能够实现原子性?以及CAS的底层原理

2022-05-15 22:52:00 1593

原创 Java内存模型(JMM)底层交互流程讲解

JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JMM关于同步的规定:1、线程解锁前,必须把共享变量的值刷新回主内存。2、线程加锁前,必须读取主内存的最新值倒自己的工作内存。3、加锁解锁是同一把锁。JMM交互流程:由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(有些地方称为栈空间),

2022-05-14 11:49:24 215

原创 阿里注册中心Nacos集群生产部署方案

一、说明生产环境中部署nacos首先肯定是使用集群模式cluster保证高可用,本文主要详细介绍最佳的集群方案怎样搭建与spring cloud程序怎样集成二、集群方案下图是官方推荐的集群方案,通过域名 + VIP模式的方式来实现,可读性好而且换ip方便这里的VIP直接使用Nginx就可以实现了三、方案实现nacos集群最低配置是至少需要3个实例,因为我在本地搭建只有一台机器所以通过修改端口的方式来部署这3个实例,端口分别为:8848、8849、88503.1. 修改集群配置

2022-04-24 14:13:44 609

转载 SpringCloud底层服务之间是怎么相互调用的-微服务流程介绍

原地址:石杉的架构笔记_CSDN博客-JVM,微服务,架构领域博主目录一、业务场景介绍二、SpringCloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring Cloud核心组件:Hystrix六、Spring Cloud核心组件:Zuul七、总结概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在.

2022-03-01 11:24:50 1944

原创 如何使用MYSQL触发器,备份历史记录?

一、首先创建一个存放历史表的数据库。-- 创建历史库create database lianxin_history;二、创建要备份的数据表use lianxin_history;-- 创建历史库中的equipment_info同构表以及增加两个记录操作状态字段create table `equipment_info` select * from `lianxin_trace`.`equipment_info` where 1<0;ALTER TABLE `equipment_i

2021-10-11 11:01:12 645

原创 长链接转成短链接的原理和实现详解

一、为什么要设计短链接,短链接有什么好处?1、链接变短,在对内容长度有限制的平台发文,可编辑的文字就变多了。比如:微博,限定了只能发 140 个字,如果一串长链直接怼上去,其他可编辑的内容就所剩无几了,用短链的话,链接长度大大减少,自然可编辑的文字多了不少。2、我们经常需要将链接转成二维码的形式分享给他人,如果是长链的话二维码密集难识别,短链就不存在这个问题了。3、链接太长在有些平台上无法自动识别为超链接。二、短链接实现的原理。1、请求流程:首先,我们先看看当当的短.

2021-08-25 15:55:35 9062 1

转载 写代码有这16个好习惯,可以减少80%非业务的bug

每一个好习惯都是一笔财富,本文整理了写代码的16个好习惯,每个都很经典,养成这些习惯,可以规避多数非业务的bug!希望对大家有帮助哈,谢谢阅读,加油哦~来自公众号:「捡田螺的小男孩」1. 修改完代码,记得自测一下「改完代码,自测一下」是每位程序员必备的基本素养。尤其不要抱有这种侥幸「心理:我只是改了一个变量或者我只改了一行配置代码,不用自测了」。改完代码,尽量要求自己都去测试一下哈,可以规避很多不必要bug的。2. 方法入参尽量都检验入参校验也是每个程序员必备的基本素养。你的方法处.

2021-08-20 14:28:10 191

转载 服务超时设置讲解

![](https://img2020.cnblogs.com/blog/2015191/202006/2015191-20200614234711374-419304870.png)上面这张监控图,对于服务端的研发同学来说再熟悉不过了。在日常的系统维护中,『服务超时』应该属于监控报警最多的一类问题。尤其在微服务架构下,一次请求可能要经过一条很长的链路,跨多个服务调用后才能返回结果。当服务超时发生时,研发同学往往要抽丝剥茧般去分析自身系统的性能以及依赖服务的性能,这也是为什么服务超时相对于服务出.

2021-08-17 15:39:44 1942 1

转载 服务器CPU占用率过高检查步骤

1、病号是谁?(WHO) - 第一步:采用 top 命令,找出 CPU 占用最高的病号 PID ; - 第二步:通过 ps -ef | grep PID 查看病号对应的真实身份。 2、病号哪里出了问题?(WHERE) - 第一步:采用 jstack -l PID >> PID.log 获取病号的各器官信息的病历单; - 第二步:采用 top -Hp PID 拿到占用 CPU 最高的器官昵称 PID ; - 第三步:采用 printf "%x\n" ...

2021-08-17 14:47:05 282

原创 谈谈对公平锁、非公平锁、可重入锁、递归锁、自旋锁 的理解。

这里写自定义目录标题一、公平锁和公平锁的比较1、什么是公平锁和非公平锁?2、公平锁和非公平锁区别3、公平锁和非公平锁的使用二、可重入锁(又叫递归锁)1、什么是重入锁?2、可重入锁的使用:3、可重入锁的作用:4、可重入锁代码演示:三、自旋锁1、什么是自旋锁?2、自旋锁的优缺点3、自旋锁底层代码一、公平锁和公平锁的比较1、什么是公平锁和非公平锁?a、什么是公平锁:是指多个线程按照申请锁的顺序来获取锁,类似于 队列的先进先出。b、什么是非公平锁:是指在多线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请

2021-03-09 10:07:10 287

原创 CAS(比较与交换)底层原理讲解

文章目录一、什么是CAS?二、CAS底层原理三、CAS的缺点一、什么是CAS?二、CAS底层原理三、CAS的缺点

2021-03-08 10:02:39 730

原创 Java内存模型(JMM) 和 volatile 的讲解

文章目录一、JMM讲解1、什么是JMM?2、JMM的底层访问过程图:3、JMM的三大特点:二、volatile 讲解1、什么是volatile?2、volatile 的特点2.1、代码案例演示:3、volatile 的示例一、JMM讲解1、什么是JMM?1.1、JMM的简介:JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念 并不真实存在,它描述的是一组规则或规范通过规范定制了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。1.2、

2021-03-05 12:15:16 1463 9

原创 如何保证缓存与数据库的双写一致性?

一般来说,只要我们用到了缓存,就很可能会涉及到缓存与数据库双存储双写,那么只要我们是双写(写数据库,写Redis缓存)操作,就一定会有数据一致性的问题,那么我们该如何解决一致性问题?一、对于单数据库来说,我们可以这样操作:1、根据你要更新的key,先删除Redis缓存中的数据,2、然后再去更新Mysql数据库中的数据,3、Mysql数据库更新成功之后,再删除Redis中的数据。(简称:双删策略)注意:第3步的目的是防止在更新Mysql数据库的时候;其他线程正好进来读操作,先访问Redis缓存的数据不存在

2021-02-26 10:36:01 485 1

原创 Java集合类不安全问题之HashMap

一、集合类不安全问题之HashMap1、HashMap不安全Demo展示:package com;import java.util.*;public class ListNoSafeDemo { public static void main(String[] args) { Map<String, String> map = new HashMap<>(); for (int i = 1; i <= 100; i++) {

2021-02-26 00:59:04 107

原创 Java集合类不安全问题之HashSet

一、集合类不安全问题之HashSet1、 HashSet 不安全Demo展示:package com;import java.util.*;public class ListNoSafeDemo { public static void main(String[] args) { Set<String> set = new HashSet<>(); for (int i = 1; i <= 100; i++) {

2021-02-26 00:50:34 208

原创 Java集合类不安全问题之ArrayList

一、集合类不安全问题 之 ArrayList。1、ArrayList 不安全Demo展示:package com;import java.util.ArrayList;import java.util.List;import java.util.UUID;public class ListNoSafeDemo { public static void main(String[] args) { List<String> list = new ArrayLi

2021-02-26 00:31:31 141 1

原创 MyISAM和InnoDB区别和比较

两者的主要区别:1、默认引擎:在 MySQL5.5 之前,MyISAM 是 MySQL 的默认引擎;在 MySQL5.5 之后,InnoDB 是 MySQL 的默认引擎。2、是否支持行级锁:MyISAM 只有表级锁(table-level locking); InnoDB 支持行级锁(table-level locking)和表级锁(row-level locking)。3、是否支持事务:MyISAM 不支持事务;InnoDB 支持事务。4、是否支持外键:MyISAM 不支持外键;InnoDB 支

2021-02-25 16:55:22 912

原创 GitHub 快速搜索操作

一、in 关键词限制搜索范围:公式:xxx 关键词 in:name 或者 description 或者 readme。1、xxx in:name 表示项目名包含 xxx.springboot in:name2、xxx in:description 表示项目描述包含xxx.springboot in:description3、xxx in:readme 表示项目的readme文件包含xxx.springboot in:readme4、组合使用:搜索项目名或者readme包含SpringB

2021-02-24 23:54:50 269

原创 假如生产环境出现CPU占用过高,如何分析思路和定位?

解决思路:先查占用CPU高的进程号---->然后查询占用CPU高的线程号---->z最后查询是具体哪行代码出的问题。一、 使用top命令找出CPU占比最高的进程。从图中可以查出CPU占比最高的进程号是:2731二、 使用 jps -l 或者 ps -ef | grep java | grep -v grep 命令,查出是哪个后台程序。三、通过 ps -mp 进程号 -o THREAD,tid,time 命令,定位到具体线程或者代码。(参数解释:-m 显示所有线程,-p pid进程使用c

2021-02-24 22:21:12 947

原创 生产环境服务器变慢,谈谈诊断思路和性能评估?

一、模拟程序出现问题,代码如下:import java.util.UUID;public class MangoDemo { public static void main(String[] args) { while (true){ System.out.println(UUID.randomUUID()); } }}将MangoDemo.java文件放到Linux服务器,然后运行,效果如下图:二、诊断思路:1、通过

2021-02-24 00:30:16 1967 5

原创 Redis如何删除过期的数据和Redis内存淘汰策略

一、在Redis中,假如我们设置了100w个key,这些key设置了只能存活2个小时,那么在2个小时后,redis是如何来删除这些key的?答案:定期删除 and 惰性删除。那什么是定期删除?什么的惰性删除?靠这两种策略就可以删除掉redis中过期的key吗?定期删除:redis默认每隔100ms随机抽取一些key,检查是否有过期的key,有过期的key则删除。需要注意的是redis不是每隔100ms就将所有的key检查一次,而是随机抽取一些key来检查是否过期的key。如果每100ms,就将redi

2021-02-23 16:09:59 228

原创 Java线程池创建和线程池工作原理

一、一般创建线程池的方式主要是以下3种:ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(3);ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();ExecutorService newSingleThreadExecutor = Executors.newSingleThreadExecutor();二、重点讲解:1.Exe

2021-02-23 10:18:37 420

原创 Java死锁故障排查

一、什么是死锁?死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。二、产生死锁的主要原因:1.系统资源不足;2.进程运行推进的顺序不合适;3.资源分配不当。三、模拟死锁代码。package com;import java.util.concurrent.TimeUnit;class HoldThread implements

2021-02-21 10:21:15 385 5

原创 使用信号量Semaphore模拟并发抢占多资源

package com;import java.util.concurrent.Semaphore;import java.util.concurrent.TimeUnit;/** * 信号量的主要用途有两个目的,一个是用于多和共享资源的相互排斥使用,另一个用于并发资源数的控制. */public class SemaphoreDemo { public static void main(String[] args) { //模拟3个停车位 Sema

2021-02-20 09:37:41 193

原创 Java使用Thread类等待上面线程运行完,再执行下面的代码

Java使用Thread类等待上面线程运行完,再执行下面的代码1、关键的代码://需要等待上面的线程执行完成后,再执行下面的代码 while (Thread.activeCount() > 2){ Thread.yield(); }案例演示:class MyData1{ int number = 0;}public class Test { public static void main(String[] args

2021-02-06 15:17:50 1000

原创 SpringBoot整合阿里云OSS上传图片

SpringBoot整合OSS上传图片一、比较通过服务端上传图片到阿里云OSS 和 服务端签名后直传方式(即通过前端上传图片)。1、服务端上传图片到阿里云OSS,流程图如下:2、服务端签名后直传方式(即通过前端上传图片),流程图如下:总结:第一种方式和第二种方式相比,以上方法有三个缺点:**上传慢:**用户数据需先上传到应用服务器,之后再上传到OSS。网络传输时间比直传到OSS多一倍。如果用户数据不通过应用服务器中转,而是直传到OSS,速度将大大提升。而且OSS采用BGP带宽,能保证各地各运营

2021-02-04 14:29:20 684

原创 windows删除占用端口的进程

windows删除占用端口的进程1、查看端口占用的进程号:tasklist|findstr “端口”tasklist|findstr "10000"2、根据进程号,杀死该端口占用的进程:taskkill /pid “上面查出的进程号” -t -ftaskkill /pid 13420 -t -f3、检查是否被删除成功:...

2021-02-02 21:55:29 4613

原创 通过Java8 Stream优雅的获取多级级联数据

Java如何优雅的获取多级级联数据步骤:先查询所有级联的数据,然后通过Java8 Stream 流 来比较和判断,最终生成有顺序的级联数据。实体类:package com.macro.mall.dto;import lombok.AllArgsConstructor;import lombok.Data;import java.util.List;@Data@AllArgsConstructorpublic class LinkageEntities { private I

2021-01-28 17:06:40 2915 5

原创 SpringBoot整合RabbitMQ实现延迟消息

SpringBoot整合RabbitMQ(死信队列)实现延迟消息进入RabbitMQ安装目录下的sbin目录:2.在地址栏输入cmd并回车启动命令行,然后输入以下命令启动RabbitMQ:rabbitmq-plugins.bat enable rabbitmq_management然后双击rabbitmq-server.bat启动脚本访问地址查看是否安装成功:http://localhost:15672/5.输入账号密码并登录:guest guest,并且创建帐号并设置其角色为管

2021-01-27 16:27:04 288 3

麦杰科技,openPlant Java开发对接文档

麦杰科技,openPlant Java开发对接文档

2023-06-08

openPlant 数据库驱动jar包

openPlant 数据库驱动jar包

2023-06-01

空空如也

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

TA关注的人

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