8 MayMatrix

尚未进行身份认证

J2EE .

等级
TA的排名 5k+

常量池、字符串常量池的整理

由于之前研究了一下JVM的内存划分,对里面方法区的常量池一知半解,于是想要探究一下先看这篇写得比较清晰https://blog.csdn.net/tophawk/article/details/78704074(jdk1.8版本)https://blog.csdn.net/youyou1543724847/article/details/52337257以下内容有点儿乱,还未整理...

2019-09-26 12:56:03

分布式事务[7]柔性事务:可靠消息最终一致性

柔性事务:可靠消息最终一致性消息发送一致性:是指产生消息的业务动作与消息发送的一致。也就是说,如果业务操作成功,那么由这个业务操作所产生的消息一定要成功投递出去(一般是发送到kafka、rocketmq、rabbitmq等消息中间件中),否则就丢消息。柔性事务、可靠消息最终一致性、异步确保性下面用伪代码进行演示消息发送和投递的不可靠性:1、先进行数据库操作,再发送消息...

2019-09-04 16:24:09

分布式事务[6]柔性事务 :TCC两阶段补偿型

6.0柔性事务:TCC两阶段补偿型2018-02-0503:12:0422,77112TCC方案是可能是目前最火的一种柔性事务方案了。关于TCC(Try-Confirm-Cancel)的概念,最早是由PatHelland于2007年发表的一篇名为《LifebeyondDistributedTransactions:anApostate’sOpinion》...

2019-09-04 16:25:35

浅谈,分布式事务与解决方案

分布式事务与主流解决方案之理论篇前言分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。产生原因...

2019-09-04 16:29:17

分布式事务:不过是在一致性、吞吐量和复杂度之间,做一个选择

这是一个开撕的话题,我经历过太多的关于分布式事务的需求:“有没有简单的方案,像使用数据库事务那样,解决分布式数据一致性的问题”。特别是微服务架构流行的今天,一次交易需要跨越多个“服务”、多个数据库来实现,传统的技术手段,已经无法应对和满足微服务情况下这些复杂的场景了。针对微服务下的交易业务如何保障数据一致性,本文尽量做到理论结合实践,将我们在实际产品中用到的分布式事务实现机制,和大家扒一扒,希望能...

2019-09-04 16:33:22

Spring Cloud分布式事务终极解决方案探讨

开源项目我们利用消息队列实现了分布式事务的最终一致性解决方案,请大家围观。可以参考GithubCoolMQ源码,项目支持网站:http://rabbitmq.org.cn,最新文章或实现会更新在上面二前言阿里2017云栖大会《破解世界性技术难题!GTS让分布式事务简单高效》中,阿里声称提出了一种破解世界性难题之分布式事务的终极解决方案,无论是可靠性、还是处理速率都领先于市面上所有...

2019-09-04 16:37:21

详细解读 Github 上发布仅一个月就获得4k+ star 的分布式事务解决方案

导读:阿里分布式事务开源项目Fescar,自1月9日发布第一个版本以来,便受到了开发者的极大关注,目前收获的star数已超过4700,本文将详细解读这款分布式事务解决方案,希望对您有所帮助。FESCARonGitHubhttps://github.com/alibaba/fescar更新:FESCAR已更新为Seata微服务倡导将复杂的单体应用拆分为若干...

2019-09-04 17:30:22

源码阅读:全方位讲解LongAdder

高并发下计数功能最好的数据结构就是LongAdder与DoubleAdder,低并发下效率也非常优秀,这是我见过的java并发包中设计的最为巧妙的类,从软硬件方面将java并发累加操作优化到了极致,所以应该我们应该弄清楚它的每一行代码为什么要这样做,它俩的实现大同小异,下面以LongAdder类为例介绍下它的实现。Striped64类publicclassLongAdderextend...

2019-09-05 09:35:56

jdk1.8 LongAdder源码学习

LongAdder是jdk8新增的用于并发环境的计数器,目的是为了在高并发情况下,代替AtomicLong/AtomicInt,成为一个用于高并发情况下的高效的通用计数器。高并发下计数,一般最先想到的应该是AtomicLong/AtomicInt,AtmoicXXX使用硬件级别的指令CAS来更新计数器的值,这样可以避免加锁,机器直接支持的指令,效率也很高。但是AtomicXXX中的CAS...

2019-09-05 09:54:21

Java中的Unsafe

Java和C++语言的一个重要区别就是Java中我们无法直接操作一块内存区域,不能像C++中那样可以自己申请内存和释放内存。Java中的Unsafe类为我们提供了类似C++手动管理内存的能力。Unsafe类,全限定名是sun.misc.Unsafe,从名字中我们可以看出来这个类对普通程序员来说是“危险”的,一般应用开发者不会用到这个类。Unsafe类是"final"的,不允许继承。且构造函数...

2019-09-05 09:43:04

分布式事务[4] 柔性事务:最大努力通知

5.0柔性事务:最大努力通知2018-02-0502:51:055,9560最大努力通知型(Best-effortdelivery)是最简单的一种柔性事务,适用于一些最终一致性时间敏感度低的业务,且被动方处理结果不影响主动方的处理结果。典型的使用场景:如银行通知、商户通知等。最大努力通知型的实现方案,一般符合以下特点:1、不可靠消息:业务活动主动方,...

2019-09-04 16:21:40

分布式事务[3]3.0 JTA规范

3.0JTA规范2018-02-0502:31:404,9081JTA规范下载地址:http://download.oracle.com/otn-pub/jcp/jta-1.1-spec-oth-JSpec/jta-1_1-spec.pdfJTA规范事务模型Java事务API(JTA:JavaTransactionAPI)和它的同胞Java事务服务(JTS...

2019-09-04 16:18:33

分布式事务[2]mysql 对XA事务的支持

2.0mysql对XA事务的支持2018-02-0502:20:504,9941MySQL从5.0.3开始支持XA分布式事务,且只有InnoDB存储引擎支持。MySQLConnector/J从5.0.0版本之后开始直接提供对XA的支持。需要注意的是,在DTP模型中,mysql属于资源管理器(RM)。而一个完整的分布式事务中,一般会存在多个RM...

2019-09-04 16:17:15

分布式事务[1]分布式事务概述

1.0分布式事务概述2018-02-0502:05:2617,34181、事务简介事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务由一组SQL语句组成。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。原子性(atomicity):个事务是...

2019-09-04 16:14:13

CAP与BASE理论

1.经典的分布式系统理论-CAP2000年7月,加州大学伯克利分校的EricBrewer教授在ACMPODC会议上提出CAP猜想。Brewer认为在设计一个大规模的分布式系统时会遇到三个特性:一致性(consistency)、可用性(Availability)、分区容错(partition-tolerance),而一个分布式系统最多只能满足其中的2项。2年后,麻省理工学院的Seth...

2019-09-04 16:11:23

分布式事务-初步理解及解决方案

0Github1面试题分布式事务了解吗?你们如何解决分布式事务问题的?2考点分析只要聊到做了分布式系统,必问分布式事务,若你对分布式事务一无所知的话,确实很坑,起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。现在面试,分布式系统成了标配,而分布式系统带来的分布式事务也成了标配.你做系统肯定要用事务,那你用事务的话,分布式系统之后肯定要用分布式事务.先不...

2019-09-04 15:51:12

分布式锁的三种实现方式及对比分析(代码实现细节)

一、问题介绍日常工作中很多场景下需要用到分布式锁,例如:任务运行(多个节点同一时刻同一个任务只能在一个节点上运行(分片任务除外)),交易请求接收(前端交易请求发送时,可能由于两次提交,后端需要识别出这是一个交易)等,怎么样实现一个分布式锁呢?一般有:zookeeper、redis、database等三种实现方式。二、分布式锁实现2.1、zookeeper2.1.1、原理zook...

2019-09-04 15:23:06

分布式锁解决并发的三种实现方式

在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的JavaApi并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案:分布式锁一般有三种实现方式:1....

2019-09-04 15:20:59

Java8内存模型—永久代(PermGen)和元空间(Metaspace)

从jdk开始,就开始了永久代的转移工作,将譬如符号引用(Symbols)转移到了nativeheap;字面量(internedstrings)转移到了javaheap;类的静态变量(classstatics)转移到了javaheap。但是永久在还存在于JDK7中,直到JDK8,永久代才完全消失,转而使用元空间。而元空间是直接存在内存中,不在java虚拟机中的,因此元空间依赖于内存大小。当...

2019-09-04 09:43:12

JDK8 JVM内存模型

正文内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行不同的JVM对于内存的划分方式和管理机制存在着部分差异结合JVM虚拟机规范,来探讨经典的JVM内存布局运行时内存:1ProgramCounterRegister(程序计数寄存...

2019-09-04 08:50:22

查看更多

勋章 我的勋章
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。