摘要: 转自 https://blog.csdn.net/qq_18581221/article/details/89766073 简介 在使用kafka时,大多数场景对于数据少量的不一致(重复或者丢失)并不关注,比如日志,因为不会影响最终的使用或者分析,但是在某些应用场景(比如业务数据),需要对任何一条消 阅读全文
posted @ 2019-10-16 11:59 yn_huang 阅读(10295) 评论(0) 推荐(1) 编辑
摘要: 1. 什么是gap 2. gap锁或next-key锁的作用 简单讲就是防止幻读。通过锁阻止特定条件的新记录的插入,因为插入时也要获取gap锁(Insert Intention Locks)。 3. 什么时候会取得gap lock或nextkey lock 这和隔离级别有关,只在REPEATABLE 阅读全文
posted @ 2019-06-14 15:43 yn_huang 阅读(2641) 评论(0) 推荐(0) 编辑
摘要: 一、数据库事务隔离级别 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。 √: 可能出现 ×: 不会出现 注意:我 阅读全文
posted @ 2019-06-14 12:02 yn_huang 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 多版本并发控制技术已经被广泛运用于各大数据库系统中,如Oracle,MS SQL Server 2005+, Postgresql, Firebird, Maria等等,开源数据库MYSQL中流行的INNODB引擎也采用了类似的并发控制技术.本文就将结合实例来解析不同事务隔离等级下INNODB的MV 阅读全文
posted @ 2019-06-14 11:27 yn_huang 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 事务并发性理解 事务并发性,粗略的理解就是单位时间内能够执行的事务数量,常见的单位是 TPS( transactions per second). 那在数据量和业务操作量一定的情况下,常见的提高事务并发性主要考虑的有哪几点呢? 1.提高服务器的处理能力,让事务的处理时间变短。 这样不仅加快了这个事务 阅读全文
posted @ 2019-06-13 10:56 yn_huang 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 这里给出 mysql 幻读的比较形象的场景: users: id 主键 T1 :主事务,检测表中是否有 id 为 1 的记录,没有则插入,这是我们期望的正常业务逻辑。 T2 :干扰事务,目的在于扰乱 T1 的正常的事务执行。 在 RR 隔离级别下,1、2 是会正常执行的,3 则会报错主键冲突,对于 阅读全文
posted @ 2019-06-13 09:56 yn_huang 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 1、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路, 阅读全文
posted @ 2019-06-12 09:55 yn_huang 阅读(370) 评论(0) 推荐(1) 编辑
摘要: 1.预览 1.1 消费者组(Consumer Group) 一个consumer group可能有若干个consumer实例 同一个group里面,topic的每条信息只能被发送到group下的一个consumer实例 topic消息可以被发送到多个group 为什么需要consumer group 阅读全文
posted @ 2019-05-28 12:33 yn_huang 阅读(730) 评论(0) 推荐(0) 编辑
摘要: 1.producer端的基本数据结构 1.ProducerRecord 一个ProducerRecord封装了一条待发送的消息 ProducerRecord允许用户再创建消息对象的时候直接指定要发送的分区 2.RecordMetadata 该数据结构表示Kafka服务端返回给客户端的消息的元数据信息 阅读全文
posted @ 2019-05-26 11:23 yn_huang 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 1.消息交付语义 client端常见的3钟消息交付语义: 最多一次:消息可能丢失也可能被处理,但最多只会被处理一次。 至少一次:消息不会丢失,但可能被处理多次 精确一次:消息被处理且只会被处理一次 在0.11.0.0版本之前,Kafka producer默认提供的是at least once语义。设 阅读全文
posted @ 2019-05-25 14:37 yn_huang 阅读(1066) 评论(0) 推荐(1) 编辑