0%

有人把生活过成了诗,有人却在彷徨挣扎…

总有一些人能让自己触动心弦,仔细想,也许他们并没有比自己“能耐”多少,或许只是自己已习惯奔波,没有了理想,活在世俗里无法自拔…

我想试着重新生活,找回自己喜欢并且想要成为的那个我,也许吧,这一次我能持之以恒。不再愿意立下各种 flag,不是因为害怕被啪啪打脸,反正都是给自己的。

但是,为什么每次都是想着要改变自己了,真有这么讨厌自己吗?每次都想要改变什么了?给自己制定一套目标,努力克制自己去实现?追寻自己的内心去生活不应该是自己向往的吗,我找不到答案。

提到分布式应用,就不得不考虑分布式事务。在分布式事务中,常见的有 CAPBASE 理论,解决方案也有很多种,比如:2PCTCC 、最终一致性等。

2PC(两阶段提交)比较适合单块应用,跨多个库的分布式事务。因为严重依赖于数据库层面来搞定复杂的事务,效率很低,绝对不适合高并发的场景,而且,对于微服务而言,不推荐一个服务出现跨多个数据库操作, 如果需要操作其它数据库数据,推荐通过调用别的服务接口来实现。

TCC 属于强一致性事务的方案,适用资金流转业务相关业务,比如:支付、交易等场景。根据 CAP 理论,这种实现需要牺牲可用性。

如果是一般的分布式事务场景,比如:订单插入之后要调用库存服务更新库存,库存数据没有资金那么的敏感,可以用可靠消息最终一致性方案。

下面是一种可靠消息最终一致性事务方案的实现流程:

阅读全文 »

通俗的理解,事务是一组原子操作单元。我们希望一些列的操作能够全部正确执行,如果这一组操作中的任意一个步骤发生错误,那么就需要回滚之前已经完成的操作。也就是同一个事务中的所有操作,要么全都正确执行,要么全都不要执行。

传统的单机应用系统一般使用一个关系型数据库,利用数据库事务来保证数据的一致性,下面先了解一下本地数据库事务的一些特性。

一、本地数据库事务

事务从数据库角度说,就是一组 SQL 指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。

关系型数据库(例如:MySQLSQL ServerOracle 等)事务都有以下几个特性:原子性Atomicity)、一致性Consistency)、隔离性或独立性Isolation和持久性Durabilily),简称就是 ACID

  • 原子性:表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。
  • 一致性:表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。
  • 隔离性:表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见。
  • 持久性:表示已提交的数据在事务执行失败时,数据的状态都应该正确。
阅读全文 »

再强大的内心,估计也抵抗不住岁月的流逝吧…那天和媳妇聊天,说起十年前,觉得十年好遥远,现在觉得十年前就想是在昨天。

今天是 2018 年的最后一天,像去年的今天一样,仿佛就像是在昨天,想着总结一下过去的一年,发现啥都写不出来。

今年为了西安房子的装修,从 6 月份后几乎每隔一月就在西安和北京奔波一回。装修房子的过程是痛苦的,什么都不懂,多花了不少冤枉钱,效果也不太满意,如果还会有第二套房子装修,我想应该会好很多吧!

工作上马马虎虎,个人能力感觉也没什么长进。又一波互联网大寒冬来袭,倒了一大批创业公司,各大公司也纷纷传出裁员的新闻,瑟瑟发抖,越来越焦虑了!

阅读全文 »

接着上次 JVM 中 GC 机制的总结,这次主要复习一下垃圾收集的常用算法和 Minor GC、Full GC 相关的一些知识点。

一、垃圾收集算法

1.1 标记 - 清除(Mark-Sweep)

算法分成 “标记”、“清除” 两个阶段:首先标记出所有需要回收的对象(两次标记),在标记完成后统一回收所有被标记的对象。如下图所示:

阅读全文 »
Title - Artist
0:00