自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot整合Redis分布式锁最佳实践

什么是分布式锁在单机环境中,一般在多并发多线程场景下,出现多个线程去抢占一个资源,这个时候会出现线程同步问题,造成执行的结果没有达到预期。我们会用线程间加锁的方式,比如synchronized,lock,volatile,以及JVM并发包中提供的其他工具类去处理此问题。但是随着技术的发展,分布式系统的出现,各个应用服务都部署在不同节点,由各自的JVM去操控,资源已经不是在 线程 之间的共享,而是变成了 进程 之间的共享,以上解决线程同步问题的办法已经无法满足。因此,引入了分布式锁的概念。分布式锁,既

2020-07-09 22:23:17 4061 2

原创 Java Lock实现多线程之间的通讯和协作 实践

Java 实现多线程之间的通讯和协作

2022-08-07 18:28:57 294

原创 springboot 配置jwt实现登录鉴权

2022-03-11 15:56:45 5705 1

原创 Kafka基本概念介绍

什么是kafkaApache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息中间件,只是粗略的讲解,目前kafka已经可以做更多的事情。举个例子,生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100个鸡蛋,消费者1秒钟只能吃50个鸡蛋,那要不了一会,消

2020-07-26 18:17:36 357

转载 Spring事务之事务超时和回滚规则

事务超时为了使一个应用程序很好地执行,它的事务不能运行太长时间。因此,声明式事务的下一个特性就是它的超时。假设事务的运行时间变得格外的长,由于事务可能涉及对数据库的锁定,所以长时间运行的事务会不必要地占用数据库资源。这时就可以声明一个事务在特定秒数后自动回滚,不必等它自己结束。由于超时时钟在一个事务启动的时候开始的,因此,只有对于那些具有可能启动一个新事务的传播行为(PROPAGATION_REQUIRES_NEW、PROPAGATION_REQUIRED、ROPAGATION_NESTED)的方法来

2020-07-23 12:21:40 3019

转载 Spring事务之只读

定义从设置的时间点(时间点beta)开始到事务结束的过程中,该事务将看不见其他事务所提交的数据,即查询中不会出现别人在beta之后提交的数据。如果一个事务只对数据库执行读操作,那么该数据库就可能利用那个事务的只读特性,采取某些优化措施。通过把一个事务声明为只读,可以给后端数据库一个机会来应用那些它认为合适的优化措施。由于只读的优化措施是在一个事务启动时由后端数据库实施的, 因此,只有对于那些具有可能启动一个新事务的传播行为(PROPAGATION_REQUIRES_NEW、PROPAGATION_REQ

2020-07-23 12:01:46 984

转载 Spring事务之四大隔离级别

多个事务之间会产生的问题在一个典型的应用程序中,多个事务同时运行,经常会为了完成他们的工作而操作同一个数据。数据库的隔离性与并发控制有很大关系。并发虽然是必需的,但是会导致以下问题:脏读(Dirty read)脏读发生在一个事务读取了被另一个事务改写但尚未提交的数据时。如果这些改变在稍后被回滚了, 那么第一个事务读取的数据就会是无效的。不可重复读(Nonrepeatable read)不可重复读发生在一个事务执行相同的查询两次或两次以上,但每次查询结果都不相同时。这通常是由于另一个并发事务在两次

2020-07-23 09:53:37 641

原创 Spring事务传播机制--实例讲解

对于本地事务的概念,在这里就不做过多的解释了,本篇文章主要是实例讲解本地事务的传播机制。对事务没有多少接触的人来说,可能对事务的传播机制理解的不那么透彻,下面通过4个表,2个事务方法,来实例验证一下事务的传播事务的特性原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。

2020-07-22 00:23:41 1686 1

原创 springboot模块化搭建nacos微服务

为什么要模块化随着项目的不断发展,需求和业务的不断细化与添加,工程代码会越来越庞大,包结构也越来越复杂,不同方面的代码之间相互耦合,杂乱而无章,并且开发人员也都同时在这一个项目里修改,合并代码时必然会出现各种各样的问题,而且当一位新参与进项目的开发人员来说,很难对项目有一个直观的感受,这间接的导致了开发效率的下降。多模块化,正式解决上述问题而产生的,总的来说模块化开发有以下几点好处:降低耦合度。每个模块都有自己的解释,开发者可以更清晰的定制自己模块的内容项目代码更加清晰。功能模块划分,项目结构更加

2020-07-08 14:56:39 2285

翻译 docker-compose方式搭建nacos集群

环境节点ipdocker版本服务器192.168.0.20119.03.11centos7192.168.0.20219.03.11centos7192.168.0.20319.03.11centos7安装docker-compose环境首先检测是否有docker-compose环境执行 docker-compose version如果没有择安装docker-compose安装docker-compose环境yum install -y py

2020-06-24 18:15:09 4363

翻译 springboot通过aop+druid配置多数据源实现mysql读写分离

在上一篇,介绍了docker搭建mysql主从复制集群 docker搭建mysql主从复制读写分离的方案也可通过中间件代理,如mysql-proxy,mycat。通过中间件代理,可以很好的做到负载均衡,以及自动故障切换,高可用性这里用另一种方式,通过aop和druid来实现读写分离druidDruid是阿里巴巴开源的一个数据源,主要用于java数据库连接池,相比spring推荐的DBCP和hibernate推荐的C3P0、Proxool数据库连接池,Druid在市场上占有绝对的优势;为什么选择D

2020-06-23 16:18:28 614

翻译 docker最快速度搭建mysql主从复制集群

docker拉去mysql镜像 首先在服务器上装好docker,我的服务器是centos7 docker的安装十分简单,具体参考[link](https://www.youkuaiyun.com/).

2020-06-22 14:18:19 285

空空如也

空空如也

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

TA关注的人

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