自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (5)
  • 收藏
  • 关注

原创 Redis分布式锁进阶源码分析

上面代码还是会有问题,如果扣减代码执行时间大于我们设置的过期时间,redis已经删除了key,其他线程可以获取到锁,并正常执行,但是第一次获取到锁的线程扣减完库存之后,执行了删除key的操作,导致下一个线程丢失锁。b、执行到finally中的对比id已经执行,而删除key没有执行,过期时间到了,此时第二个线程获取到锁,但是第一个线程又执行了删除,极端情况还是会出现误删锁导致超卖。a、增长过期时间其实治标不治本,出问题的概率会变小,但是不代表不会出问题,代码执行时间还是会超过过期时间,导致锁丢失。

2023-12-26 18:50:28 883

原创 Thread、Runnable、FutureTask和Callable以及线程池创建线程

一、线程的创建方式1、继承Thread类(1)创建一个继承Thread的子类,并重写run方法@Slf4j //需要安装lombokclass MyThread extends Thread{ @Override public void run(){ log.info("继承Thread创建线程"); }}(2)创建Thread的子类对象,并调用start方法启动线程@Slf4jpublic class ThreadTest { public

2022-04-13 11:01:24 1011

原创 Kubeadm创建Kubernetes集群、Docker安装、k8s可视化界面安装

文章目录一、安装前置1、前置条件2、永久禁用交换分区。3、将 SELinux 设置为 permissive 模式(相当于将其禁用)4、允许 iptables 检查桥接流量二、安装Docker三、安装kubelet、kubeadm和kubectl四、用Kubeadm引导创建集群1、提前用国内源加速下载所需镜像2、初始化master节点3、安装calico网络组件4、两个node节点加入集群5、验证集群加入的节点五、部署可视化界面dashboard1、部署dashboard2、设置访问端口3、查看端口4、创建访

2022-03-18 17:23:07 3055

原创 KubeKey创建k8s集群、k8s监控、KubeSphere可视化安装mysql中间件并暴露服务,中间件扩容缩容

文章目录一、前置条件二、使用KubeKey创建集群三、安装nfs文件系统四、安装集群指标监控组件五、KubeSphere可视化界面安装mysql1、创建企业空间2、创建项目3、创建mysql工作负载(1)、增加mysql配置(2)、创建工作负载,配置mysql镜像,配置端口号(3)、增加环境变量(1)、添加存储卷模板,挂载mysql数据到nfs5、创建服务,暴露mysql外网访问接口6、测试mysql链接以下步骤如未说明,每个节点都要执行一、前置条件1、三台或者更多兼容的 Linux 主机(建议Cen

2022-03-18 17:05:10 3368 1

原创 Docker基本命令,Docker部署Java应用,Docker部署MySQL,Docker部署Redis

一、安装1、移除系统自带Dockersudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker

2022-02-07 10:57:58 2276 1

原创 Kubernetes基础概述

一、Kubernetes基础概述1、Kubernetes是什么  Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。  Kubernetes可以:快速部署应用快速扩展应用无缝对接新的应用功能节省资源,优化硬件资源的使用  Kubernetes 特点:可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)可扩展: 模块化, 插件化, 可挂载, 可组合自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

2022-01-23 13:10:10 196

原创 Elasticsearch倒排索引、kibana、ES检索常用命令、ES进阶检索、ES聚合、SpringBoot整合Elasticsearch

什么是Elasticsearch?Elasticsearch是基于Elastic堆栈核心的分布式搜索和分析引擎。Logstash和Beats有助于收集、聚合和丰富数据,并将其存储在Elasticsearch中。Elasticsearch为所有类型的数据提供近乎实时的搜索和分析。无论对有结构化或非结构化文本、数字数据或地理空间数据,Elasticsearch都可以以支持快速搜索,以方式高效地存储和索引这些数据。可以简单的数据检索和聚合信息来分析数据的趋势和模式。随着数据量和查询量的增长,Elasticsea

2021-09-24 18:31:51 1339

原创 Elasticsearch bank account测试数据

{“index”:{"_id":“1”}}{“account_number”:1,“balance”:39225,“firstname”:“Amber”,“lastname”:“Duke”,“age”:32,“gender”:“M”,“address”:“880 Holmes Lane”,“employer”:“Pyrami”,“email”:“[email protected]”,“city”:“Brogan”,“state”:“IL”}{“index”:{"_id":“6”}}{“accou

2021-09-22 14:51:39 5649

原创 Spring 事务--如何在开发中熟练使用事务

文章目录事物简介Spring事务基于SpringBoot注解事务示例@Transactional1. timeoutint2. readOnly3. rollbackFor和rollbackForClassName4. noRollbackFor和noRollbackForClassName4. isolation事物简介在JavaEE企业及开发的应用中,为了保证数据的完整性和一致性,必须引入数据库事务的概念,所以事务管理是企业级应用程序开发中必不可少的一部分。事务就是一组由于逻辑紧密关联而合并成一个整

2021-09-08 17:40:05 316

原创 Spring IoC和AOP--基于SpringBoot AOP开发

SpringSpring简介Spring是一个轻量级的框架,是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。Spring以IoC(Inverse Of Control)和AOP(Aspect Oriented Programming)为内核,提供了展现层Spring MVC和持久层Spring JDBC以及业务事务管理等众多的企业级应用技术,还可整合开源众多第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架。Spring主

2021-09-06 17:21:03 327

原创 MyBatis用法详解,基于SpringBoot优雅使用MyBatis,动态SQL,MyBatis缓存

文章目录MyBatis简介基于SpringBoot的MyBatis示例Mybatis架构MyBatis核心组件MyBatis的CRUD操作动态SQLif标签choose、when、otherwise 标签wheresettrimforeachsql、include和bind#{}和${}区别模糊查询like语句MyBatis缓存一级缓存二级缓存MyBatis简介MyBatis前身是iBatis,是 Apache 软件基金会下的一个开源项目。2010年该项目从 Apache 基金会迁出,并改名为 MyB

2021-08-30 16:37:59 1141 1

原创 Java注解和自定义注解,看完就会写注解

文章目录为什么使用注解什么是注解注解分类JDK元注解@Retention@Target@Documented@Inherited@RepeatableJava基本注解@Override@Deprecated@SuppressWarnings@SafeVarargs@Functionallnterface自定义注解注解的用途为什么使用注解在没有注解之前,XML被用于描述数据,各大框架广泛应用,以松耦合的方式完成了框架中的所有配置,但是随着项目越来越庞大,XML配置的东西就越来越多,维护就变得异常困难。所以

2021-08-26 11:24:31 305

原创 Redis集群

Redis数据类型和常用配置https://blog.csdn.net/projectNo/article/details/119733596Redis发布订阅和事务https://blog.csdn.net/projectNo/article/details/119818581Redis持久化https://blog.csdn.net/projectNo/article/details/119861861Redis主从复制和哨兵模式https://blog.csdn....

2021-08-24 16:32:10 169

原创 Redis主从复制和哨兵模式

Redis主从复制1、简介主从复制是指一台Redis服务器的数据,复制到其他Redis服务器,前者成为主节点master,后者成为从节点slave。数据的复制是单向只能从主节点到从节点。默认每个Redis服务器都是主节点,主节点可以有多个从节点,但从节点只能有一个主节点。2、作用负载均衡:读写分离,主节点主要提供写操作,从节点提供度服务,提高并发能力。数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式,容灾恢复:当主节点出现问题,可以由从节点代替服务。高可用基石:主从复制

2021-08-23 08:57:28 174

原创 Redis持久化

Redis持久化持久化就是把数据备份到硬盘或者远程位置上,Redis是内存型数据库,为了防止重启、宕机或者机器故障等,需要提前将内存的数据备份持久化,Redis提供了两种持久化的方式:RDB(Redis DataBase)AOF (Append Of File)RDB持久化1、简介RDB持久化:将某个时间点的所有数据保存到磁盘上,Redis启动时会读取该文件重构数据。Redis默认使用RDB持久化。2、备份操作Redis会单独创建Fork一个子进程来进行持久化,先把数据写入到一个临时文件

2021-08-23 08:56:22 181

原创 Redis发布订阅和事务

RedisRedis 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。发布和订阅什么是发布和订阅Redis发布订阅(pub/sub)是一种消息通信模式:发布者发布消息,订阅者接收消息。客户端可以订阅任意数量的频道。客户端发送消息需要指定消息频道和内容,订阅者根据频道接收消息,一个频道可被多个客户端订阅。发布订阅命令1、打开一个客户端订阅channel1subscribe channel1输出以下信息并保持连接127.0.0.1:637

2021-08-20 10:52:14 156

原创 Redis数据类型和常用配置

Redis学习笔记一、NoSQLNoSQL Not only SQL 意为“不仅仅是数据库”,泛指非关系数据库。NoSQL不依赖业务逻辑的方式存储,而已简单的key-value模式存储。因此大大增加了数据库的扩展能力。特点:不遵循SQL标准不支持ACID性能远超SQL适用场景:对数据高并发的读写海量数据的读写对数据的高可用性不适用场景需要事务支持数据关系处理复杂二、redis数据类型和操作key操作1、查看当前库所有key:keys * //返回(empty

2021-08-20 10:50:01 191

原创 类加载器和类的加载过程

文章目录1 类加载器概述2 类的加载过程2.1 加载2.2 链接验证 Verify准备 Prepare解析 Resolve2.3 初始化类加载器分类JVM自带的类加载器启动类加载器 Bootstrap ClassLoader扩展类加载器 Extension ClassLoader应用程序类加载器 Application ClassLoader用户自定义的类加载器双亲委派机制工作原理:优势1 类加载器概述类加载器从文件系统或者网络中等途径加载class文件。类加载器只负责classs文件的加载,至于

2021-08-11 15:10:37 263

原创 JVM垃圾回收

垃圾回收如何判断对象可以垃圾回收引用计数法  当一个对象被引用之后,当前的对象的引用值+1,当引用值为0时说明该对象没有被引用,可以被垃圾回收器回收。  优点:速度快。  缺点:当对象循环引用时,即使对象没有使用价值,但是对象的引用值一直不为0,导致不会被释放。可达性分析算法  为了解决引用计数法的循环引用问题,Java使用了可达性分析的方法。垃圾回收器扫描堆中的对象,看能否沿着GC Root对象为起点的引用链找到该对象,如果找不到,表示不可达。  哪些对象可以作为GC Root的对象?

2021-08-05 10:35:21 126

原创 JVM运行时数据区-程序计数器、Java虚拟机栈、本地方法栈、堆、方法区

一、JVM1、JVM是什么?2、JVM的优点?3、JVM、JRE和JDK的关系?4、JVM内存结构

2021-08-02 10:38:45 232 1

原创 git教程

这里写目录标题1.git简介2.git创建版本库配置用户名和邮箱创建版本库git init添加文件到Git仓库git add git commit -m "提交说明"3.版本回退git loggit resetgit reflog4.工作区和暂存区git status5.撤销修改撤销工作区修改git checkout -- 撤销暂存区修改git reset HEAD 撤销版本库的修改删除文件git rm 1.git简介git是目前世界上最先进的分布式版本控制系统(没有之一)。什么是版本控制系统?

2021-06-30 15:53:45 126

原创 Nginx负载均衡、反向代理、详细配置

NginxNginx的产生Nginx 基本概念正向代理与反向代理正向代理反向代理负载均衡动静分离Nginx常用命令Nginx功能Nginx配置Nginx是为对Apache性能不满意的人而构建的。随着Internet需求的变化,Web服务器的工作也在变化。Nginx的构建比以往任何时候都更有效率,更可扩展,更安全,更强大Nginx的产生Nginx同Apache一样都是一种Web服务器,基于REST的架构风格,以统一资源描述符(Uniform Resources Identifier)URI或统一资源定位

2021-06-28 15:34:53 910

原创 JavaScript时间加减、时间加一天、时间加一个月、时间加一年、时间戳转“yyyy-MM-dd HH:mm:ss”

文章目录两个时间相加减给某个时间加一天、加一个月和加一年加一天(月底加一天结果是次月第一天)加一个月(年底加一天结果是次年第一月)加一年时间戳转“yyyy-MM-dd HH:mm:ss”两个时间相加减如果是默认的Date()类型,直接相减就是相差的毫秒数,如果不是时间转乘时间格式再计算。var date1 = new Date('2021/06/22');var date2 = new Date('2020/06/22');console.log(parseInt(d2 - d1));//两个时间

2021-06-22 09:12:25 18614

原创 maven pom变量定义

定义变量并赋值<properties> <spring-framework.version>4.1.5</spring-framework.version></properties>使用<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId&

2020-11-13 15:45:47 886

原创 Vue watch的用法

Vue.js 有一个方法 watch,观察 Vue 实例上的一个表达式或者一个函数计算结果的变化。回调函数得到的参数为新值和旧值。1.简单用法<template> <div> <a-input v-model="name"></a-input> </div></template><script>export default { data() { return { name:

2020-11-03 16:59:34 351

原创 You cannot set a form field before rendering a field associated with the value解决办法

在Antd界面的时候报出这个警告,反复查找问题,最终找到解决办法原因:在modal中用this.form.setFieldsValue({})填充Form表单信息时,modal没有被设置可见,或者表单元素v-if为true就会出现这个警告,当然在我查看资料和别人解决办法的时候也有其他的情况。解决办法:1、在modal中给表单赋值时,要先让表单可见即设置modal的visible为true,或者不论是否可见强制渲染forceRender为true,再去用this.form.setFieldsValue(

2020-11-03 14:38:06 7180 1

原创 前端Ant Design DatePicker限定日期选择范围

Ant版本为1.X,API中有的笔者就不介绍了,下面介绍一些遇到过的问题和解决方案:文章目录自定义日期选择范围选择范围小于等于今天选择范围小于今天选择范围大于等于今天选择范围只能是昨天、今天和后天日期格式和字符串格式限定选择范围字符串格式日期选择范围小于今天date格式日期选择范围小于今天自定义日期选择范围API中有介绍如何用开始时间去限定结束时间的选择范围,或者用结束时间去限定开始时间选择范围。我们一般会用自己的时间限定选择范围,而自己的时间一般是字符串格式,如“2020-11-11”,或者用new

2020-11-03 10:57:11 5172 4

原创 springBoot雷神教程学习笔记

Redis安装Window安装下载地址:https://github.com/MSOpenTech/redis/releases根据系统位数选择32位或者64位,这里我们选择64,解压后将文件重命名为

2020-05-18 19:44:01 754

原创 百度地图API 添加标注图片和鼠标点击标注图片弹窗

代码目录结构效果代码<html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>百度地图 API marker</title>...

2020-05-07 13:09:25 1599

原创 python发送邮件带多个附件代码

python发送邮件带多个附件代码import smtplib,osfrom email.mime.text import MIMETextfrom email.mime.multipart import MIMEMultipartfrom email.mime.base import MIMEBasefrom email import encoders# 收件人(列表)mail_r...

2018-11-19 11:17:24 6674

原创 Java工厂模式(Factory)

工厂模式定义:提供创建对象的接口。为何使用工厂模式工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,...

2018-04-13 11:56:44 524

转载 单利模式(Singleton)

单利模式的优缺点和使用场景 一、首先介绍一下单例模式: 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通...

2018-04-08 18:44:11 612

原创 log4j日志配置(超详细)

一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和...

2018-03-01 13:53:31 16092

原创 GPS坐标转换成百度坐标和火星坐标

WGS坐标系是国际通用的一种地心坐标系,WGS本身也有多个版本(不赘述了),GCJ-02是国内官方采用的一种坐标系,国内许多坐标系也是基于GCJ-02变种而来的,比如百度坐标系BD-09。就这么简单介绍一下吧,坐标系本身的算法是比较复杂的,需要了解空间地理知识,百度文库里面也有一些坐标纠偏转换算法的相关论文,有兴趣的可以自己去研究。static double pi = 3.1415926535897

2017-12-25 17:34:07 3118

转载 Jquery实现鼠标可拖动的进度条

html<div class="progress"> <div class="progress_bg"> <div class="progress_bar"></div> </div> <div class="progress_btn"></div> <div class="text">0%</div></div>css.progress{posit

2017-11-08 11:47:38 3334

原创 html+js+jquery实现两侧悬浮信息框

需要引入自己的jquery的js包&lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8"&gt; &lt;meta name="author" content="wg"&gt; &lt;title&gt;Jquery-左侧悬浮信息框&lt;/title

2017-11-01 17:27:53 1098

原创 JQuery操作div隐藏和显示的4种动画

不多说直接上代码,效果如下: <html> <head> <meta charset="utf-8"> <meta name="author" content="wg"> <title>Jquery-Div动画显示</title> <script src="jquery-1.10.2.min.js" type="text/ja

2017-10-25 18:12:14 20607 1

原创 百度地图API 移动的marker,移动marker点击事件及动态改变速度

前段时间研究了路书想用来监控公交但发现路书很多功能不足,比如说路书移动时点击事件不能触发,路书动态改变移动速度需要移动完两点之间的距离才能改变,添加多个路书会移动其他的移动速度等。后来自己用marker写了个类似路书的东西,如下:(注释很详细,这里不多说,有疑问可在下方留言)<html> <head> <meta charset="utf-8"> <meta

2017-10-19 10:40:00 12625

原创 js获取日期、时间、日期常用方法、时间计算并格式化和实现电子表

代码如下,注释很全,代码很简单<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>一个函数实现电子表</title> </head> <body> <label id="time" style="font-s

2017-10-12 09:41:05 1356

原创 百度地图API自定义点路书,路书点击事件,路书速度动态改变

前一段时间研究百度地图路书,查了很多资料也看源码,总结了一下如下 代码中有三个图片我放在下面,自行下载重命名和代码里面的名字保持一致,并且同代码放在同一个文件家里面,代码中注释也很详细,可自行copy hightTrain.png station.png xian.jpg<html> <head> <meta charset="utf-8"> <met

2017-10-11 10:25:13 17767 7

企事业单位的红头文件模板.doc

企事业单位的红头文件模板,对每一个细节自豪和字体描述都很到位,有需要的拿走,甭客气 企事业单位的红头文件模板,对每一个细节自豪和字体描述都很到位,有需要的拿走,甭客气

2020-11-03

百度地图api自定义标注代码

此代码详细描述如何调用百度地图api生成自己想要的自定义标注代码、自定义图标或者自定义覆盖物,以及标注拖动、添加文本信息和获取当前经纬度。

2017-09-27

insurance_platform,WebService客户端

insurance_platform,WebService客户端

2017-08-09

WebService

WebService接口开发

2017-08-09

Tomcat6.0.37

Tomcat6.0.37

2017-08-09

空空如也

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

TA关注的人

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