LinkNemo

  • 随遇而安

    深入 Spring Boot:排查 @Transactional 引起的 NullPointerException(转载)

    原文出处:hengyunabc写在前面这个demo来说明怎么排查一个@Transactional引起的NullPointerException。https://github.com/hengyunabc/spring-boot-inside/tree/master/demo-Transactional-NullPointerException定位NullPointerException的代码Demo是一个简单的spring事务例子,提供了下面一个StudentDao,并用@Transactional来声明事务:@Component@TransactionalpublicclassStudent......
    2018/01/16 10:32:01发表 21赏阅 0点评
  • 随遇而安

    分布式系统常见的事务处理机制(转载)

    原文出处:waylau为保障系统的可用性、可靠性以及性能,在分布式系统中,往往会设置数据冗余,即对数据进行复制。举例来说,当一个数据库的副本被破环以后,那么系统只需要转换到其他数据副本就能继续运行下去。另外一个例子,当访问单一服务器管理的数据的进程数不断增加时,系统就需要对服务器的数量进行扩充,此时,对服务器进行复制,随后让它们分担工作负荷,就可以提高性能。但同时,如何保障多个数据节点之间数据的一致以及如何处理分布式事务,将成为为一个复杂的话题。本文将介绍常用的事务处理机制。CAP定理CAP定理(也称为Brewer定理),是由计算机科学家EricBrewer提出的,即在分布式计算机系统不可能同......
    2018/01/09 14:44:53发表 22赏阅 0点评
  • Nemo

    关于分布式系统中事务相关简单探索

    数据的原子性对于一个系统而言,重要性不言而喻。这里拿普遍的购物付款举个栗子:      你在淘宝上买了一件商品,结账的时候,其实淘宝会帮你处理两件事情:      1、从你的余额扣款。      2、添加你的购物订单。如果这时候,系统在扣除了你的余额后,忽然挂掉了,这时候该怎么办?这时候你的账户被扣钱了,但是你的订单并没有添加,淘宝的系统就会出现数据不一致的情况了。类似的场景在各种类型的系统中都会有。本质其实归纳起来......
    2018/01/05 15:45:47发表 50赏阅 0点评
  • Nemo

    一些关于数据库事务的基本原则总结

    事务:事务是一组原子性sql查询语句,被当作一个工作单元。若mysql对改事务单元内的所有sql语句都正常的执行完,则事务操作视为成功,所有的sql语句才对数据生效,若sql中任意不能执行或出错则事务操作失败,所有对数据的操作则无效(通过回滚恢复数据)。事务有四个属性:1、原子性:事务被认为不可分的一个工作单元,要么全部正常执行,要么全部不执行。2、一致性:事务操作对数据库总是从一种一致性的状态转换成另外一种一致性状态。3、隔离性:一个事务的操作结果在内部一致,可见,而对除自己以外的事务是不可见的。4、永久性:事务在未提交前数据一般情况下可以回滚恢复数据,一旦提交(commit)数据的改变则变......
    2017/12/25 16:40:11发表 53赏阅 2点评
  • Nemo

    Spring 使用注解方式进行事务管理

    以下是Springmvc中比较常用的,springboot中则省去了配置,直接使用注解打开即可。不过核心原理还是一样的。使用步骤:步骤一、在spring配置文件中引入<tx:>命名空间<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springf......
    2017/11/30 19:18:11发表 121赏阅 0点评
  • Nemo

    事务设计指南

    1,保持事务短小2,尽量避免事务中rollback3,尽量避免savepoint4,默认情况下,依赖于悲观锁5,为吞吐量要求苛刻的事务考虑乐观锁6,显示声明打开事务7,锁的行越少越好,锁的时间越短越好STARTTRANSACTION:开始事务,autocommit设为0,如果已经有一个事务在运行,则会触发一个隐藏的COMMITCOMMIT:提交事务,保存更改,释放锁ROLLBACK:回滚本事务对数据库的所有更改,然后结束事务,释放锁SAVEPOINTsavepoint_name:创建一个savepoint识别符来ROLLBACKTOSAVEPOINTROLLBACKTOSAVEPOINTsav......
    2017/11/07 14:19:33发表 78赏阅 0点评
  • Nemo

    数据库事务设计相关

    1,保持事务短小2,尽量避免事务中rollback3,尽量避免savepoint4,默认情况下,依赖于悲观锁5,为吞吐量要求苛刻的事务考虑乐观锁6,显示声明打开事务7,锁的行越少越好,锁的时间越短越好STARTTRANSACTION:开始事务,autocommit设为0,如果已经有一个事务在运行,则会触发一个隐藏的COMMITCOMMIT:提交事务,保存更改,释放锁ROLLBACK:回滚本事务对数据库的所有更改,然后结束事务,释放锁SAVEPOINTsavepoint_name:创建一个savepoint识别符来ROLLBACKTOSAVEPOINTROLLBACKTOSAVEPOINTsav......
    2017/05/26 10:44:57发表 268赏阅 0点评

最新点击

热门人物

热门标签

回到顶部