事务

kafka重点问题总结

旧街凉风 提交于 2020-02-11 14:32:44
这两天重点学习了下kafka消息队列,对其相关比较重要的问题进行总结。(以下内容均个人理解总结,不对的地方多多指正) 1. kafka组成 有哪些? Broker:kafka保存消息的中转站,集群中包含多个kafka服务节点,每个kafka服务节点就称为broker。 Topic:主题,用来存储不同类别的消息。 Partition:分区队列,一个Topic包个或多个Partition,在创建Topic时指定包含的Partition数量,kafka的有序性就是通过分区来实现,分区内是有序的。 Replication:副本,一个分区对应有多个副本,分布在不同的Broker上,副本的数量不会大于broker的数量,一个副本作为Leader,所有的读写请求都会通过Leader完成,Follower只负责备份数据所有Follower会自动的从Leader中复制数据,当Leader宕机后, 会从Follower中选出一个新的Leader继续提供服务,实现故障自动转移。 Message:消息,是通信的基本单位。 Producer:消息的生产者,向Kafka的一个topic发布消息,可以指定向某个分区发送消息。 Consumer:消息的消费者,订阅topic并消费其发布的消息。 Consumer Group:每个消费者都属于一个特定的Consumer Group,消费者组之间可以重复消费

面试集锦

半城伤御伤魂 提交于 2020-02-11 05:19:40
1. Java初始化顺序 http://www.cnblogs.com/jackyrong/archive/2008/08/12/1266161.html 父类--静态变量 父类--静态初始化块 子类--静态变量 子类--静态初始化块 父类--变量 父类--初始化块 父类--构造器 子类--变量 子类--初始化块 子类--构造器 2. 守护线程 http://www.cnblogs.com/ChrisWang/archive/2009/11/28/1612815.html The Java Virtual Machine exits when the only threads running are all daemon threads.即:当线程只剩下守护线程的时候,JVM就会退出.但是如果还有其他的任意一个用户线程还在,JVM就不会退出. 3. JNDI JNDI( Java Naming and Directory Interface ),是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个 API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括 LDAP、CORBA Common

mysql网文收录

坚强是说给别人听的谎言 提交于 2020-02-11 02:04:57
1、分布式事务 1) 聊聊分布式事务,再说说解决方案 https://www.cnblogs.com/savorboard/p/distributed-system-transaction-consistency.html 2) 分布式系统事务一致性解决方案 http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency 3) 从银行转账失败到分布式事务:总结与思考 https://www.cnblogs.com/xybaby/p/7465816.html 4) 详解Mysql分布式事务XA(跨数据库事务) https://blog.csdn.net/soonfly/article/details/70677138 5) MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等) https://blog.csdn.net/mysteryhaohao/article/details/51669741 来源: https://www.cnblogs.com/AndrewGhost/p/9102511.html

数据库事务

纵然是瞬间 提交于 2020-02-11 02:03:11
一.本地数据库事务 1.事务ACID理解 原子性【Atomicity】:一次事务的多次操作是原子的,要么全部执行,要么全部不执行。 一致性【Consistency】:事务前后数据库的约束保持一致性,比如键值约束。 隔离性【Isolation】:事务之前有一定隔离机制,不用隔离级别。 持久性【Durability】:事务提交成功数据被持久化到数据库中存储。 2.隔离级别 读未提交 读已提交 可重复读 串行 3.锁的分类 悲观锁 乐观锁 共享锁【读锁】 排他锁【写锁】 更新锁 ACID的详解:https://www.cnblogs.com/wyf19891208/p/6834454.html 事务详解:https://blog.csdn.net/aluomaidi/article/details/52460844 二.分布式事务 https://www.cnblogs.com/savorboard/p/distributed-system-transaction-consistency.html https://www.cnblogs.com/taiyonghai/p/6094350.html https://blog.csdn.net/X5fnncxzq4/article/details/79235790 来源: https://www.cnblogs.com/xiaofugua/p

事务

爱⌒轻易说出口 提交于 2020-02-10 20:49:44
select * from 表名 where 条件 id > 10 insert into 表名 values() update 表名 set name = ‘’ where id = 1 delete 表名 where 事务 事务的四大特性(ACID): 原子性(atomicity) 事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位. 一致性(consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。 例:拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。 隔离性(Isolation) 隔离性是当多个用户并发访问数据库时,比如同时操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。关于事务的隔离性数据库提供了多种隔离级别 脏读 不可重复读 幻读 1.脏读(Phantom Read): 脏读就是指当一个事务正在访问数据,并且对数据进行了修改

企业应用架构模式笔记

帅比萌擦擦* 提交于 2020-02-10 04:16:55
1      企业应用模式概述   1.1    企业应用的模式   企业应用领域要解决的问题在某些方面要比做一个工具软件、或者一个电信通信软件等复杂的得多,比如纷杂的企业数据,各具特色的业务规则,变化莫测的用户需求。因此企业应用开发技术从CORBA、COM、J2EE、_NET等等,层出不穷,每一种技术的出现,都为企业问题的解决题供了一种思路,一个选择。   既然企业的问题是特定,那么我们就可以把问题进行分类,并把每一类问题的解决方法记录下来,这样,就形成了一套我们解决问题的思路,这就是模式。模式的核心就是特定的解决方案,它有效且有足够的通用性。借用一下Christopher Alexander给出的模式的定义:“每一个模式描述了一个在我们周围不断重复发生的问题以及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。   模式的关键点是它们来源于实践,他必须观察人们的工作过程,发现其中好的设计,并找出这些解决方案的核心,一旦发现了某个模式,那将是非常有价值的。当然,如果要学习一个模式,只是需要了解这些模式是干什么的、解决了那些问题、是如何解决问题的,就足够了。    企业架构的领域问题有许多,如分层架构、Web表现、业务逻辑、数据库映射、并发、会话、分布策略、异步通信、安全、错误处理、集群、应用集成、架构重构。在此只选择了其中企业级应用程序的分层

数据库的索引和锁

荒凉一梦 提交于 2020-02-09 20:10:34
一、索引 在之前,我对索引有以下的认知: 索引可以加快数据库的检索速度 表经常进行 INSERT/UPDATE/DELETE操作就不要建立索引了,换言之:索引会降低插入、删除、修改等维护任务的速度。 -索引需要占物理和数据空间。 了解过索引的最左匹配原则 知道索引的分类:聚集索引和非聚集索引 Mysql支持Hash索引和B+树索引两种 看起来好像啥都知道,但面试让你说的时候可能就GG了: 使用索引为什么可以加快数据库的检索速度啊? 为什么说索引会降低插入、删除、修改等维护任务的速度。 索引的最左匹配原则指的是什么? Hash索引和B+树索引有什么区别?主流的使用哪一个比较多?InnoDB存储都支持吗? 聚集索引和非聚集索引有什么区别? … 1.1聊聊索引的基础知识 首先Mysql的基本存储结构是页(记录都存在页里边): 各个数据页可以组成一个双向链表 而每个数据页中的记录又可以组成一个单向链表 每个数据页都会为存储在它里边儿的记录生成一个页目录,在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,然后再遍历该槽对应分组中的记录即可快速找到指定的记录 以其他列(非主键)作为搜索条件:只能从最小记录开始依次遍历单链表中的每条记录。 所以说,如果我们写 select*fromuserwhereusername='Java3y’这样没有进行任何优化的sql语句

第1章 MySQL架构与历史

余生长醉 提交于 2020-02-09 19:54:34
MySQL最重要、最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理(Query Processing)及其他系统任务(Server Task)和数据的存储/提取相分离。这种处理和存储分离的设计可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式 1.1 MySQL逻辑架构 最上层服务大多数系统都有,连接处理、授权认证、安全等等 第二层包含MySQL的大多数核心功能 第三层包含了存储引擎。存储引擎负责MySQL中数据的存储和提取 1.1.1 连接管理与安全性 每个客户端连接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行,该线程只能轮流在某个CPU核心或者CPU中运行。服务器会负责缓存线程,因此不需要为每一个新建的连接创建或者销毁线程。 当客户端连接到MySQL服务器时,服务器需要对其进行认证。认证基于用户名、原始主机信息和密码。如果使用了 安全套接字 SSL)的方式连接,还可以使用X.059证书认证。一旦客户端连接成功,服务器会继续验证该客户端是否具有执行某个特定查询的权限(例如,是否允许客户端对world数据库的Country表执行SELECT语句)。 1.1.2 优化与执行 MySQL会解析查询,并创建内部数据结构,然后对其进行各种优化,包括重写查询、决定表的读取顺序,以及选择合适的索引等。 对于SELECT语句,在解析查询之前

SQL Server 2005 事务之ACID

久未见 提交于 2020-02-09 15:29:57
首先描述下事务的概念以及事务的特性:事务是作为单个逻辑工作单元执行的一系列操作,同时具备原子性、一致性、隔离性和持久性 (ACID)属性。 原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 一致性:事务完成时,必须使所有的数据都保持一致状态。 隔离性:由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。 持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。 下面用简单的示例(Northwind数据库)来说明这一点。 原子性: 正常情况下是先删除订单详细表,再删除订单信息,下面倒过来为了演示事务的原子性,生产中这么写就是属于逻辑错误。 USE Northwind; GO BEGIN TRAN ; DELETE FROM dbo.Orders WHERE OrderID = 10249 ; DELETE FROM dbo." Order Details" WHERE OrderID = 10249 ; COMMIT TRAN ; GO 执行结果: 表Orders因为违反引用完整性,删除操作失败, 表Order Details成功删除2行.从这个例子来看第一条T - SQL语句执行失败而第二条T - SQL却执行成功,这不明显证明事务不具有原子性。别急接 着往下看,因为BEGIN TRAN与END