自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 资源 (2)
  • 收藏
  • 关注

原创 Spring中事务嵌套:Transaction rolled back because it has been marked as rollback-only 异常处理

Springboot中事务嵌套:Transaction rolled back because it has been marked as rollback-only 异常处理1.实验基本介绍2.实验过程2.1 A方法加事务,B方法不加事务,同时A方法捕获B方法的异常,那么此时的结果:-------A和B都不回滚----2.2 A方法加事务,B方法不加事务,A方法捕获B方法的异常,并且在捕获异常时,将当前事务的回滚状态变成true,(TransactionAspectSupport.currentTran

2021-05-21 13:48:34 1020 2

原创 聊一聊MySQL锁的那些事

聊一聊MySQL锁的那些事1.MySQL锁的基本概念和分类1.1MySQL锁的概念1.2MySQL锁的分类2.全局锁2.1全局锁2.2全局锁的使用场景2.3如何备份数据库2.4全局锁与只读(readonly)的比较3.表级锁3.1表锁的使用场景3.2表锁中的读锁和写锁3.3元数据锁(MDL)3.4MDL的读锁和写锁3.5如何安全的给对表进行DDL的操作4.–single-transaction备份期间的影响5.行锁(InnoDB)5.1行锁简要5.2两阶段锁协议5.2实际应用两阶段锁协议5.3死锁5.4死锁

2021-03-27 22:41:40 190 1

原创 MySQL数据备份与恢复的那些事(一)

MySQL数据备份与恢复的那些事(一)一、MySQL主要日志的介绍(InnoDB)1.1 binlog1.1.1.binlog的概念1.1.2.binlog的作用1.1.3.binlog的格式1.1.4.binog的刷盘方式sync_binlog1.1.5.sync_binlog的生产建议设置1.2 redo log1.2.1 redo log的概念1.2.2 redo log的出现原因1.2.3 InnoDB引擎下数据更新过程1.2.4 redo log的刷盘频率—innodb_flush_log_at_

2021-03-22 20:25:48 115

原创 深入理解Redis的主从复制集群及哨兵机制

深入理解Redis的主从复制集群及哨兵机制1.Redis的高可用2. Redis的主从复制1.Redis的读写分离方式2.Redis为什么采用读写分离方式3.Redis是怎么进行主从数据同步的1.主库从库间是怎么进行首次同步的2.主库从库间基于长连接的命令传播3.增量同步3. Redis的哨兵机制1. Redis的哨兵机制基本流程2.哨兵如何判断Redis实例下线1.哨兵判断从库下线2.哨兵判断主库下线3.哨兵如何选择主库1.Redis的高可用前面几篇博库我们介绍了Redis的一些基础数据结构和数据的持

2020-09-19 22:03:07 382

原创 再谈Redis的数据类型String

再谈Redis的数据类型String1.String不是万能的2.简单动态字符串(Simple Dynamic String—SDS)三级目录1.String不是万能的在我们日常使用Redis的过程中,String这个数据是最常用的,甚至我们会费尽心思的把一些比较别扭的数据,强制转换成String来存储在Redis中。为什么这么做呢?其实我觉得就是因为我们操作String简单、明了,还有就是,对Redis中的String不了解,只会用,别人这么用,我也这么用,反正也没见到出什么问题。那么我们下面考虑一个

2020-09-08 11:11:14 131

原创 深度解析单线程的Redis快的原理

单线程的Redis为什么这么快?前言Redis的数据结构1.此结构非彼结构2.Redis的底层数据结构三级目录前言对于我们开发同学来说,一说到Redis,第一反应肯定是说“快”;为什么要用Redis,因为它快。那为什么Redis这么快,况且它还是一个单线程的,这你能受的了么,哈哈。我们用了很多数据库,为什么Redis能有这么快的性能呢?我们先大体上猜测总结一下,当然这不是最终结论:Redis是个内存数据库,不论是读、写操作都是在内存上完成的,而内存的速度本身就是很快的(至于内存为什么快,自己查资料吧

2020-08-27 00:08:02 376

原创 LVS+keepalived实现高可用的DR模式负载均衡的搭建过程

LVS+keepalived实现高可用的DR模式负载均衡的搭建过程一.问题总结(写在前面的话)1. 没有实现高可用2.容易出错3.不能持久化二.问题解决方案1.单点故障解决方案1.解决的方向2.解决的形式3.最终的选择2.健康检查1.概念2.健康检查的对象3.实现方式1.检查LVS主机服务2.检查server端的服务3.LVS的高可用的实现方案1.自力更生2.活生生的人3.拥抱开源4.Keepalived1.简介2.功能5.搭建过程1.实验物料及流程图2.开始安装一.问题总结(写在前面的话)首先,我们先

2020-07-12 20:55:15 557

原创 LVS负载均衡DR模式的搭建过程(不用keepalived)

LVS负载均衡DR模式的搭建过程(不用keepalived)LVS简介LVS三种模式的比较专有名词的定义1.NAT模式请看我下面画的一个简单的NAT模式的流程图图中解释NAT模式的一些问题2.DR模式1,什么是DR模式?2.DR模式的拓扑图图中解释DR模式小结3.TUN(隧道)模式1,什么是隧道模式?2.TUN模式的图谱图LVS的DR模式搭建1.实验物料及流程图2.写在实验前面的话1.server端隐藏VIP的方法2.调度算法1.四种静态调度算法2.动态调度算法3.ipvs模块1.简介2.管理集群输入(请求

2020-07-11 20:12:37 504

原创 CentOS-7下安装Redis的详细过程(多实例)

Redis目前几乎是互联网开发中必备的缓存工具,最近在学习Redis的过程中,将Redis在纯净的Linux CentOS-7下的安装过程说一下。不仅仅是想记录这个过程,还想教给大家一种安装软件的思想,那就是主要看README.md,看官方文档。一、所需准备的物料 CentOS-7的纯净操作系统 Redis-5.0.8二、安装过程如下 1.新建文件夹,用于存放Redis的原始代码,我将软件放到soft中,所以新建soft文件夹: 2.下载...

2020-06-28 16:32:05 1009

原创 三.重新回炉Spring Framework:Resource资源加载策略

AbstractResource是个抽象类,为 Resource 接口的默认抽象实现。/*** 此实现检查文件是否可以打开,若判断过程产生错误或者异常,就关闭对应的流*/@Override// 基于 File 文件系统进行判断try {//若判断过程产生错误或者异常,就关闭对应的流try {/*** 同exists()方法一致*/@Override/*** 直接返回 false,表明没有打开*/@Override/**

2024-02-19 18:35:27 1049

原创 Spring源码搭建成功,新建module无法引入依赖

如果 include “spring-study” 放在上述内容之前,子模块的 gradle 脚本必须命名为 spring-study.gradle。如果 include “spring-study” 放在上述内容之后,子模块的 gradle 脚本必须命名为 build.gradle;所以将spring-study 这个module中的build.gradle改为 spring-study.gradle就可以了。这段代码为 gradle 脚本设置了新名字:子模块名称 + .gradle。

2024-02-19 16:31:01 410

原创 二.重新回炉Spring Framework:Spring Framework主要组件概览

这里主要简单说一下Spring Framework的几个核心组件的总体情况。为了比较直观,这里使用了ClassPathXmlApplicationContext的类图来进行说明。它基本上包含了 IoC 体系中大部分的核心类和接口。

2024-02-18 16:19:56 916

原创 一.重新回炉Spring Framework: 理解Spring IoC

说实话,重试java开发工作时间也不短了,对于spring框架,也是天天用,这期间也碰到了很多问题,也解决了很多问题。可是,总感觉对spring还是一知半解,不能有个更加全面的理解。既然这样,我就想,那就单独抽出一段时间,来重新回炉一下springk框架,这样也能在以后的学习拓宽一下解决问题的思路。那怎么回炉了,我打算以spring的源码为依据,从面到点的,慢慢扣一下它的细节,这就不得不涉及spring框架的源码阅读环境的搭建,这并不是一个特别简单的过程。

2024-02-18 14:54:39 1084

原创 spring5.3.x源码:Could not resolve: com.ibm.websphere:uow:6.0.2.17

找了一下,发现是下载不下来。还有人说是将仓库地址换成阿里云的https://maven.aliyun.com/repository/public/,结果还是下载不下来,找不到这个包。因为发现public仓库并不包含spring仓库,所以需要增加https://maven.aliyun.com/repository/spring这个仓库地址。在仓库地址中除了加入阿里云的public的仓库,还需要加入https://maven.aliyun.com/repository/spring这个仓库地址。

2024-02-01 16:54:55 418 1

原创 win10系统安装gradle

最近在搭建spring的源码时,需要gradle来进行来进行包的管理,这里顺便说一下gradle的配置。说明一下,这里使用的gradle的版本是7.5.1。

2024-02-01 16:43:42 452

原创 idea搭建spring5.3.x源码环境

碰到了不少想阅读或者学习spring源码的同学,但是第一步搭建这个源码阅读环境就能难倒了一大批人。下面我就以spring5.3.x这个源码分支,来具体演示一下搭建过程。

2024-02-01 16:28:13 1347

原创 mysql数据库中int字段长度,即int(1)和int(10)的区别

为什么想起来看这个问题,是最近有同事问mysql的init类型的字段长度的问题,他问int(1)和int(10)是什么意思,是字段长度越大,能存储的数字越大么?咋一问,还有点懵,从惯性思维来看,确实应该是这样。那么,实际情况是什么样的呢?这里直接通过实验来试一下。

2023-12-07 13:59:34 598

原创 win10下maven安装与配置

去下载最新版的安装包,然后解压到安装目录。

2023-12-05 22:20:16 442

原创 17.认识下Docker之docker的核心原理(2)

不知道大家看没看过小说《完美时间》,里面石昊经常进入一个小世界在里面与世隔绝的修炼或者战斗,总之就是在一个完全封闭的空间里做他想做的事情而与外界隔离,不受侵扰。通过前面的分析我们知道,Namepace让应用进程只能看到该 Namespace 内的“小世界”;而 Cgroups 的作用是“限制”,它给这个“小世界”围上了一圈看不见的封印。

2023-12-05 22:12:14 1101

原创 16.认识下Docker之docker的核心原理(1)

docker容器使用Namespace技术实现了进程等的隔离,使用Cgroup技术实现了资源的限制。docker的本质是一个应用级的进程,是一个单进程容器,docker容器和运行再容器中的应用是同生命周期的,一起生,一起亡。

2023-12-01 09:15:00 865

原创 3.Ansible的file模块,我最常用的文件操作

从上面的返回结果来看,已经执行成功。从上面的结果来看,已经创建成功了。从上面的结果来看,命令执行成功了。我们在host1上修改a.txt文件,加入内容。我们看到,内容没变变化,文件时间改变了。从返回结果来看,已经成功。我们看到目录删除掉了,符合预期。

2023-11-30 13:24:36 434

原创 2.Ansible的copy模块,我最常用的模块

先从我自身的情况来说,我不是运维人员,并且对linux操作也不是特别熟悉,所以工作中我使用ansible基本就是在平常的自动化部署中,而使用最多的模块就是copy模块。我使用copy模块也主要是来替换生产环境的配置文件。所以,这里我主要介绍一下copy模块。说实话,对于其他模块,我接触的也不多。

2023-11-30 10:50:04 1215

原创 1.自动化运维工具Ansible的安装

ansible的安装、测试和简单使用

2023-11-29 17:57:33 623

原创 15.Docker-Compose的概念理解及安装

Docker-Compose是实现对Docker容器集群的快速编排的工具软件。它是Docker官方开源的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件docker-compose.yml.写好多个容器间的调用关系,然后,只需要一个命令,就能同时启动/关闭这些容器。

2023-11-28 16:16:54 1036

原创 解决because its MIME type (‘text/plain‘) is not executable, and strict MIME type checking is enabled

今天用springboot做了一个接口,返回一个js调用的数据,js使用以下的调用方式:或者接口方法如下:浏览器直接调用接口返回结果如下:但是当我用上面的js调用时,错误出现了:没有数据返回,查看详细信息:由于我这个功能主要是做微信分享的,所以我在微信开发者工具里面也试一下,结果如下:这里微信的开发者工具给了我误导,让我一直认为是跨域造成的。可是我本身springboot已经解决了跨域问题啊,不论我怎么测试,也没有发现服务存在跨域问题。况且浏览器也没有明确有错误说出现了跨域问题,所以果断放弃了

2023-11-28 10:45:01 2849

原创 14.docker部署应用的两种企业实践

这里仅仅说明一下在企业应用的两种简单实践,并不包含自动化这套东西。这里说的两种实践,是我在工作中不同公司使用的两种部署方式,仅供大家参考。

2023-11-24 16:35:26 1219

原创 13.docker的网络模式-自定义网络

我们再看一下宿主机的网络信息:我们看到,宿主机多了一个br-058adb395d8b,它和自定义的docker网络属于同一个网段,并且也是bridge模式。因为这里使用了bridge模式,所以容器与容器之间,容器与宿主机之间是可以连通的(注意:这是说的是同一个自定义网络容器,使用自定义网络或者使用不同自定义网络的容器之间的ip是无法ping通的)创建使用自定义网络的容器t1创建使用自定义网络的容器2那我们试下容器之间使用容器名称是否能够ping通t1 ping t2t2 ping t1。

2023-11-24 09:45:00 691

原创 12.docker的网络-host模式

host模式下,容器将不会虚拟出自己的网卡、配置IP等,而是使用宿主机的IP和端口;也就说,宿主机的就是我的。

2023-11-23 21:38:34 2006 1

原创 11.docker的网络-docker0的理解及bridge网桥模式的介绍与实例

安装完docker服务后,我们首先查看一下宿主机的网络配置ifconfig我们可以看到,docker服务会默认在宿主机上创建一个虚拟网桥docker0,该网桥网络的名字称为docker0。它在内核层连通了其他物理或者虚拟网卡,这就可以将所有容器和宿主机都放在了同一个物理网络。Docker默认指定了docker0接口的IP和子网掩码,让宿主机和容器之间可以通过网桥相互通信。

2023-11-23 21:00:15 2862

原创 10.docker的网络network-概述

docker共有四种网路模式,分别是bridge、host、none和container.bridge,也称为虚拟网桥。在bridge模式下,为每个容器分配、配置IP等,并将容器连接到一个docker0。使用–network bridge命令指定,默认使用docker0。这种模式下,容器不会虚拟出自己的网卡、配置Ip、端口等,而是使用宿主机的IP和端口;使用–network host指定。容器有独立的Network namespce,但并没有对其进行任何的网络配置,如分配veth pair 和网桥连接、IP

2023-11-23 07:55:36 351

原创 9.Docker的虚悬镜像-Dangling Image

虚悬镜像 (Dangling Image) 指的是仓库名 (镜像名) 和标签 TAG 都是 的镜像。

2023-11-22 14:51:09 359

原创 8.使用Dockerfile构建centos7+jdk8+tomcat8镜像

这里我准备的jdk8的小版本是8u261,tomcat8的小版本是8.5.34。大家可自行去下载。

2023-11-22 14:33:58 347

原创 7.docker运行redis容器

我们以redis6.0.8为例来,使用docker来配置和运行redis实例。

2023-11-17 11:03:28 370

原创 6.docker运行mysql容器-理解容器数据卷

将应用和环境打包成一个镜像,如果数据都在容器,一旦容器删除了,数据就会丢失了。要解决这个问题,就必须要进行数据的持久化。容器之间可以有一个数据共享的技术。Docker容器中产生的数据,同步到宿主机,这就是卷技术。目录的挂载,将我们容器内的目录,挂载到Linux上面!所谓容器卷,就是容器的持久化和同步操作!容器间也是可以数据共享的!

2023-11-17 00:41:06 745

原创 5.以docker容器生成镜像推送到私有镜像仓库

docker默认不允许http方式推送镜像,通过配置选项来取消这个限制。修改完后如果不生效,需要重启docker。为了演示,这里我使用ubuntu镜像容器来演示。

2023-11-16 14:43:30 93

原创 4.以docker容器生成镜像推送到阿里云镜像仓库

为了说明与原来镜像不同,我这里给ubuntu容器安装一个vim。为了演示,这里我使用ubuntu镜像容器来演示。然后点击创建镜像仓库,仓库创建完成。这个页面中会给出非常明确的操作方法。点击下一步,选择本地仓库。

2023-11-15 14:11:11 252

原创 3.Docker的客户端指令学习与实战

docker的相关操作命令还有很多,这里只是象征性的列出来一些,最好是去docker的官方文档熟悉一遍,用的时候也可以有个印象,然后再系统的研究相应命令的意思。删除未使用的数据并且不弹出确认信息。删除未使用的数据同时删除卷的信息。过滤stars数大于3000的。根据名字和tag列表镜像列表。–limit 限制个数。–filter 过滤。最多返回两个镜像信息。根据名字列出镜像列表。

2023-11-02 21:44:37 326

原创 2.Docker基本架构简介与安装实战

Docker基本架构简介与安装实战

2023-11-01 22:00:35 816

原创 1.认识下Docker

上面这个图片就是Docker的log,这是一条鲸鱼,鲸鱼上载满了集装箱。。Docker直译过来是码头工人,然而Docker给人的第一感觉是容器,容器技术英译为Linux Container, Container的直译有集装箱,容器两个意思,如果要形象的理解Linux Container的话还是叫集装箱技术比较好(可以结合着上图及LOGO理解这句话),由于中国本土文化,念集装箱技术会比较奇怪,所以我们都称之为容器技术。我们都知道码头里的集装箱是运载货物用的,它是一种按规格标准化的钢制箱子。集装箱的特色,

2023-11-01 10:01:26 1885 4

原创 python解决 pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的问题

我百思不得其解,搜索了下,大家说需要配置环境变量path,但是我已经配了啊。pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的问题。

2023-07-26 11:31:40 191

14.docker部署应用的两种企业实践

14.docker部署应用的两种企业实践

2023-11-24

java-base.zip

Java8中LocalDate、LocalTime、LocalDateTime的一些基本用法

2021-01-21

predixy-1.0.5-bin-amd64-linux.tar.gz

predixy高性能代理的编译后的软件包,方便大家下载,作为搭建redis的代理的时候使用,版本是1.0.5

2020-07-25

空空如也

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

TA关注的人

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