- 博客(8)
- 资源 (6)
- 收藏
- 关注
转载 TX-LCN分布式事务原理介绍
框架介绍LCN分布式事务框架其本身并不创建事务,而是基于对本地事务的协调从而达到事务一致性的效果核心步骤创建事务组是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,然后拿到事务标示GroupId的过程。添加事务组添加事务组是指参与方在执行完业务方法以后,将该模块的事务信息添加通知给TxManager的操作。关闭事务组是指在发起方执行完业务代码以后,将...
2018-11-26 17:02:13 420
原创 分布式事务解决方案框架(LCN)
事物概念事物特性(ACID)原子性(A)所谓的原子性就是说,在整个事务中的所有操作,要么全部完成,要么全部不做,没有中间状态。对于事务在执行中发生错误,所有的操作都会被回滚,整个事务就像从没被执行过一样。一致性(C)事务的执行必须保证系统的一致性,就拿转账为例,A有500元,B有300元,如果在一个事务里A成功转给B50元,那么不管并发多少,不管发生什么,只要事务执行成功了,那...
2018-11-26 13:33:00 238
原创 内存屏障
内存屏障(Memory barrier)为什么会有内存屏障每个CPU都会有自己的缓存(有的甚至L1,L2,L3),缓存的目的就是为了提高性能,避免每次都要向内存取。但是这样的弊端也很明显:不能实时的和内存发生信息交换,分在不同CPU执行的不同线程对同一个变量的缓存值不同。 用volatile关键字修饰变量可以解决上述问题,那么volatile是如何做到这一点的呢?那就是内存屏障,内存屏障...
2018-11-24 17:43:56 146
原创 synchronized的实现原理
常见三种使用方法: 1)普通同步方法,锁是当前实例; 2)静态同步方法,锁是当前类的Class实例,Class数据存在永久代中,是该类的一个全局锁; 3)对于同步代码块,锁是synchronized括号里配置的对象。 Java中的每个对象都可以作为锁。当一个线程访问同步代码块时,需要首先获取锁,退出代码块或抛出异常时必须释放锁 “锁”到底是个什么东东?...
2018-11-24 17:39:18 144
原创 并发框架Disruptor场景应用
今天用一个停车场问题来加深对Disruptor的理解。一个有关汽车进入停车场的问题。当汽车进入停车场时,系统首先会记录汽车信息。同时也会发送消息到其他系统处理相关业务,最后发送短信通知车主收费开始。看了很多文章,里面的代码都是大同小异的,可能代码真的是很经典。以下代码也是来源网络,只是自己手动敲的,加了一些注释。代码包含以下内容:1) 事件对象Event2)三个消费者Handler3)一...
2018-11-21 11:40:46 400
原创 互联网 API 接口幂等性设计
WEB 资源或 API 方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部多次调用对系统的影响是一致的。幂等性是分布式系统设计中的一个重要概念,对超时处理、系统恢复等具有重要意义。声明为幂等的接口会认为外部调用失败是常态, 并且失败之后必然会有重试。例如,在因网络中断等原因导致请求方未能收到请求返回值的情况下,...
2018-11-15 14:06:08 217
原创 Nginx配置之负载均衡、限流、缓存、黑名单和灰度发布
一、Nginx安装(基于CentOS 6.5)1.yum命令安装yum install nginx –y(若不能安装,执行命令yum install epel-release)2. 启动、停止和重启service nginx startservice nginx stopservice nginx restart浏览器中 输入服务器的 ip 地址,即可看到相应信息3. ...
2018-11-15 14:04:23 528
原创 nginx如何设置防盗链
首先,我们来看下nginx如何设置防盗链如果您使用的是默认站点,也就是说,您的站点可以直接输入服务器IP访问的,使用root登录,修改 /usr/local/nginx/conf/nginx.conf 这个配置文件。如果您新建了站点,那么修改/usr/local/nginx/conf/vhost/你的域名.conf 这个配置文件,找到: 1 2 3 4 ...
2018-11-15 13:24:42 150
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人