技术标签: 面试 Java面试 java Java程序员 数据库
最近编程讨论群有位小伙伴去蚂蚁金服面试了,以下是面试的真题,跟大家一起来讨论怎么回答。
谈到事务,我们就会想到数据库事务,很容易就想到原子性、一致性、持久性、隔离性。
分布式事务跟数据库事务有点不一样,它是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单来说,分布式事务指的就是分布式系统中的事务,它的存在就是为了保证不同数据库节点的数据一致性。
分布式事务需要需要知道CAP理论和BASE理论。
CAP理论
一个分布式系统中,CAP理论它只能同时满足(一致性、可用性、分区容错性)中的两点。
BASE 理论
BASE 理论, 是对CAP中AP的一个扩展,对于我们的业务系统,我们考虑牺牲一致性来换取系统的可用性和分区容错性。BASE是Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)三个短语的缩写。
业界目前使用本地消息表这种方案是比较多的,它的核心思想就是将分布式事务拆分成本地事务进行处理。可以看一下基本的实现流程图吧:
对于消息发送方:
消息消费方:
生产方和消费方定时扫描本地消息表,把还没处理完成的消息或者失败的消息再发送一遍。如果有靠谱的自动对账补账逻辑,这种方案还是非常实用的。
JDK 6 新特性
JDK 7的新特性
JDK8 的新特性
Graph Convolutional Neural Networks for Web-ScaleRecommender Systems阅读笔记一些絮叨MotivationModel功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也...
导读内连接是通过在查询中设置连接条件的方式,来移除查询结果集中某些数据行后的交叉连接。简单来说,就是利用条件表达式来消除交叉连接的某些数据行。在 MySQL FROM 子句中使用关键字 INNER JOIN 连接两张表,并使用 ON 子句来设置连接条件。如果没有任何条件,INNER JOIN 和 CROSS JOIN 在语法上是等同的,两者可以互换。语法格式如下SELECTFROM INNER ..._linx mysql 连接执行查询语句
BeanFactory和ApplicationContextSpring通过一个配置文件描述Bean和Bean之间的依赖关系,利用Java反射功能实例化Bean,并建立Bean之间的依赖关系。Spring的IOC容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、时间发布、资源装载等高级服务。BeanFactory是Spring框架最核心的接口,它提供了...
前提:一个非降序列lower_bound()函数使用:参数:1、数组元素的地址(起始搜索位置)e.g. a + i;2、数组元素的地址(末尾搜索位置)e.g. a + n;3、二分查找的数返回值:返回第一次大于等于所查找数的地址(在函数后面减去数组名(数组起始地址即可获得下标)upper_bound()函数返回值:返回第一个大于查找值的地址应用例:三足鼎立问题#include<iostream>#include<al..._map upper_bound
通过两步来解决问题:找到该位置C:\Windows\System32\WindowsPowerShell\v1.0,打开powershell.exe在powershell.exe中输入:Get-AppXPackage -Name Microsoft.Windows.Cortana | Foreach {Add-AppxPackage -DisableDevelopmentMode -Reg..._get-appxpackage -allusers
第5章 合并import numpy as npimport pandas as pddf = pd.read_csv('data/table.csv')df.head() School Class ID Gender Address Height Weight ..._panda join
头文件Windows.h举个例子,配置文件set.cfg内容:[testdata]UserName=600511005Password=112233ResetSeqNumFlag=YInputType=ZClOrdID =9893[section]key=string[Student]Name=jacky函数G
今天在复习微机原理的时候,看到一个概念:存储总量=存储单元个数×存储字长,然后存储单元个数=2^地址总线位数,存储字长和数据总线位数有关,如果是这样,那么,地址总线为32位,数据总线为16位的CPU,其最大可支持的内存容量就应该是2^32*16bit=64Gb=8Gb,那为什么现在32位的操作系统还只能支持4GB的内存呢?难道现在的数据总线都是8位?乍一看,这个和昨天看到的概念内..._地址线和存储容量关系
首先贴上我的启蒙恩师:https://blog.csdn.net/zxh2075/article/details/79967227https://blog.csdn.net/zxh2075/article/details/79967227里面不但有OpenSSL例程,还有证书的生成过程。当然,缺了include部分#include <openssl/rand.h>#include <stdio.h>#include <string.h>#include_openssl 调用 tcp接口
最近在学习cocos2dx,从网上下载了一个叫赵云要格斗的源代码,去在编译的时候getTouchDispatcher() 方法找不到,于是就去找度娘,值此之际正好学习下Cocos2d-x-3.0触屏事件的触屏事件解决上面的问题:getTouchDispatcher()是在2.0时代的方法,在3.0以后就废弃了2.0时代:默认情况下CCLayer都是没有启动触摸事件的,所以需要在初始化函
以下是2016年1月21日-2016年2月20日期间最活跃的问题回复达人,请看到名字的达人与我们联系,有礼品送出呦!(联系邮箱[email protected],工作人员不参与评选。本月礼品:技术书籍一本或淘公仔一只(任选其一),选择书籍的同学请将书名一并发邮件告诉小编,选择淘公仔随机发放。另外没有获得月度达人...
首先需要下载FusionCharts v3.1的swf文件,还需要下载FusionCharts.js和FusionChartsExportComponent.js两个JS文件(要下载跟v3.1匹配的版本),还要下载fcexporter.jar文件(要匹配v3.1版本),还要下载对应的Java文件(如截图),还有对应的JSP文件FCExporter.jsp、FCExp_fusioncharts后台导出word