- 博客(23)
- 资源 (17)
- 收藏
- 关注
原创 分布式事务的理论知识
Base理论是对CAP理论的一个拓展,它通过牺牲强一致性来获得可用性,Base理论中的Base是基本可用(Basically Available)、软状态(Soft State)和最终一致性(Eventually Consistent)的缩写,系统故障时,允许部分数据不可用,但是会保证核心的功能可用,允许数据在一段时间内不一致,但是经过一段时间后,数据最终是一致的。系统在满足分区容错性的前提下,一致性和可用性就是矛盾的,所以最终会有AP、CP、CA三种组合方式。
2024-05-20 20:25:55 331
原创 JVM 底层原理详解
Java中,引用和对象是有关联的,如果要操作对象则需要用引用进行,因此,很显然一个简单的办法就是通过引用计数来判断一个对象是否可以回收,简单来说,给对象加引用的计数器,当有地方应用的时候,这个计数器就加1,当有一个引用失效的时候这个计数器就减1,当这个计数器为零的时候意味着这个对象不可能再被使用,所以这个对象就是可回收对象。对于年老代比较多的应用,可以提高效率。说明:main方法进行m1()方法的调用,方法的调用意味着,方法进入的栈,然后m1中又存在着 t1 对象的引用,那么就验证了第1条。
2024-05-17 21:35:15 698
原创 分布式事务基本概念
将一个大的应用系统拆分为多个可以独立部署的应用服务,需要各个服务远程协助才能完成某些事务操作,总的来说,分布式事务会在一下3中场景下产生,分别是夸JVM进程、跨数据库实例、多服务访问单数据库。总的来说,数据一致性问题包含数据多副本、调用超时、缓存与数据库不一致、多个缓存节点数据不一致等场景。业界对于数据一致性问题提出了相应的解决方案,目前比较成熟的方案有。的演变,很多互联网企业系统架构已经向服务化网格演变。分布式架构目标和架构的原则。
2024-05-16 21:50:05 377
原创 Spring事务的实现原理
Spring框架支持对于事务的管理功能,开发人员使用Spring框架能极大的简化对于数据库事务的管理操作,不必进行手动开启事务,提交事务,回滚事务,就是在配置文件或者项目的启动类配置Spring事务相关的注解驱动,使用@Transaction注解即可,既开启并使用Spring事务管理功能。NOT_SUPPORTED:适用于发送提示信息、站内信、短信、邮件等,这类场景要求不影响系统的主体业务逻辑,即使操作失败也不应该对主体逻辑产生影响,不能使主体逻辑的事务回滚。Spring 事务失效的场景。
2024-05-15 22:11:00 580
原创 Mysql事务实现原理
当事务提交时,需要先将事务日志写入Log Buffer,这些写入Log Buffer的日志并不是随着事务的提交立刻写入磁盘的,而是根据一定的规则将Log Buffer中的数据刷写到磁盘,从而保证了Redo Log文件中的数据的持久化,这种刷盘规则可以通过innodb_flush_log_at_trx_commit 变量控制,innodb_flush_log_at_trx_commit变量可取的值有0、1、2,默认是1。事务提交后Undo Log 会放入待删除的列表,等待后台的线程进行删除操作。
2024-05-14 21:59:52 843
原创 Mysqls事物基本概念
MVCC机制通过在每行数据表记录的后面保存两个隐藏的列来实现的,一个列用来保存行的创建版本号,另外一个保存行的过期版本号,每当有新的事务执行时,版本号就会自动递增,事务开始时刻的版本号作为事务的版本号,用于和查询到的每行记录的版本号作对比。本质上,MVCC机制保存了数据库中数据在某个时间点上的数据快照,意味着同个读操作的事务,按照相同的条件查询数据,无论查询多少次,结果都是一样的,也意味着不同的事务在同一个时刻看到同一个表的数据可能是不同的。InnoDB中的MVCC原理。
2024-05-14 21:53:23 294
原创 Springboot集成Sharding-Jdbc实现分库分表
Sharding-Jdbc介绍Sharding-Jdbc在3.0后改名为ShardingSphere它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。Sharding-Sphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数
2020-09-28 10:44:17 705
原创 解决myBatis下不能嵌套jar文件的问题
MyBatis扫描通过VFS来实现在SpringBoot中,由于是嵌套Jar,导致Mybatis默认的VFS实现DefaultVFS无法扫描嵌套Jar中的类。说俗一点就是:你的项目要引入别人的jar包,别人的jar包也是有集成mybatis相关的xml文件内容的解决办法,实现自定义的VFS,参考DefaultVFS增加对SpringBoot嵌套JAR的处理。1:新建一个类SpringBootVfs package com.tortoise.workflow.config; ..
2020-09-25 16:18:28 291
原创 高并发面试题知识归纳
大纲: 1:volatile 是java 虚拟机提供的轻量级的同步机制1.1:保证内存可见性1.2:不保证原子性1.3:禁止指令重排2:JMM java内存模型2.1:JMM关于同步的规定: 1 线程解锁前,必须把共享变量的值刷新回主内存中 2 线程加锁前,必须读取主内存的最新值到自己的工作内存(栈...
2019-11-01 14:59:43 272
原创 单点登录解决方案-CAS
课程目标目标1:搭建单点登录服务端,开发单点登录客户端目标2:实现CAS 认证数据源设置目标3:更换CAS 登录页面目标4:掌握CAS与SpringSecurity集成 目标5:完成用户中心单点登录功能 1.开源单点登录系统CAS入门1.1 什么是单点登录单点登录(Sin...
2018-08-08 11:01:52 458
原创 ReadWriteLock : 读写锁 代码Demo
package com.atguigu.juc;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;/* * 1. ReadWriteLock : 读写锁 * * 写写/读写 需要“互斥” * 读读 不需要互斥 * */public cl...
2018-07-12 15:26:47 266
原创 编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求输出的结果必须按顺序显示
package com.atguigu.juc;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/* * 编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A、B、C,每个线程...
2018-07-12 15:25:15 2297
原创 同步锁 Lock
package com.atguigu.juc;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/* * 一、用于解决多线程安全问题的方式: * * synchronized:隐式锁 * 1. 同步代码块 * * 2. 同步方法 * * jdk 1.5 后: * 3....
2018-07-12 15:23:17 181
原创 Docker安装mysql以及tomcat
CentOS Docker 安装Docker支持以下的CentOS版本:CentOS 7.3 (64-bit)前提条件目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.3...
2018-07-12 14:24:18 729
原创 solr colud 集群环境搭建
1. 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。 SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使...
2018-07-12 13:50:31 248
原创 solr单节点环境搭建
1. Solr服务搭建1.1. Solr的环境Solr是java开发。需要安装jdk。安装环境Linux。需要安装Tomcat。1.2. 搭建步骤第一步:把solr 的压缩包上传到Linux系统第二步:解压solr。第三步:安装Tomcat,解压缩即可。第四步:把solr部署到Tomcat下。第五步:解压缩war包。启动Tomcat解压。第六步:把/root/solr-4.10.3/exampl...
2018-07-12 11:53:13 373
原创 redis集群搭建
1. Redis的安装 1.1. Redis的安装Redis是c语言开发的。安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yum install gcc-c++ 安装步骤:第一步:redis的源码包上传到linux系统。第二步:解压缩redis。第三步:编译。进入redis源码目录。make 第四步:安装。make install PREFIX=/usr/local/redis...
2018-07-12 11:44:06 121
原创 nginx Cloud 集群搭建
1 目标反向代理的使用方法。掌握nginx作为负载均衡器的使用方法。掌握nginx实现web缓存方法。 2 nginx介绍2.1 什么是nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等...
2018-07-12 11:12:32 615
shiro+SpringMVC+Spring+mybatis+maven+mybatis 自动刷新+ Quartz scheduler 定时器
2016-10-13
shiro+SpringMVC+Spring+mybatis+maven+mybatis 自动刷新xml
2016-10-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人