前言

近年来,微服务架构(Microservices Architecture)已经成为一种主流的软件开发方法论,所谓微服务( Microservices ),就是一些具有足够小的粒度、能够相互协作且自治的服务体系。
微服务架构基于分布式系统,同时借助了面向服务架构和企业服务总线的设计理念并做了改进和优化,从而形成一种新的架构体系。
微服务架构一方面具备技术、业务和组织上的优势,另一方面也在技术架构和研发过程中存在巨大挑战。像阿里、腾讯、滴滴这类大厂微服务架构是必备的技能,都在不断摸索跟学习的路上!我之所以能够拿下三个大厂offer,也多亏我自己努力把这份文档给吃透。第一时间决定分享出来给大家!

什么是ACID?

事务的定义和实现一直随着数据管理的发展在演进,当计算机越来越强大,它们就能够被用来管理越来越多数据,最终,多个用户可以在一台计算机上共享数据,这就导致了一个问题,当一个用户修改了数据而另外一个还在使用旧数据进行计算过程中,这里就需要一些机制来保证这种情况不会发生。

ACID规则原来是在1970被Jim Gray定义,ACID事务解决了很多问题,但是仍然需要和性能做平衡协调,事务越强,性能可能越低,安全可靠性和高性能是一对矛盾。

一个事务是指对数据库状态进行改变的一系列操作变成一个单个序列逻辑元操作,数据库一般在启动时会提供事务机制,包括事务启动 停止 取消或回滚。

但是上述事务机制并不真的实现“事务”,一个真正事务应该遵循ACID属性,ACID事务才真正解决事务,包括并发用户访问同一个数据表记录的头疼问题。

ACID的定义:

  • Atomic原子性: 一个事务的所有系列操作步骤被看成是一个动作,所有的步骤要么全部完成要么一个也不会完成,如果事务过程中任何一点失败,将要被改变的数据库记录就不会被真正被改变。
  • Consistent一致性: 数据库的约束 级联和触发机制Trigger都必须满足事务的一致性。也就是说,通过各种途径包括外键约束等任何写入数据库的数据都是有效的,不能发生表与表之间存在外键约束,但是有数据却违背这种约束性。所有改变数据库数据的动作事务必须完成,没有事务会创建一个无效数据状态,这是不同于CAP理论的一致性"consistency".
  • Isolated隔离性: 主要用于实现并发控制, 隔离能够确保并发执行的事务能够顺序一个接一个执行,通过隔离,一个未完成事务不会影响另外一个未完成事务。
  • Durable持久性: 一旦一个事务被提交,它应该持久保存,不会因为和其他操作冲突而取消这个事务。很多人认为这意味着事务是持久在磁盘上,但是规范没有特别定义这点。

什么是CAP?

CAP是分布式系统中进行平衡的理论,它是由 Eric Brewer发布在2000年。

  • Consistent一致性: 同样数据在分布式系统中所有地方都是被复制成相同。
  • Available可用性: 所有在分布式系统活跃的节点都能够处理操作且能响应查询。
  • Partition Tolerant分区容错性: 在两个复制系统之间,如果发生了计划之外的网络连接问题,对于这种情况,有一套容错性设计来保证。

一般情况下CAP理论认为你不能拥有上述三种中两种,这是一个实践总结,当有网络分区情况下,也就是分布式系统中,你不能又要有完美一致性和100%的可用性,只能这两者选择一个。在单机系统中,你则需要在一致性和延迟性latency之间权衡。

CAP和ACID一致性区别

ACID一致性是有关数据库规则,如果数据表结构定义一个字段值是唯一的,那么一致性系统将解决所有操作中导致这个字段值非唯一性的情况,如果带有一个外键的一行记录被删除,那么其外键相关记录也应该被删除,这就是ACID一致性意思。

CAP理论的一致性是保证同样一个数据在所有不同服务器上的拷贝都是相同的,这是一种逻辑保证,而不是物理,因为光速限制,在不同服务器上这种复制是需要时间的,集群通过阻止客户端查看不同节点上还未同步的数据维持逻辑视图。

当跨分布式系统提供ACID时,这两个概念会混淆在一起,Google’s Spanner system能够提供分布式系统的ACID,其包含ACID+CAP设计:

总结

就写到这了,也算是给这段时间的面试做一个总结,查漏补缺,祝自己好运吧,也希望正在求职或者打算跳槽的 程序员看到这个文章能有一点点帮助或收获,我就心满意足了。多思考,多问为什么。希望小伙伴们早点收到满意的offer! 越努力越幸运!

金九银十已经过了,就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以很负责任的说一句,复习准备的是否充分,将直接影响你入职的成功率。但很多小伙伴却苦于没有合适的资料来回顾整个 Java 知识体系,或者有的小伙伴可能都不知道该从哪里开始复习。我偶然得到一份整理的资料,不论是从整个 Java 知识体系,还是从面试的角度来看,都是一份含技术量很高的资料。

感兴趣的朋友可以点击这里获得免费领取!

mN1R2dB)**

[外链图片转存中…(img-7kz8vDNm-1618628307192)]

百度Java岗一面+二面内容,裸辞奋战25天三面美团,大厂直通车!相关推荐

  1. 薪酬缩水,“裸辞”奋战25天三面美团,交叉面却被吊打,我太难了

    我太难了 2020年,一场肆虐全国的新型冠状病毒肺炎疫情,让许多中小企业们陷入经营困难危机之中.面对这种情况,有一些单位开始停发薪资.变相裁员,脉脉上收到爆料某公寓租赁企业直接裁掉80%员工,让更多的 ...

  2. Java面试题整理,连续四年百度Java岗必问面试题

    GC概述 垃圾收集(Garbage Collection)通常被称为"GC",由虚拟机"自动化"完成垃圾回收工作. 思考一个问题,既然GC会自动回收,开发人员为 ...

  3. “裸辞” 备战15天三面美团,交叉面却被吊起来锤

    美团一面: 收到了HR的信息,通知我去面试,说实话真的挺紧张的.自己准备了近一个月的时间,很担心面试不过,到时候又后悔不该"裸辞". 自我介绍 spring的IOC,AOP原理 s ...

  4. 字节/阿里/ 百度2021年Java岗发布+最新内部面试题

    2021刚刚启程,各互联网大厂便发布了一大波优质Java岗,平均薪资总包都在40w左右,你心动了吗?下面给大家列出几个具体的岗位及要求. 此外,在文末还有分享:由各大厂面试官整理的字节.阿里.百度Ja ...

  5. 【对号入座】15.2k-37.4k的Java岗面试真题,应届生秋招和老java跳槽面试都适用

    故事的开始 最近有很多人问,有什么方法能够快速提升自己,通过阿里.腾讯.字节跳动.京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,内容包 ...

  6. 【求职】百度 Java 方向面经

    百度 Java 方向面经 第一篇 **一面 2018/9/11 ** 1.手写ArrayList 2.手写进制转换算法,求出一个数的二进制数 1 的个数 3.JAVA 基础,equals 和== 4. ...

  7. 面经:阿里二面自我剖析---Java岗(50分钟)

    一面链接:面经:阿里一面自我剖析-Java岗(40分钟) 三面链接:面经:阿里三.四面及HR面自我剖析-Java岗(80分钟.30分钟.15分钟) 二面是8月28号面的,有些激动.这次面试是依托项目来 ...

  8. 2016届阿里实习生java研发岗一面二面三面四面经验分享

    转自:http://mp.weixin.qq.com/s?__biz=MjM5MTAzMTE4Nw==&mid=203817016&idx=2&sn=b79c7b079912c ...

  9. 阿里Java岗二面:Redis了解?说说持久化机制及RDB/AOF应用场景分析

    Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却十分迅速. 文章主要包含二个 ...

最新文章

  1. 判断jQuery库是否被正确引入
  2. 02 使用百度地图获得当前位置的经纬度
  3. LSTM情感分类问题再战
  4. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(十八) 完美精灵之八面玲珑(WPF Only)②...
  5. 你知道怎么在生产环境下部署tomcat吗?,灵魂拷问
  6. c语言怎样表示运行时间,C语言运行时间
  7. 5.spiders(文件夹)
  8. 开源加密库和 GnuPG 模块 Libgcrypt 紧急修复严重漏洞
  9. Android 基础控件与线性布局
  10. 显示器、显卡的接口类型
  11. easyui 图标下拉框
  12. Python 实现的、带GUI界面的词云生成器
  13. 2017计算机知识竞赛题,2017年《西游记》知识竞赛试题100题附答案.doc
  14. CenterNet2:CenterNet再升级,原作者提出基于概率解释的两阶段目标检测
  15. 工业交换机的功率和网络管理方法
  16. 仿热血江湖游戏Players装备加解锁功能未开放,请联系客服人员
  17. 手机上怎么录制斗鱼直播视频,直播视频怎么录制
  18. 感谢十二年的陪伴——分享回归,不忘初心(Eastmount博客总结及未来规划)
  19. 自己做了一个分享网盘资源的网站
  20. Code Wars游戏说明

热门文章

  1. Linux工作站开机后鼠标很卡,(已解决)开机后鼠标延迟卡顿1分钟后就没事了是什么情况...
  2. Python安装目录详解
  3. 0020 求圆锥的体积
  4. 软件流水在干嘛(转)
  5. router.beforEach
  6. 电子墨水屏待办清单及日历
  7. 如何用ChatGPT分析品牌舆论传播概况,并给到处理建议?
  8. python n个list如何组成矩阵_如何用马科维茨投资组合优化法和现代资产组合理论生成交易策略?...
  9. 初次见面,请多关照。
  10. C++遍历结构体数组并赋值