分布式系统定义:

分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。

分布式系统一些典型的问题:

通信异常:

分布式系统需要在各个节点之间进行网络通信,因此每次网络通信都会伴随着网络不可用的风险,比如说光纤被挖断了。另外,即使分布式系统各节点之间的网络通信能够正常进行,其延时也会远大于单机操作。通常一次正常的网络通信延迟在0.1~1ms左右,

网络分区:

ACID到CAP/BASE

ACID是针对事务来说的。

A:Atomic,原子性,事务中的所有操作要么全部执行,要么全部不执行。

C:Consistency,一致性,事务执行后不能破坏数据库数据的一致性。

I:Isolation,隔离性,一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

有4个隔离级别:read uncommitted、read committed、repeatable read、serializable。

read uncommitted:未提交读,在事务A未提交的时候,事务B能读取到事务A操作过程中的所有中间值。

read committed:提交读,事务B不能读取到事务A的中间值,只能等事务A提交之后,读取到事务A的最终值。

repeatable read:可重复读,在事务过程中,多次读取同一个数据,值是一样的。

serializable:串行化,事务只能串行执行,不能并发执行。

D:Durable,持久性,一旦某个事务成功结束,那么它对数据库所做的更新就必须被永久保存下来。

分布式事务是CAP和BASE。

CAP

C:Consistency,一致性。在分布式环境中,一致性是指数据在多个副本之间能否保持一致。

A:Avaliable,可用性。系统提供的服务必须一直处于可用的状态,对于用户的每一个请求总是能够在有限的时间内返回结果。

P:Partition tolerance,分区容错性。分布式系统在遇到任何网络分区故障的时候,仍然能提供满足一致性和可用性的服务,除非是整个网络都发生了故障。

因为在分布式系统中,网络问题是一个必定会出现的问题,因此分区容错性是分布式系统中必须要解决的问题,剩下的,需要我们根据业务特点,在一致性和可用性之间寻求平衡。

BASE

BA:Basically Avaliable,基本可用。分布式系统在出现不可预知故障时,允许损失部分可用性,如响应时间稍微增加,业务降级等。

S:Soft state,软状态,是指允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。

E:Eventually consistent,最终一致性,是指系统中所有数据副本,在经过一段时间的同步之后,最终能达到一致性。

2PC和3PC

2PC:Two-Phase Commit,二阶段提交,将事务的提交过程分成两个阶段进行处理:

阶段一:提交事务请求

SSH整合环境下Spring配置文件的配置的更多相关文章

  1. ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存

    ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存 hibernate  : Hibernate是一个持久层框架,经常访问物理数据库 ...

  2. Maven 工程下 Spring MVC 站点配置 (三) C3P0连接池与@Autowired的应用

    Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 前两篇文章主要是对站点和数据库操作配置进行了演示,如果单 ...

  3. Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作

    详细的Spring MVC框架搭配在这个连接中: Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 这篇主 ...

  4. Maven 工程下 Spring MVC 站点配置 (一)

    最近,查找一些具体资料时,虽然会有很多,但是系统的却很少,尤其是对maven 下 spring mvc 站点搭建的配置,总是说的很多但让新手一目了然的步骤却少之又少. 对此闲暇时整理了一下,做了一套较 ...

  5. T4模板生成不同部署环境下的配置文件

    使用T4模板生成不同部署环境下的配置文件 在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据 ...

  6. 实验七:Xen环境下cirrOS的安装配置

    实验名称: Xen环境下cirrOS的安装配置 实验环境: 这里的cirrOS和实验六中的busybox的启动方式相同,唯一的区别就是我们使用的cirrOS镜像中,已经包含了根文件系统.内核文件以及r ...

  7. 【转】mysql8.0 在window环境下的部署与配置

    [转]mysql8.0 在window环境下的部署与配置 今天在阿里云window服务器上配置mysql环境,踩了一些坑,分享出来.需要的朋友可以看看.额,或许有人要吐槽我为什么不在linux上去配置 ...

  8. GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置

    GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...

  9. aarch64环境下,搭建并配置服务器tomcat:

    aarch64环境下,搭建并配置服务器tomcat: 环境说明及下载相关文件: 1. ARM环境:aarch64开发板 2.JDK安装包: jdk-8u231-linux-arm64-vfp-hflt ...

随机推荐

  1. 如何在网页标题栏title加入logo图标?

    打开某一个网页会在浏览器的标签栏处显示该网页的标题和图标,当网页被添加到收藏夹或者书签中时也会出现网页的图标,怎么在网页title左边显示网页的logo图标呢? 方法一(被动式): 制作一个ico格式 ...

  2. 13.hibernate的native sql查询(转自xiaoluo501395377)

    hibernate的native sql查询   在我们的hibernate中,除了我们常用的HQL查询以外,还非常好的支持了原生的SQL查询,那么我们既然使用了hibernate,为什么不都采用hi ...

  3. Spring入门学习(二)三种实例化bean的方法

    前面的哪一种就是通过构造函数来实例化对象 下面我们可能用到工厂方法来视力话对象,这样我们的配置文件又该怎么配置呢 <bean name="service2" class=&q ...

  4. css3制作字体

    代码教程 HTML代码用H1吧,这样语义化好些,因为标题一般用h1-h6. <h1 class="vintage">美丽的中国语</h1> 纯CSS制作的复 ...

  5. 团队项目(spring会议)

    [例会时间]2014/4/11 [例会地点]一教213课堂上 [例会形式]小组讨论 [例会主持]马翔 [例会记录]兰梦 在这次会议上,我们针对我们的项目进行了分割,并分别认领各自的任务 下面是任务的认 ...

  6. aforge之hough

    /// <summary> /// 参数不能是一位索引 /// </summary> /// <param name="bmp"></pa ...

  7. MySQL5.5.源码安装

    MySQL5.5.34安装需要用到cmke  ncurses-devel yum install -y ncurses-devel cmake gcc gcc-c++ bison 下载http://m ...

  8. go语言实现寻找最大子数组

    题目:给定一个数字序列,寻找其中各元素相加和最大的子数组 /* 寻找最大子数组go语言实现 */ package main import fmt "fmt" func main() ...

  9. C++模板之类型与数据绑定

    有时候我们需要将类型与一些数据进行绑定,例如我们一般通过单例,将字符串与一个函数关联(一般称之为注册),之后通过字符串创建相关联的对象 class A { public: static A* Crea ...

  10. Linux下编译C代码,出现tan函数报错的情况

    undefined reference to `tan' 但是已经包含了头文件 <math.h>了,可还是报错,说是找不到tan 这个问题的原因不是很清楚, 但是网上给出的方案,就是编译的 ...