自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Steve Rogers的博客

目标:成为架构师!

  • 博客(10)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Spring事务的传播行为,详细且通俗易懂的解释

REQUIRED(默认的事务传播行为):使用调用方的事务,如果调用方没有事务,则自己新建一个事务,子方法是必须运行在一个事务中的,如果调用方存在事务,则加入当前事务,成为一个整体。(适用于增、删、改、查)举例:领导没饭吃,我有钱,我会自己买了自己吃;领导有的吃,会分给你一起吃。SUPPORTS:如果调用方有事务,则使用调用方事务;如果调用方没有事务,则不使用事务。(适用于查询)举例:领导没饭吃,我也没饭吃;领导有饭吃,我也有饭吃。MANDATORY:强制调用方必须存在事务,如果不存在,就抛出异常。(

2021-11-15 10:47:21 967

原创 分布式锁(解决超买超卖问题)

(一)、使用伪代码解决单体应用中超买超卖的问题问题的引出:有三张表,分别为商品表、库存表、订单表。首先使用Java代码去处理用户下订单public class Shopping { @Transactional(rollbackFor = "Exception.class") public void 购买(商品ID,购买数量){ //首先查看商品库存 int 库存数量 = select(商品ID); if(购买数量 > 库存数量) { 抛出异常,事务回滚 }

2021-10-27 23:11:09 2390 1

原创 CentOS安装Docker

1、首先安装Docker需要的依赖yum install -y yum-utils device-mapper-persistent-data lvm22、添加yum源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo3、安装yum install docker-ce docker-ce-cli containerd.io --allowerasing4、启动、设置开机自

2021-10-26 20:02:53 216 1

原创 悲观锁、乐观锁、公平锁、非公平锁、独占锁、共享锁、可冲入锁和自旋锁你懂了吗?

悲观锁:悲观锁是指心态十分的悲观,认为每次去读数据时,别人都有可能会对数据进行修改,所以悲观锁每次读数据时都会对数据进行上锁操作,所以synchronized和ReentrantLock都是悲观锁,另外对于MySQL数据库,“SELECT * FROM xxx FOR UPDATE”,其实利用了MySQL的行锁,会对该行内容上锁,上锁期间别的线程无法进行操作,另外MySQL还有表锁。乐观锁:乐观锁是指心态十分的乐观,认为每次去读数据时,别人都不会对数据进行修改,乐观锁不会加锁,因为加锁是一种十分影响并发性

2021-10-19 19:22:50 1454 1

原创 volatile关键字内存不可见问题最详细解释(与synchronized的区别)

谈到内存可见性,首先让我们看看在多线程下处理共享变量时Java的内存模型Java共享内存模型规定,将所有的变量都存放在主内存中,当线程使用变量时,会把主内存中的变量复制到自己的工作空间或者叫工作内存中,线程读写变量时操作的是自己的工作内存中的变量。Java内存模型是一个抽象的概念,下面来看一下实际的工作内存图中所示是一个双核CPU系统架构,每个核有自己的控制器和运算器,运算器执行算术逻辑运算。每个核有自己的一级缓存,在有些架构里面还有一个所有CPU都共享的二级缓存。Java内存模型里面的工作内存,

2021-10-19 13:14:38 353

原创 Redis的持久化 RDB和AOF的区别

持久化触发方式:RDB持久化的触发方式分为手动触发和自动触发手动触发:SAVE和BGSAVE命令都可以生成RDB文件。SAVE命令会阻塞Redis服务器进程,直到RDB文件创建完毕为止,在Redis服务器阻塞期间,服务器不能处理任何命令请求。而BGSAVE会fork出一个子进程,由子进程来负责创建RDB文件,父进程(Redis主进程)则继续处理请求。BGSAVE仅仅在fork子进程时会阻塞主线程一会儿,而SAVE则是整个过程都会阻塞主线程,因此SAVE已基本被废弃,线上环境要杜绝SAVE命令的使用。

2021-10-12 00:53:36 763

原创 Redis配置文件详解

配置文件详解//默认bind仅支持本机的访问,如果想允许远程连接,需要把本条给注释掉bind 127.0.0.1//保护模式,当没有设置bind && 没有密码时(两者需同时满足)此时,只有本机可以访问protected-mode no//默认端口号为6379(Redis作者女神的姓名9键),这里可以修改默认端口port 6379//一个空闲的客户端维持多少秒回关闭,0表示永不关闭timeout 0//对客户端的一种心跳检测,每隔n秒种检测一次,单位为秒,如果设置为

2021-10-11 11:56:13 67

原创 Redis基础命令

Redisbin目录文件详解Redis-benchmark:性能测试工具,可以在自己本地运行,看看自己本地性能如何redis-check-aof:修复有问题的AOF文件redis-check-dump:修复有问题的dump.rdb文件redis-sentinel:Redis集群使用redis-server:Redis服务器启动命令redis-cli:客户端通用命令#查看当前库所有keykeys *#判断某个key是否存在exists key#查看key的类型type key

2021-10-11 10:44:27 93

原创 CentOS服务器安装JDK

官网下载JDK将文件上传到服务器的/usr/local/文件夹中解压文件,删除原本的压缩文件(解压后,会自动重命名文件)tar -zxvf jdk-8u301-linux-x64.tar.gzrm -rf jdk-8u301-linux-x64.tar.gz4. 配置环境变量vim ~/.bash_profile#在最后面加入如下配置:JAVA_HOME=/usr/java/jdk1.8.0_301CLASSPATH=.:$JAVA_HOME/lib.tools.jarPAT.

2021-10-09 11:36:54 79

原创 ssh配置文件

刚买服务器的小伙伴可能发现,无法使用自己本地电脑的工具连接远程的服务器,原因是什么呢?是因为没有配置远程服务器的ssh文件,在这里我以白嫖的华为服务器为例这里附上网址:https://activity.huaweicloud.com/free_test/index.html接下来说正事:如何配置ssh文件使用服务器厂商自带的管理平台登陆服务器打开配置文件 sudo vim /etc/ssh/ssdh_config去掉注释,暴露22端口 #Port 22去掉注释,允许使用密码进行认证登陆

2021-10-09 11:10:08 112

netty(Netty资料,看懂就会Netty了)

本资源由网络搜集,非常详细,由浅到深,非常适合想学习Netty的朋友

2021-10-19

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

TA关注的人

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